卷积padding,kernel_initializer

TensorFlow和

keras.layers.convolutional.Conv1D和tf.layers.Conv1D函数

 

keras.layers.convolutional.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=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

tf.layers.Conv1D

__init__( filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer=None, bias_initializer=tf.zeros_initializer(), kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, trainable=True, name=None, **kwargs )

  • x:张量或变量。
  • kernel:核张量。
  • strides:步长整数。
  • padding:字符串,"same","causal"或"valid"。
  • data_format:字符串,“channels_last”,“channels_first”之一。
  • dilation_rate:整数扩张率。

参数:

  • filters:整数,输出空间的维数(即卷积中的滤波器数).
  • kernel_size:单个整数的整数或元组/列表,指定1D卷积窗口的长度.
  • strides:单个整数的整数或元组/列表,指定卷积的步幅.指定任何步幅(stride)值!= 1与指定任何dilation_rate值都不相容!= 1.
  • padding:一个"valid"或"same"(不区分大小写).
  • data_format:一个字符串,可以是channels_last(默认)或channels_first;输入中维度的顺序;channels_last对应于具有形状(batch, length, channels)的输入,而channels_first对应于具有形状(batch, channels, length)的输入.
  • dilation_rate:单个整数的整数或元组/列表,指定用于扩张卷积的扩张率.目前,指定任何dilation_rate值!= 1与指定任何strides值!= 1 不兼容.
  • activation:激活功能,将其设置为“None”以保持线性激活.
  • use_bias:Boolean,该层是否使用偏差.
  • kernel_initializer:卷积内核的初始化程序.
  • bias_initializer:偏置向量的初始化器,如果为None,将使用默认初始值设定项.
  • kernel_regularizer:卷积内核的可选正则化器.
  • bias_regularizer:偏置矢量的可选正则化器.
  • activity_regularizer:输出的可选正则化函数.
  • kernel_constraint:由Optimizer更新后应用于内核的可选投影函数(例如,用于实现层权重的范数约束或值约束);该函数必须将未投影的变量作为输入,并且必须返回投影变量(必须具有相同的形状);在进行异步分布式培训时,使用约束是不安全的.
  • bias_constraint:由Optimizer更新后应用于偏差的可选投影函数.
  • trainable:Boolean,如果为True,还将变量添加到图集合GraphKeys.TRAINABLE_VARIABLES中(请参阅参考资料tf.Variable).
  • name:字符串,图层的名称.
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相同  

kernel_initializer

不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是kernel_initializer 和 bias_initializer,例如:

model.add(Dense(64,
                kernel_initializer='random_uniform',
                bias_initializer='zeros'))

Initializer

Initializer是所有初始化方法的父类,不能直接使用,如果想要定义自己的初始化方法,请继承此类。

预定义初始化方法

Zeros

keras.initializers.Zeros()

全零初始化

Ones

keras.initializers.Ones()

全1初始化

Constant

keras.initializers.Constant(value=0)

初始化为固定值value

RandomNormal

keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None))

正态分布初始化

  • mean:均值
  • stddev:标准差
  • seed:随机数种子

RandomUniform

keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=None)

均匀分布初始化 minval:均匀分布下边界 maxval:均匀分布上边界 * seed:随机数种子

TruncatedNormal

keras.initializers.TruncatedNormal(mean=0.0, stddev=0.05, seed=None)

截尾高斯分布初始化,该初始化方法与RandomNormal类似,但位于均值两个标准差以外的数据将会被丢弃并重新生成,形成截尾分布。该分布是神经网络权重和滤波器的推荐初始化方法。

  • mean:均值
  • stddev:标准差
  • seed:随机数种子

VarianceScaling

keras.initializers.VarianceScaling(scale=1.0, mode='fan_in', distribution='normal', seed=None)

该初始化方法能够自适应目标张量的shape。

distribution="normal"时,样本从0均值,标准差为sqrt(scale / n)的截尾正态分布中产生。其中:

* 当```mode = "fan_in"```时,权重张量的输入单元数。
* 当```mode = "fan_out"```时,权重张量的输出单元数
* 当```mode = "fan_avg"```时,权重张量的输入输出单元数的均值

distribution="uniform"时,权重从[-limit, limit]范围内均匀采样,其中limit = limit = sqrt(3 * scale / n)

  • scale: 放缩因子,正浮点数
  • mode: 字符串,“fan_in”,“fan_out”或“fan_avg”fan_in", "fan_out", "fan_avg".
  • distribution: 字符串,“normal”或“uniform”.
  • seed: 随机数种子

Orthogonal

keras.initializers.Orthogonal(gain=1.0, seed=None)

用随机正交矩阵初始化

  • gain: 正交矩阵的乘性系数
  • seed:随机数种子

 

你可能感兴趣的:(问题记录,环境搭建等,卷积,深度学习,TensorFlow)