作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用随机制服初始化我的自定义图层。在TensorFlow中,我可以找到以下使用initializer='uniform'
的代码。但我想在 (-1.0,1.0)
之间设置随机统一输出范围。如何做到这一点:
class MyDenseLayer(tf.keras.layers.Layer):
def __init__(self, num_outputs):
super(MyDenseLayer, self).__init__()
self.num_outputs = num_outputs
def build(self, input_shape):
self.kernel = self.add_variable(initializer='uniform',shape=[int(input_shape[-1]),self.num_outputs])
def call(self, input):
return tf.matmul(input, self.kernel)
最佳答案
一种方法是在 numpy
中生成随机统一,然后使用 tf.constant_initializer()
,如下所示:
import tensorflow as tf
import numpy as np
class MyDenseLayer(tf.keras.layers.Layer):
def __init__(self, num_outputs):
super(MyDenseLayer, self).__init__()
self.num_outputs = num_outputs
def build(self, input_shape):
shape = [int(input_shape[-1]),self.num_outputs]
init_val = np.random.uniform(low=-1.0, high=1.0, size=shape)
initializer = tf.constant_initializer(init_val,
dtype=tf.float32)
self.kernel = self.add_weight(initializer=initializer,
shape=shape,
name='kernel')
super(MyDenseLayer, self).build(input_shape)
def call(self, input):
return tf.matmul(input, self.kernel)
或改用tf.initializers.random_uniform()
init = tf.initializers.random_uniform(minval=-1.0, maxval=1.0)
self.kernel = self.add_weight(initializer=init,
shape=shape,
name='kernel')
关于python - 如何在自定义层中编写初始化程序(random.uniform)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55495085/
我是一名优秀的程序员,十分优秀!