提前为这个问题的初级性质道歉。我不知道如何开始,也没能找到任何示例代码。
下面这个非常简单的神经网络将两个数字相加。
model = tensorflow.keras.models.Sequential()
# -----------------------------------------
# first layer: input layer
# Input layer does not do any processing, so no need to define it.
# -----------------------------------------
# second layer: hidden layer:
model.add(Dense(nbr_hidden_neurons=1, input_dim=2) )
# No need for an Activation. Just return the value computed.
# model.add(Activation('linear')) # Activation
# -----------------------------------------
# third layer: output layer:
model.add(Dense(output_size=1, input_dim=1))
# Again, no need for an Activation. Just return the value computed.
# model.add(Activation('linear')) # Activation
return model
如果所有权重设置为1,所有偏差设置为0,我们将得到一个精确的和。
我的问题是我可以使用什么代码来设置权重和偏差的初始值?
这是一个简单的实验。我想看看如果权重和偏差在正确的位置开始训练会发生什么。我还想证明这些数字是正确的。
谢谢。
使用initializer初始化权重
dense = tf.keras.layers.Dense(2, kernel_initializer=tf.keras.initializers.Constant(value = 1) , bias_initializer=tf.keras.initializers.zeros , input_shape=(2,2))
dense(tf.random.normal((2,2)))
dense.weights
[<tf.Variable 'dense_2/kernel:0' shape=(2, 2) dtype=float32, numpy=
array([[1., 1.],
[1., 1.]], dtype=float32)>,
<tf.Variable 'dense_2/bias:0' shape=(2,) dtype=float32, numpy=array([0., 0.], dtype=float32)>]