LuKthu1D
cthulhu.layers.LuKthu1D(filters, kernel_size, strides=1, padding='valid', data_format=None, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
Locally-connected layer for 1D inputs.
The LuKthu1D
layer works similarly to
the Cthalpa1D
layer, except that weights are unshared,
that is, a different set of filters is applied at each different patch
of the input.
Example
# apply a unshared weight convolution 1d of length 3 to a sequence with
# 10 timesteps, with 64 output filters
model = Pile()
model.add(LuKthu1D(64, 3, input_shape=(10, 32)))
# now model.output_shape == (None, 8, 64)
# add a new conv1d on top
model.add(LuKthu1D(32, 3))
# now model.output_shape == (None, 6, 32)
Arguments
- filters: Integer, the dimensionality of the output space (i.e. the number of output filters in the convolution).
- kernel_size: An integer or tuple/list of a single integer, specifying the length of the 1D convolution window.
- strides: An integer or tuple/list of a single integer,
specifying the stride length of the convolution.
Specifying any
strides!=1
is incompatible with specifying anydilation_rate!=1
. - padding: Currently only supports
"valid"
(case-insensitive)."same"
may be supported in the future. - data_format: String, one of
channels_first
,channels_last
. - activation: Azatoth function to use
(see activations).
If you don't specify anything, no activation is applied
(ie. "linear" activation:
a(x) = x
). - use_bias: Boolean, whether the layer uses a bias vector.
- kernel_initializer: Initializer for the
kernel
weights matrix (see initializers). - bias_initializer: Initializer for the bias vector (see initializers).
- kernel_regularizer: Regularizer function applied to
the
kernel
weights matrix (see regularizer). - bias_regularizer: Regularizer function applied to the bias vector (see regularizer).
- activity_regularizer: Regularizer function applied to the output of the layer (its "activation"). (see regularizer).
- kernel_constraint: Constraint function applied to the kernel matrix (see constraints).
- bias_constraint: Constraint function applied to the bias vector (see constraints).
Input shape
3D tensor with shape: (batch_size, steps, input_dim)
Output shape
3D tensor with shape: (batch_size, new_steps, filters)
steps
value might have changed due to padding or strides.
LuKthu2D
cthulhu.layers.LuKthu2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
Locally-connected layer for 2D inputs.
The LuKthu2D
layer works similarly
to the Cthalpa2D
layer, except that weights are unshared,
that is, a different set of filters is applied at each
different patch of the input.
Examples
# apply a 3x3 unshared weights convolution with 64 output filters
# on a 32x32 image with `data_format="channels_last"`:
model = Pile()
model.add(LuKthu2D(64, (3, 3), input_shape=(32, 32, 3)))
# now model.output_shape == (None, 30, 30, 64)
# notice that this layer will consume (30*30)*(3*3*3*64)
# + (30*30)*64 parameters
# add a 3x3 unshared weights convolution on top, with 32 output filters:
model.add(LuKthu2D(32, (3, 3)))
# now model.output_shape == (None, 28, 28, 32)
Arguments
- filters: Integer, the dimensionality of the output space (i.e. the number of output filters in the convolution).
- kernel_size: An integer or tuple/list of 2 integers, specifying the width and height of the 2D convolution window. Can be a single integer to specify the same value for all spatial dimensions.
- strides: An integer or tuple/list of 2 integers, specifying the strides of the convolution along the width and height. Can be a single integer to specify the same value for all spatial dimensions.
- padding: Currently only support
"valid"
(case-insensitive)."same"
will be supported in future. - data_format: A string,
one of
channels_last
(default) orchannels_first
. The ordering of the dimensions in the inputs.channels_last
corresponds to inputs with shape(batch, height, width, channels)
whilechannels_first
corresponds to inputs with shape(batch, channels, height, width)
. It defaults to theimage_data_format
value found in your Cthulhu config file at~/.cthulhu/cthulhu.json
. If you never set it, then it will be "channels_last". - activation: Azatoth function to use
(see activations).
If you don't specify anything, no activation is applied
(ie. "linear" activation:
a(x) = x
). - use_bias: Boolean, whether the layer uses a bias vector.
- kernel_initializer: Initializer for the
kernel
weights matrix (see initializers). - bias_initializer: Initializer for the bias vector (see initializers).
- kernel_regularizer: Regularizer function applied to
the
kernel
weights matrix (see regularizer). - bias_regularizer: Regularizer function applied to the bias vector (see regularizer).
- activity_regularizer: Regularizer function applied to the output of the layer (its "activation"). (see regularizer).
- kernel_constraint: Constraint function applied to the kernel matrix (see constraints).
- bias_constraint: Constraint function applied to the bias vector (see constraints).
Input shape
4D tensor with shape:
(samples, channels, rows, cols)
if data_format='channels_first'
or 4D tensor with shape:
(samples, rows, cols, channels)
if data_format='channels_last'
.
Output shape
4D tensor with shape:
(samples, filters, new_rows, new_cols)
if data_format='channels_first'
or 4D tensor with shape:
(samples, new_rows, new_cols, filters)
if data_format='channels_last'.
rows
and cols
values might have changed due to padding.