Skip to content

Commit

Permalink
rename and export call_layer to create_layer
Browse files Browse the repository at this point in the history
  • Loading branch information
jjallaire committed Jul 14, 2017
1 parent 0cbad8b commit e697562
Show file tree
Hide file tree
Showing 13 changed files with 102 additions and 61 deletions.
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ export(constraint_minmaxnorm)
export(constraint_nonneg)
export(constraint_unitnorm)
export(count_params)
export(create_layer)
export(dataset_boston_housing)
export(dataset_cifar10)
export(dataset_cifar100)
Expand Down
4 changes: 2 additions & 2 deletions R/layer-wrappers.R
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ time_distributed <- function(object, layer, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$TimeDistributed, object, list(
create_layer(keras$layers$TimeDistributed, object, list(
layer = layer,
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down Expand Up @@ -51,7 +51,7 @@ bidirectional <- function(object, layer, merge_mode = "concat", input_shape = NU
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Bidirectional, object, list(
create_layer(keras$layers$Bidirectional, object, list(
layer = layer,
merge_mode = merge_mode,
input_shape = normalize_shape(input_shape),
Expand Down
10 changes: 5 additions & 5 deletions R/layers-activations.R
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ layer_activation <- function(object, activation, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Activation, object, list(
create_layer(keras$layers$Activation, object, list(
activation = activation,
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down Expand Up @@ -47,7 +47,7 @@ layer_activation_leaky_relu <- function(object, alpha = 0.3, input_shape = NULL,
dtype = NULL, name = NULL, trainable = NULL,
weights = NULL) {

call_layer(keras$layers$LeakyReLU, object, list(
create_layer(keras$layers$LeakyReLU, object, list(
alpha = alpha,
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down Expand Up @@ -105,7 +105,7 @@ layer_activation_parametric_relu <- function(object, alpha_initializer = "zeros"
args$weights <- weights

# call layer
call_layer(keras$layers$PReLU, object, args)
create_layer(keras$layers$PReLU, object, args)
}


Expand All @@ -126,7 +126,7 @@ layer_activation_thresholded_relu <- function(object, theta = 1.0, input_shape =
dtype = NULL, name = NULL, trainable = NULL,
weights = NULL) {

call_layer(keras$layers$ThresholdedReLU, object, list(
create_layer(keras$layers$ThresholdedReLU, object, list(
theta = theta,
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down Expand Up @@ -158,7 +158,7 @@ layer_activation_elu <- function(object, alpha = 1.0, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$ELU, object, list(
create_layer(keras$layers$ELU, object, list(
alpha = alpha,
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down
32 changes: 16 additions & 16 deletions R/layers-convolutional.R
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ layer_conv_1d <- function(object, filters, kernel_size, strides = 1L, padding =
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Conv1D, object, list(
create_layer(keras$layers$Conv1D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -138,7 +138,7 @@ layer_conv_2d <- function(object, filters, kernel_size, strides = c(1L, 1L), pad
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Conv2D, object, list(
create_layer(keras$layers$Conv2D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -225,7 +225,7 @@ layer_conv_3d <- function(object, filters, kernel_size, strides = c(1L, 1L, 1L),
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Conv3D, object, list(
create_layer(keras$layers$Conv3D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -300,7 +300,7 @@ layer_conv_2d_transpose <- function(object, filters, kernel_size, strides = c(1L
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Conv2DTranspose, object, list(
create_layer(keras$layers$Conv2DTranspose, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -387,7 +387,7 @@ layer_conv_3d_transpose <- function(object, filters, kernel_size, strides = c(1,
kernel_constraint = NULL, bias_constraint = NULL, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$Conv3DTranspose, object, list(
create_layer(keras$layers$Conv3DTranspose, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -469,7 +469,7 @@ layer_separable_conv_2d <- function(object, filters, kernel_size, strides = c(1L
depthwise_constraint = NULL, pointwise_constraint = NULL, bias_constraint = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$SeparableConv2D, object, list(
create_layer(keras$layers$SeparableConv2D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -516,7 +516,7 @@ layer_separable_conv_2d <- function(object, filters, kernel_size, strides = c(1L
layer_upsampling_1d <- function(object, size = 2L,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$UpSampling1D, object, list(
create_layer(keras$layers$UpSampling1D, object, list(
size = as.integer(size),
batch_size = as_nullable_integer(batch_size),
name = name,
Expand Down Expand Up @@ -552,7 +552,7 @@ layer_upsampling_1d <- function(object, size = 2L,
layer_upsampling_2d <- function(object, size = c(2L, 2L), data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$UpSampling2D, object, list(
create_layer(keras$layers$UpSampling2D, object, list(
size = as.integer(size),
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -598,7 +598,7 @@ layer_upsampling_2d <- function(object, size = c(2L, 2L), data_format = NULL,
layer_upsampling_3d <- function(object, size= c(2L, 2L, 2L), data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$UpSampling3D, object, list(
create_layer(keras$layers$UpSampling3D, object, list(
size = as.integer(size),
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -628,7 +628,7 @@ layer_upsampling_3d <- function(object, size= c(2L, 2L, 2L), data_format = NULL,
#' @export
layer_zero_padding_1d <- function(object, padding = 1L,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$ZeroPadding1D, object, list(
create_layer(keras$layers$ZeroPadding1D, object, list(
padding = as.integer(padding),
batch_size = as_nullable_integer(batch_size),
name = name,
Expand Down Expand Up @@ -667,7 +667,7 @@ layer_zero_padding_1d <- function(object, padding = 1L,
layer_zero_padding_2d <- function(object, padding = c(1L, 1L), data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$ZeroPadding2D, object, list(
create_layer(keras$layers$ZeroPadding2D, object, list(
padding = normalize_padding(padding, 2L),
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -714,7 +714,7 @@ layer_zero_padding_2d <- function(object, padding = c(1L, 1L), data_format = NUL
layer_zero_padding_3d <- function(object, padding = c(1L, 1L, 1L), data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$ZeroPadding3D, object, list(
create_layer(keras$layers$ZeroPadding3D, object, list(
padding = normalize_padding(padding, 3L),
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -745,7 +745,7 @@ layer_zero_padding_3d <- function(object, padding = c(1L, 1L, 1L), data_format
#' @export
layer_cropping_1d <- function(object, cropping = c(1L, 1L),
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$Cropping1D, object, list(
create_layer(keras$layers$Cropping1D, object, list(
cropping = as.integer(cropping),
batch_size = as_nullable_integer(batch_size),
name = name,
Expand Down Expand Up @@ -783,7 +783,7 @@ layer_cropping_1d <- function(object, cropping = c(1L, 1L),
layer_cropping_2d <- function(object, cropping = list(c(0L, 0L), c(0L, 0L)), data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Cropping2D, object, list(
create_layer(keras$layers$Cropping2D, object, list(
cropping = normalize_cropping(cropping, 2L),
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -834,7 +834,7 @@ layer_cropping_2d <- function(object, cropping = list(c(0L, 0L), c(0L, 0L)), dat
#' @export
layer_cropping_3d <- function(object, cropping = list(c(1L, 1L), c(1L, 1L), c(1L, 1L)), data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$Cropping3D, object, list(
create_layer(keras$layers$Cropping3D, object, list(
cropping = normalize_cropping(cropping, 3L),
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -931,7 +931,7 @@ layer_conv_lstm_2d <- function(object, filters, kernel_size, strides = c(1L, 1L)
return_sequences = FALSE, go_backwards = FALSE, stateful = FALSE, dropout = 0.0, recurrent_dropout = 0.0,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL, input_shape = NULL) {

call_layer(keras$layers$ConvLSTM2D, object, list(
create_layer(keras$layers$ConvLSTM2D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down
37 changes: 25 additions & 12 deletions R/layers-core.R
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ layer_dense <- function(object, units, activation = NULL, use_bias = TRUE,
name = NULL, trainable = NULL, weights = NULL
) {

call_layer(keras$layers$Dense, object, list(
create_layer(keras$layers$Dense, object, list(
units = as.integer(units),
activation = activation,
use_bias = use_bias,
Expand Down Expand Up @@ -141,7 +141,7 @@ layer_reshape <- function(object, target_shape, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Reshape, object, list(
create_layer(keras$layers$Reshape, object, list(
target_shape = normalize_shape(target_shape),
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down Expand Up @@ -179,7 +179,7 @@ layer_permute <- function(object, dims, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Permute, object, list(
create_layer(keras$layers$Permute, object, list(
dims = as_integer_tuple(dims),
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand Down Expand Up @@ -208,7 +208,7 @@ layer_permute <- function(object, dims, input_shape = NULL,
layer_repeat_vector <- function(object, n,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$RepeatVector, object, list(
create_layer(keras$layers$RepeatVector, object, list(
n = as.integer(n),
batch_size = as_nullable_integer(batch_size),
name = name,
Expand Down Expand Up @@ -259,7 +259,7 @@ layer_lambda <- function(object, f, output_shape = NULL, mask = NULL, arguments
if (identical(backend()$backend(), "theano"))
args$output_shape = as_integer_tuple(output_shape)

call_layer(keras$layers$Lambda, object, args)
create_layer(keras$layers$Lambda, object, args)

}

Expand All @@ -285,7 +285,7 @@ layer_activity_regularization <- function(object, l1 = 0.0, l2 = 0.0, input_shap
dtype = NULL, name = NULL, trainable = NULL,
weights = NULL) {

call_layer(keras$layers$ActivityRegularization, object, list(
create_layer(keras$layers$ActivityRegularization, object, list(
l1 = l1,
l2 = l2,
input_shape = normalize_shape(input_shape),
Expand Down Expand Up @@ -318,7 +318,7 @@ layer_masking <- function(object, mask_value = 0.0, input_shape = NULL,
batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Masking, object, list(
create_layer(keras$layers$Masking, object, list(
mask_value = mask_value,
input_shape = normalize_shape(input_shape),
batch_input_shape = normalize_shape(batch_input_shape),
Expand All @@ -345,7 +345,7 @@ layer_masking <- function(object, mask_value = 0.0, input_shape = NULL,
layer_flatten <- function(object,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Flatten, object, list())
create_layer(keras$layers$Flatten, object, list())

}

Expand Down Expand Up @@ -398,8 +398,21 @@ normalize_shape <- function(shape) {
}


# Helper function to call a layer
call_layer <- function(layer_function, object, args) {
#' Create a Keras Layer
#'
#' @param layer_class Python layer class or R6 class of type KerasLayer
#' @param object Object to compose layer with. This is either a
#' [keras_sequential_model()] to add the layer to, or another Layer which
#' this layer will call.
#' @param args Arguments to layer constructor function
#'
#' @return A Keras layer
#'
#' @note The `object` parameter can be missing, in which case the
#' layer is created without a connection to an existing graph.
#'
#' @export
create_layer <- function(layer_class, object, args) {

# remove kwargs that are null
args$input_shape <- args$input_shape
Expand All @@ -410,8 +423,8 @@ call_layer <- function(layer_function, object, args) {
args$trainable <- args$trainable
args$weights <- args$weights

# call function
layer <- do.call(layer_function, args)
# create layer from class
layer <- do.call(layer_class, args)

# compose if we have an x
if (missing(object) || is.null(object))
Expand Down
8 changes: 4 additions & 4 deletions R/layers-dropout.R
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
layer_dropout <- function(object, rate, noise_shape = NULL, seed = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$Dropout, object, list(
create_layer(keras$layers$Dropout, object, list(
rate = rate,
noise_shape = normalize_shape(noise_shape),
seed = seed,
Expand Down Expand Up @@ -58,7 +58,7 @@ layer_dropout <- function(object, rate, noise_shape = NULL, seed = NULL,
layer_spatial_dropout_1d <- function(object, rate,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$SpatialDropout1D, object, list(
create_layer(keras$layers$SpatialDropout1D, object, list(
rate = rate,
batch_size = as_nullable_integer(batch_size),
name = name,
Expand Down Expand Up @@ -102,7 +102,7 @@ layer_spatial_dropout_1d <- function(object, rate,
layer_spatial_dropout_2d <- function(object, rate, data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$SpatialDropout2D, object, list(
create_layer(keras$layers$SpatialDropout2D, object, list(
rate = rate,
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down Expand Up @@ -148,7 +148,7 @@ layer_spatial_dropout_2d <- function(object, rate, data_format = NULL,
layer_spatial_dropout_3d <- function(object, rate, data_format = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {

call_layer(keras$layers$SpatialDropout3D, object, list(
create_layer(keras$layers$SpatialDropout3D, object, list(
rate = rate,
data_format = data_format,
batch_size = as_nullable_integer(batch_size),
Expand Down
2 changes: 1 addition & 1 deletion R/layers-embedding.R
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
layer_embedding <- function(object, input_dim, output_dim, embeddings_initializer = "uniform", embeddings_regularizer = NULL,
activity_regularizer = NULL, embeddings_constraint = NULL, mask_zero = FALSE, input_length = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$Embedding, object, list(
create_layer(keras$layers$Embedding, object, list(
input_dim = as.integer(input_dim),
output_dim = as.integer(output_dim),
embeddings_initializer = embeddings_initializer,
Expand Down
4 changes: 2 additions & 2 deletions R/layers-locally-connected.R
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ layer_locally_connected_1d <- function(object, filters, kernel_size, strides = 1
bias_initializer = "zeros", kernel_regularizer = NULL, bias_regularizer = NULL,
activity_regularizer = NULL, kernel_constraint = NULL, bias_constraint = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$LocallyConnected1D, object, list(
create_layer(keras$layers$LocallyConnected1D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down Expand Up @@ -96,7 +96,7 @@ layer_locally_connected_2d <- function(object, filters, kernel_size, strides = c
bias_initializer = "zeros", kernel_regularizer = NULL, bias_regularizer = NULL,
activity_regularizer = NULL, kernel_constraint = NULL, bias_constraint = NULL,
batch_size = NULL, name = NULL, trainable = NULL, weights = NULL) {
call_layer(keras$layers$LocallyConnected2D, object, list(
create_layer(keras$layers$LocallyConnected2D, object, list(
filters = as.integer(filters),
kernel_size = as_integer_tuple(kernel_size),
strides = as_integer_tuple(strides),
Expand Down
Loading

0 comments on commit e697562

Please sign in to comment.