精华内容
下载资源
问答
  • 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.

    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:随机数种子

     

    展开全文
  • keras 自定义kernel_initializer

    千次阅读 2020-03-15 21:14:36
    一:对Dense层 from keras import backend as K def my_init(shape, dtype=None): return K.random_normal(shape, dtype=...model.add(Dense(64, kernel_initializer=my_init)) 二:对Conv2D def kernel_init(sh...

    一:对Dense层

    from keras import backend as K
    
    def my_init(shape, dtype=None):
        return K.random_normal(shape, dtype=dtype)
    
    model.add(Dense(64, kernel_initializer=my_init))
    

    二:对Conv2D

    def kernel_init(shape, dtype=None):
        b = K.constant([[[[-1 / 12.]], [[2 / 12.]], [[-2 / 12.]], [[2 / 12.]], [[-1 / 12.]]],
                        [[[2 / 12.]], [[-6 / 12.]], [[8 / 12.]], [[-6 / 12.]], [[2 / 12.]]],
                        [[[-2 / 12.]], [[8 / 12.]], [[-12 / 12.]], [[8 / 12.]], [[-2 / 12.]]],
                        [[[2 / 12.]], [[-6 / 12.]], [[8 / 12.]], [[-6 / 12.]], [[2 / 12.]]],
                        [[[-1 / 12.]], [[2 / 12.]], [[-2 / 12.]], [[2 / 12.]], [[-1 / 12.]]]], dtype='float32')
        F_0 = Lambda(lambda x: K.cast(x, dtype='float32'))(b)
        return F_0
    
    z_c = Conv2D(1, kernel_size=(5, 5), strides=(1, 1), padding='same',
                         kernel_initializer=kernel_init)(img_input)
    

    三:使用自定义的kernel_initializer后,保存,加载模型使用save_weights,load_weights,不要用save_model, load_model,否则会报错。

    参考1
    参考2
    参考3

    展开全文
  • Keras kernel_initializer 权重初始化的方法

    万次阅读 多人点赞 2018-11-13 20:28:44
    不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是kernel_initializer 和 bias_initializer,例如: model.add(Dense(64, kernel_initializer='random_uniform', ...

    初始化方法

    初始化方法定义了对Keras层设置初始化权重的方法

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

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

    一个初始化器可以由字符串指定(必须是下面的预定义初始化器之一),或一个callable的函数,例如

    from keras import initializers
    
    model.add(Dense(64, kernel_initializer=initializers.random_normal(stddev=0.01)))
    
    # also works; will use the default parameters.
    model.add(Dense(64, kernel_initializer='random_normal'))
    

    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:随机数种子

    参考文献:Saxe et al.

    Identiy

    keras.initializers.Identity(gain=1.0)
    

    使用单位矩阵初始化,仅适用于2D方阵

    • gain:单位矩阵的乘性系数

    lecun_uniform

    lecun_uniform(seed=None)
    

    LeCun均匀分布初始化方法,参数由[-limit, limit]的区间中均匀采样获得,其中limit=sqrt(3 / fan_in), fin_in是权重向量的输入单元数(扇入)

    • seed:随机数种子

    参考文献:LeCun 98, Efficient Backprop

    lecun_normal

    lecun_normal(seed=None)
    

    LeCun正态分布初始化方法,参数由0均值,标准差为stddev = sqrt(1 / fan_in)的正态分布产生,其中fan_in和fan_out是权重张量的扇入扇出(即输入和输出单元数目)

    • seed:随机数种子

    参考文献:

    Self-Normalizing Neural Networks Efficient Backprop

    glorot_normal

    glorot_normal(seed=None)
    

    Glorot正态分布初始化方法,也称作Xavier正态分布初始化,参数由0均值,标准差为sqrt(2 / (fan_in + fan_out))的正态分布产生,其中fan_in和fan_out是权重张量的扇入扇出(即输入和输出单元数目)

    • seed:随机数种子

    参考文献:Glorot & Bengio, AISTATS 2010

    glorot_uniform

    glorot_uniform(seed=None)
    

    Glorot均匀分布初始化方法,又成Xavier均匀初始化,参数从[-limit, limit]的均匀分布产生,其中limit为sqrt(6 / (fan_in + fan_out))。fan_in为权值张量的输入单元数,fan_out是权重张量的输出单元数。

    • seed:随机数种子

    参考文献:Glorot & Bengio, AISTATS 2010

    he_normal

    he_normal(seed=None)
    

    He正态分布初始化方法,参数由0均值,标准差为sqrt(2 / fan_in) 的正态分布产生,其中fan_in权重张量的扇入

    • seed:随机数种子

    参考文献:He et al

    he_uniform

    he_normal(seed=None)
    

    LeCun均匀分布初始化方法,参数由[-limit, limit]的区间中均匀采样获得,其中limit=sqrt(6 / fan_in), fin_in是权重向量的输入单元数(扇入)

    • seed:随机数种子

    参考文献:He et al

    自定义初始化器

    如果需要传递自定义的初始化器,则该初始化器必须是callable的,并且接收shape(将被初始化的张量shape)和dtype(数据类型)两个参数,并返回符合shapedtype的张量。

    from keras import backend as K
    
    def my_init(shape, dtype=None):
        return K.random_normal(shape, dtype=dtype)
    
    model.add(Dense(64, init=my_init))
    展开全文
  • https://blog.csdn.net/hyl999/article/details/84035578
    展开全文
  • 两个初始器的使用和区别 tf.random_normal_initializer:正态分布 tf.truncated_normal_initializer:截取的正态分布
  • CNN中最重要的就是参数了,包括W,b。 我们训练CNN的最终目的就是得到最好的参数,使得目标函数取得最小值。参数的初始化也同样重要,因此微调受到很多人的重视,那么tf提供...1、tf.constant_initializer() 也可以简...
  • variance_scaling_initializer( factor=2.0, mode='FAN_IN', uniform=False, seed=None, dtype=tf.float32 ) Returns an initializer that generates tensors without scaling variance. When initializing a...
  • tf.truncated_normal_initializer用法

    千次阅读 2020-04-22 22:09:15
    tf.compat.v1.truncated_normal_initializer( mean=0.0, stddev=1.0, seed=None, dtype=tf.dtypes.float32 ) These values are similar to values from a random_normal_initializer except that values more t...
  • xavier_initializer初始化

    千次阅读 2019-11-03 10:22:05
    xavier_initializer( uniform=True, seed=None, dtype=tf.float32 ) 返回对权重执行“ Xavier”初始化的初始化器。 使用: def initialize_parameters(): tf.set_random_seed(1) W1= tf.get_variable("W1...
  • 5. tensorflow之tf.random_normal_initializer

    万次阅读 2017-10-16 20:01:30
    tensorflow之tf.random_normal_initializer
  • tensorflow 参数初始化(initializer)

    千次阅读 2018-07-28 20:22:22
    CNN中最重要的就是参数了,包括W,b。 我们训练CNN的最终目的就是得到最好的参数,使得目标函数取得最小值。参数的初始化也同样重要,因此微调受到很多人的重视,...1、tf.constant_initializer() 也可以简写为tf....
  • tensorflow之参数初始化(initializer)

    千次阅读 2018-11-10 16:23:12
    1、tf.constant_initializer() 也可以简写为tf.Constant() 初始化为常数,这个非常有用,通常偏置项就是用它初始化的。 由它衍生出的两个初始化方法: a、 tf.zeros_initializer(), 也可以简写为tf.Zeros() b...
  • CNN中最重要的就是参数了,包括W,b。 我们训练CNN的最终目的就是得到最好的参数,使得目标函数...所有的初始化方法都定义在tensorflow/python/ops/init_ops.py1、tf.constant_initializer()也可以简写为tf.Consta...
  • 用keras实现fcn全卷积网络的图像分割

    万次阅读 热门讨论 2018-09-16 12:23:25
    up6 = Conv2D(512, 2, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(UpSampling2D(size = (2,2))(drop5)) merge6 = concatenate([drop4,up6],) conv6 = Conv2D(512, 3, activation...
  • 所有的初始化方法都定义在tensorflow/python/ops/init_ops.py1、tf.constant_initializer()也可以简写为tf.Constant()初始化为常数,这个非常有用,通常偏置项就是用它初始化的。由它衍生出的两个初始化方法:a、 tf...
  • tensorflow 学习笔记(九)- 参数初始化(initializer) CNN中最重要的就是参数了,包括W,b。 我们训练CNN的最终目的就是得到最好的参数,使得目标函数取得最小值。参数的初始化也同样重要,因此微调受到很多人的...
  • 通常关键字为 kernel_initializer 和 bias_initializer: 你可以给它们传递初始化器的名字字符串,例如: model.add(Dense(64, kernel_initializer='random_uniform', bias_initializer='zeros')) 也可以给它们传递...
  • tf.constant_initializer() 也可以简写为tf.Constant() 初始化为常数,这个非常有用,通常偏置项就是用它初始化的。 由它衍生出两个初始化方法: tf.zero_initializer(),也可以简写为tf.Zeros() tf.ones_...
  • 通常关键字为 kernel_initializer 和 bias_initializer: model.add(Dense(64, kernel_initializer='random_uniform', bias_initializer='zeros')) 一个初始化器可以作为一个字符串传递(必须匹配上面的一个可用的...
  • 2、tf.truncated_normal_initializer() 或者简写为tf.TruncatedNormal() 生成截断正态分布的随机数,这个初始化方法好像在tf中用得比较多。 它有四个参数(mean=0.0, stddev=1.0, seed=None, dt...
  • get_variable的initializer参数只能是Tensor对象,或接收shape及dtype作为参数并返回Tensor的callable 类似tf.truncated_normal_initializer的对象是继承Initializer的类 详见:...
  • Keras中几个重要函数用法

    万次阅读 多人点赞 2017-04-28 09:13:41
    keras.layers.core.Dense ( units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=...
  • kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None) L看起来有点让人...
  • kernel_initializer: Initializer for the `kernel` weights matrix, used for the linear transformation of the inputs (see [initializers](../initializers.md)). recurrent_initializer: Initializer for ...
  • tf.keras Unet

    2019-12-13 09:08:30
    conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(inputs1) print ("conv1 shape:",conv1.shape) conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same...
  • 一,kernel_initializer&bias_initializer: 建网络层时内核或者偏差权重的初始化方案。此参数是名称或可调用对象。 二,kernel_regularizer&bias_regularizer: 设置应用于网络层中内核或者偏差权重的正则化...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,747
精华内容 5,098
关键字:

kernel_initializer