Keras.layers各种层介绍
本⽂章向⼤家介绍Keras(七)Keras.layers各种层介绍,主要包括Keras(七)Keras.layers各种层介绍使⽤实例、应⽤技巧、基本知识点总结和需要注意事项,具有⼀定的参考
价值,需要的朋友可以参考⼀下。
⼀、⽹络层
keras的层主要包括:
常⽤层(Core)、卷积层(Convolutional)、池化层(Pooling)、局部连接层、递归层(Recurrent)、嵌⼊层( Embedding)、⾼级激活层、规范层、噪声层、包装层,当
然也可以编写⾃⼰的层。
对于层的操作
<_weights() #返回该层的权重(numpy array)
layer.set_weights(weights)#将权重加载到该层
config = _config()#保存该层的配置
layer = layer_from_config(config)#加载⼀个配置到该层
#如果层仅有⼀个计算节点(即该层不是共享层),则可以通过下列⽅法获得输⼊张量、输出张量、输⼊数据的形状和输出数据的形状:
layer.input
layer.output
layer.input_shape
layer.output_shape
#如果该层有多个计算节点。可以使⽤下⾯的⽅法
<_input_at(node_index)
<_output_at(node_index)
<_input_shape_at(node_index)
<_output_shape_at(node_index)
1、常⽤⽹络层
1.1、Dense层(全连接层)
Dense(units,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=
参数:
units:⼤于0的整数,代表该层的输出维度。
use_bias:布尔值,是否使⽤偏置项
kernel_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。
bias_initializer:偏置向量初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化偏置向量的初始化器。
regularizer:正则项,kernel为权重的、bias为偏执的,activity为输出的
constraints:约束项,kernel为权重的,bias为偏执的。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使⽤任何激活函数(即使⽤线性
激活函数:a(x)=x)
input_dim:该层输⼊的维度
本层实现的运算为
output=activation(dot(input,kernel)+bias)
1.2、Activation层
Activation(activation)
激活层对⼀个层的输出施加激活函数
参数:
activation:将要使⽤的激活函数,为预定义激活函数名或⼀个Tensorflow/Theano的函数。参考激活函数
输⼊shape:任意,当使⽤激活层作为第⼀层时,要指定input_shape
输出shape:与输⼊shape相同
1.3、dropout层
Dropout(rate, noise_shape=None, seed=None)
为输⼊数据施加Dropout。Dropout将在训练过程中每次更新参数时按⼀定概率(rate)随机断开输⼊神经元,Dropout层⽤于防⽌过拟合。
参数
rate:0~1的浮点数,控制需要断开的神经元的⽐例
noise_shape:整数张量,为将要应⽤在输⼊上的⼆值Dropout mask的shape,例如你的输⼊为(batch_size, timesteps, features),并且你希望在各个时间步上的Dropout
mask都相同,则可传⼊noise_shape=(batch_size, 1, features)。
seed:整数,使⽤的随机数种⼦
1.4、Flatten层
Flatten()
Flatten层⽤来将输⼊“压平”,即把多维的输⼊⼀维化,常⽤在从卷积层到全连接层的过渡。Flatten不影响batch的⼤⼩。
demo:
model = Sequential()
model.add(Convolution2D(64, 3, 3,
border_mode='same',
input_shape=(3, 32, 32)))
# now: model.output_shape == (None, 64, 32, 32)
model.add(Flatten())
# now: model.output_shape == (None, 65536)
1.5、Reshape层
Reshape(target_shape)
Reshape层⽤来将输⼊shape转换为特定的shape
参数
target_shape:⽬标shape,为整数的tuple,不包含样本数⽬的维度(batch⼤⼩)
输⼊shape:任意,但输⼊的shape必须固定。当使⽤该层为模型⾸层时,需要指定input_shape参数
输出shape:(batch_size,)+target_shape
demo:
# as first layer in a Sequential model
model = Sequential()
model.add(Reshape((3, 4), input_shape=(12,)))
# now: model.output_shape == (None, 3, 4)
# note: `None` is the batch dimension
# as intermediate layer in a Sequential model
model.add(Reshape((6, 2)))
# now: model.output_shape == (None, 6, 2)
# also supports shape inference using `-1` as dimension
model.add(Reshape((-1, 2, 2)))
# now: model.output_shape == (None, 3, 2, 2)
1.6、Permute层
Permute(dims)
Permute层将输⼊的维度按照给定模式进⾏重排,例如,当需要将RNN和CNN⽹络连接时,可能会⽤到该层。所谓的重排也就是交换两⾏
参数
dims:整数tuple,指定重排的模式,不包含样本数的维度。重拍模式的下标从1开始。例如(2,1)代表将输⼊的第⼆个维度重排到输出的第⼀个维度,⽽将输⼊的第⼀个维度重排到第⼆个维度
model = Sequential()
model.add(Permute((2, 1), input_shape=(10, 64)))
# now: model.output_shape == (None, 64, 10)
# note: `None` is the batch dimension
输⼊shape:任意,当使⽤激活层作为第⼀层时,要指定input_shape
输出shape:与输⼊相同,但是其维度按照指定的模式重新排列
1.7、RepeatVector层
RepeatVector(n)
RepeatVector层将输⼊重复n次
参数
n:整数,重复的次数
输⼊shape:形如(nb_samples, features)的2D张量
输出shape:形如(nb_samples, n, features)的3D张量
例⼦
model = Sequential()
model.add(Dense(32, input_dim=32))
# now: model.output_shape == (None, 32)
# note: `None` is the batch dimension
model.add(RepeatVector(3))
# now: model.output_shape == (None, 3, 32)
1.8、Lambda层
Lambda(function, output_shape=None, mask=None, arguments=None)
本函数⽤以对上⼀层的输出施以任何Theano/TensorFlow表达式
参数
function:要实现的函数,该函数仅接受⼀个变量,即上⼀层的输出
output_shape:函数应该返回的值的shape,可以是⼀个tuple,也可以是⼀个根据输⼊
shape计算输出shape的函数
mask: 掩膜
arguments:可选,字典,⽤来记录向函数中传递的其他关键字参数
输⼊shape:任意,当使⽤该层作为第⼀层时,要指定input_shape
输出shape:由output_shape参数指定的输出shape,当使⽤tensorflow时可⾃动推断
# add a x -> x^2 layer
model.add(Lambda(lambda x: x ** 2))
# add a layer that returns the concatenation
# of the positive part of the input and
# the opposite of the negative part
def antirectifier(x):
x -= K.mean(x, axis=1, keepdims=True)
x = K.l2_normalize(x, axis=1)
pos = K.relu(x)
neg = K.relu(-x)
atenate([pos, neg], axis=1)
def antirectifier_output_shape(input_shape):
shape = list(input_shape)
assert len(shape) == 2 # only valid for 2D tensors
正则匹配浮点数shape[-1] *= 2
return tuple(shape)
model.add(Lambda(antirectifier,
output_shape=antirectifier_output_shape))
1.9、ActivityRegularizer层
ActivityRegularization(l1=0.0, l2=0.0)
经过本层的数据不会有任何变化,但会基于其激活值更新损失函数值
参数
l1:1范数正则因⼦(正浮点数)
l2:2范数正则因⼦(正浮点数)
输⼊shape:任意,当使⽤该层作为第⼀层时,要指定input_shape
输出shape:与输⼊shape相同
2.0、Masking层
Masking(mask_value=0.0)
2、卷积层Convolutional
2.1、Conv1D层
volutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=
⼀维卷积层(即时域卷积),⽤以在⼀维输⼊信号上进⾏邻域滤波。当使⽤该层作为⾸层时,需要提供关键字参数input_shape。例如(10,128)代表⼀个长为10的序列,序列中每
个信号为128向量。⽽(None, 128)代表变长的128维向量序列。
该层⽣成将输⼊信号与卷积核按照单⼀的空域(或时域)⽅向进⾏卷积。如果use_bias=True,则还会加上⼀个偏置项,若activation不为None,则输出为经过激活函数的输出。
参数
filters:卷积核的数⽬(即输出的维度)
kernel_size:整数或由单个整数构成的list/tuple,卷积核的空域或时域窗长度
strides:整数或由单个整数构成的list/tuple,为卷积的步长。任何不为1的strides均与任何不为1的dilation_rate均不兼容
padding:补0策略,为“valid”, “same” 或“causal”,“causal”将产⽣因果(膨胀的)卷积,即output[t]不依赖于input[t+1:]。当对不能违反时间顺序的时序信号建模时有⽤。
参考WaveNet: A Generative Model for Raw Audio, section 2.1.。“valid”代表只进⾏有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输
出shape与输⼊shape相同。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使⽤任何激活函数(即使⽤线性
激活函数:a(x)=x)
dilation_rate:整数或由单个整数构成的list/tuple,指定dilated convolution中的膨胀⽐例。任何不为1的dilation_rate均与任何不为1的strides均不兼容。
use_bias:布尔值,是否使⽤偏置项
kernel_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
bias_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
kernel_regularizer:施加在权重上的正则项,为Regularizer对象
bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
activity_regularizer:施加在输出上的正则项,为Regularizer对象
kernel_constraints:施加在权重上的约束项,为Constraints对象
bias_constraints:施加在偏置上的约束项,为Constraints对象
输⼊shape:形如(samples,steps,input_dim)的3D张量
输出shape:形如(samples,new_steps,nb_filter)的3D张量,因为有向量填充的原因,steps的值会改变
【Tips】可以将Convolution1D看作Convolution2D的快捷版,对例⼦中(10,32)的信号进⾏1D卷积相当于对其进⾏卷积核为(filter_length, 32)的2D卷积。
2.2、Conv2D层
volutional.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=
⼆维卷积层,即对图像的空域卷积。该层对⼆维输⼊进⾏滑动窗卷积,当使⽤该层作为第⼀层时,应提供input_shape参数。例如input_shape = (128,128,3)代表128*128的彩⾊RGB图
像(data_format='channels_last')
参数
filters:卷积核的数⽬(即输出的维度)
kernel_size:单个整数或由两个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表⽰在各个空间维度的相同长度。
strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表⽰在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均
不兼容
padding:补0策略,为“valid”, “same” 。“valid”代表只进⾏有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输⼊shape相
同。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使⽤任何激活函数(即使⽤线性
激活函数:a(x)=x)
dilation_rate:单个整数或由两个整数构成的list/tuple,指定dilated convolution中的膨胀⽐例。任何不为1的dilation_rate均与任何不为1的strides均不兼容。
data_format:字符串,“channels_first”或“channels_last”之⼀,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本
的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),⽽“channels_last”应将数据组织为(128,128,3)。该
参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
use_bias:布尔值,是否使⽤偏置项
kernel_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
bias_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
kernel_regularizer:施加在权重上的正则项,为Regularizer对象
bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
activity_regularizer:施加在输出上的正则项,为Regularizer对象
kernel_constraints:施加在权重上的约束项,为Constraints对象
bias_constraints:施加在偏置上的约束项,为Constraints对象
输⼊shape:
‘channels_first’模式下,输⼊形如(samples,channels,rows,cols)的4D张量。
‘channels_last’模式下,输⼊形如(samples,rows,cols,channels)的4D张量。
注意这⾥的输⼊shape指的是函数内部实现的输⼊shape,⽽⾮函数接⼝应指定的input_shape,请参考下⾯提供的例⼦。
‘channels_first’模式下,为形如(samples,nb_filter, new_rows, new_cols)的4D张量。
‘channels_last’模式下,为形如(samples,new_rows, new_cols,nb_filter)的4D张。量
输出的⾏列数可能会因为填充⽅法⽽改变。
2.3、SeparableConv2D层
volutional.SeparableConv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, depth_multiplier=1, activation=None, use_bias=True, depthwise_initializer='glorot_uniform', pointwise_initializer='glorot_uniform', b
该层是在深度⽅向上的可分离卷积。
可分离卷积⾸先按深度⽅向进⾏卷积(对每个输⼊通道分别卷积),然后逐点进⾏卷积,将上⼀步的卷积结果混合到输
出通道中。参数depth_multiplier控制了在depthwise卷积
(第⼀步)的过程中,每个输⼊通道信号产⽣多少个输出通道。
直观来说,可分离卷积可以看做讲⼀个卷积核分解为两个⼩的卷积核,或看作Inception模块的⼀种极端情况。
当使⽤该层作为第⼀层时,应提供input_shape参数。例如input_shape = (3,128,128)代表128*128的彩⾊RGB图像。
参数
filters:卷积核的数⽬(即输出的维度)
kernel_size:单个整数或由两个个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表⽰在各个空间维度的相同长度。
strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表⽰在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均
不兼容
padding:补0策略,为“valid”, “same”
。“valid”代表只进⾏有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输⼊shape相同。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使⽤任何激活函数(即使⽤线性
激活函数:a(x)=x)
dilation_rate:单个整数或由两个整数构成的list/tuple,指定dilated
convolution中的膨胀⽐例。任何不为1的dilation_rate均与任何不为1的strides均不兼容。
data_format:字符串,“channels_first”或“channels_last”之⼀,代表图像的通道维的位置。该参数是Keras1.x中的image_dim_ordering,“channels_last”对应原本
的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),⽽“channels_last”应将数据组织为(128,128,3)。该
参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
use_bias:布尔值,是否使⽤偏置项 depth_multiplier:在按深度卷积的步骤中,每个输⼊通道使⽤多少个输出通道
kernel_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
bias_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
depthwise_regularizer:施加在按深度卷积的权重上的正则项,为Regularizer对象
pointwise_regularizer:施加在按点卷积的权重上的正则项,为Regularizer对象
kernel_regularizer:施加在权重上的正则项,为Regularizer对象
bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
activity_regularizer:施加在输出上的正则项,为Regularizer对象
kernel_constraints:施加在权重上的约束项,为Constraints对象
bias_constraints:施加在偏置上的约束项,为Constraints对象
depthwise_constraint:施加在按深度卷积权重上的约束项,为Constraints对象
pointwise_constraint施加在按点卷积权重的约束项,为Constraints对象
输⼊shape
‘channels_first’模式下,输⼊形如(samples,channels,rows,cols)的4D张量。
‘channels_last’模式下,输⼊形如(samples,rows,cols,channels)的4D张量。
注意这⾥的输⼊shape指的是函数内部实现的输⼊shape,⽽⾮函数接⼝应指定的input_shape,请参考下⾯提供的例⼦。
输出shape
‘channels_first’模式下,为形如(samples,nb_filter, new_rows, new_cols)的4D张量。
‘channels_last’模式下,为形如(samples,new_rows, new_cols,nb_filter)的4D张量。
输出的⾏列数可能会因为填充⽅法⽽改变
2.4、Conv2DTranspose层
volutional.Conv2DTranspose(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_regular
该层是转置的卷积操作(反卷积)。需要反卷积的情况通常发⽣在⽤户想要对⼀个普通卷积的结果做反⽅向的变换。例如,将具有该卷积层输出shape的tensor转换为具有该卷积
层输⼊shape的tensor。同时保留与卷积层兼容的连接模式。
当使⽤该层作为第⼀层时,应提供input_shape参数。例如input_shape = (3,128,128)代表128*128的彩⾊RGB图像。
参数
filters:卷积核的数⽬(即输出的维度)
kernel_size:单个整数或由两个个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表⽰在各个空间维度的相同长度。
strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表⽰在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均
不兼容
padding:补0策略,为“valid”, “same” 。“valid”代表只进⾏有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输⼊shape相
同。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使⽤任何激活函数(即使⽤线性
激活函数:a(x)=x)
dilation_rate:单个整数或由两个个整数构成的list/tuple,指定dilated convolution中的膨胀⽐例。任何不为1的dilation_rate均与任何不为1的strides均不兼容。
data_format:字符串,“channels_first”或“channels_last”之⼀,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本
的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),⽽“channels_last”应将数据组织为(128,128,3)。该
参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
use_bias:布尔值,是否使⽤偏置项
kernel_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
bias_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
kernel_regularizer:施加在权重上的正则项,为Regularizer对象
bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
activity_regularizer:施加在输出上的正则项,为Regularizer对象
kernel_constraints:施加在权重上的约束项,为Constraints对象
bias_constraints:施加在偏置上的约束项,为Constraints对象
输⼊shape
‘channels_first’模式下,输⼊形如(samples,channels,rows,cols)的4D张量。
‘channels_last’模式下,输⼊形如(samples,rows,cols,channels)的4D张量。
注意这⾥的输⼊shape指的是函数内部实现的输⼊shape,⽽⾮函数接⼝应指定的input_shape,请参考下⾯提供的例⼦。
输出shape
‘channels_first’模式下,为形如(samples,nb_filter, new_rows, new_cols)的4D张量。
‘channels_last’模式下,为形如(samples,new_rows, new_cols,nb_filter)的4D张量。
输出的⾏列数可能会因为填充⽅法⽽改变
volutional.Conv3D(filters, kernel_size, strides=(1, 1, 1), padding='valid', data_format=None, dilation_rate=(1, 1, 1), activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=
三维卷积对三维的输⼊进⾏滑动窗卷积,当使⽤该层作为第⼀层时,应提供input_shape参数。例如input_shape = (3,10,128,128)代表对10帧128*128的彩⾊RGB图像进⾏卷
积。数据的通道位置仍然有data_format参数指定。
参数
filters:卷积核的数⽬(即输出的维度)
kernel_size:单个整数或由3个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表⽰在各个空间维度的相同长度。
strides:单个整数或由3个整数构成的list/tuple,为卷积的步长。如为单个整数,则表⽰在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rate均不
兼容
padding:补0策略,为“valid”, “same” 。“valid”代表只进⾏有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输⼊shape相
同。
activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使⽤任何激活函数(即使⽤线性
激活函数:a(x)=x)
dilation_rate:单个整数或由3个个整数构成的list/tuple,指定dilated convolution中的膨胀⽐例。任何不为1的dilation_rate均与任何不为1的strides均不兼容。
data_format:字符串,“channels_first”或“channels_last”之⼀,代表数据的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本
的“tf”,“channels_first”对应原本的“th”。以128x128x128的数据为例,“channels_first”应将数据组织为(3,128,128,128),⽽“channels_last”应将数据组织为
(128,128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
use_bias:布尔值,是否使⽤偏置项
kernel_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
bias_initializer:权值初始化⽅法,为预定义初始化⽅法名的字符串,或⽤于初始化权重的初始化器。参考initializers
kernel_regularizer:施加在权重上的正则项,为Regularizer对象
bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象
activity_regularizer:施加在输出上的正则项,为Regularizer对象
kernel_constraints:施加在权重上的约束项,为Constraints对象
bias_constraints:施加在偏置上的约束项,为Constraints对象
输⼊shape
‘channels_first’模式下,输⼊应为形如(samples,channels,input_dim1,input_dim2, input_dim3)的5D张量
‘channels_last’模式下,输⼊应为形如(samples,input_dim1,input_dim2, input_dim3,channels)的5D张量
这⾥的输⼊shape指的是函数内部实现的输⼊shape,⽽⾮函数接⼝应指定的input_shape。
2.6、Cropping1D层
volutional.Cropping1D(cropping=(1, 1))
在时间轴(axis1)上对1D输⼊(即时间序列)进⾏裁剪
参数
cropping:长为2的tuple,指定在序列的⾸尾要裁剪掉多少个元素
输⼊shape:形如(samples,axis_to_crop,features)的3D张量
输出shape:形如(samples,cropped_axis,features)的3D张量。
2.7、Cropping2D层
volutional.Cropping2D(cropping=((0, 0), (0, 0)), data_format=None)
对2D输⼊(图像)进⾏裁剪,将在空域维度,即宽和⾼的⽅向上裁剪
参数
cropping:长为2的整数tuple,分别为宽和⾼⽅向上头部与尾部需要裁剪掉的元素数
data_format:字符串,“channels_first”或“channels_last”之⼀,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本
的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),⽽“channels_last”应将数据组织为(128,128,3)。该
参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
输⼊shape:形如(samples,depth, first_axis_to_crop, second_axis_to_crop)
输出shape:形如(samples, depth, first_cropped_axis, second_cropped_axis)的4D张量。
2.8、Cropping3D层
volutional.Cropping3D(cropping=((1, 1), (1, 1), (1, 1)), data_format=None)
对2D输⼊(图像)进⾏裁剪
参数
cropping:长为3的整数tuple,分别为三个⽅向上头部与尾部需要裁剪掉的元素数
data_format:字符串,“channels_first”或“channels_last”之⼀,代表数据的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本
的“tf”,“channels_first”对应原本的“th”。以128x128x128的数据为例,“channels_first”应将数据组织为(3,128,128,128),⽽“channels_last”应将数据组织为
(128,128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channels_last”。
输⼊shape:形如 (samples, depth, first_axis_to_crop, second_axis_to_crop, third_axis_to_crop)的5D张量。
输出shape:形如(samples, depth, first_cropped_axis, second_cropped_axis, third_cropped_axis)的5D张量。
2.9、UpSampling1D层
volutional.UpSampling1D(size=2)
在时间轴上,将每个时间步重复length次
参数
size:上采样因⼦
输⼊shape:形如(samples,steps,features)的3D张量
输出shape:形如(samples,upsampled_steps,features)的3D张量
3.0、UpSampling2D层
volutional.UpSampling2D(size=(2, 2), data_format=None)
将数据的⾏和列分别重复size[0]和size[1]次
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论