Python 无法理解keras致密层';s输出
我正在测试keras层。我构建了一个简单的密集层,输入的形状是Python 无法理解keras致密层';s输出,python,tensorflow,keras,Python,Tensorflow,Keras,我正在测试keras层。我构建了一个简单的密集层,输入的形状是(10,2),所有值都等于1。我使用零初始状态来初始层权重。然而,我无法理解致密层的输出,因为它可能会计算未知的最终输出。我的代码是: batch_size = 10 time_steps = 30 label_num = 2. units = 5 batch_data = tf.ones((batch_size, label_num)) dense_layer = Dense(units) output = dense_laye
(10,2)
,所有值都等于1。我使用零初始状态来初始层权重。然而,我无法理解致密层的输出,因为它可能会计算未知的最终输出。我的代码是:
batch_size = 10
time_steps = 30
label_num = 2.
units = 5
batch_data = tf.ones((batch_size, label_num))
dense_layer = Dense(units)
output = dense_layer(batch_data)
with tf.Session() as sess:
init = tf.global_variables_initializer()
sess.run(init)
print('__________________output_____________________')
print(sess.run(output))
我打印初始内核和偏差:
____________________self.kernel____________________
[[-0.6072792 0.87520194 -0.5916964 -0.28233814 0.37042332]
[ 0.24503589 -0.8950937 -0.7122175 0.67322683 0.9035703 ]]
____________________self.bias____________________
[0. 0. 0. 0. 0.]
我认为最终结果应该是:
[[-0.3622433 -0.01989174 -1.3039138 0.3908887 1.2739936 ]
[-0.3622433 -0.01989174 -1.3039138 0.3908887 1.2739936 ]
[-0.3622433 -0.01989174 -1.3039138 0.3908887 1.2739936 ]
[-0.3622433 -0.01989174 -1.3039138 0.3908887 1.2739936 ]
....
但是,最终输出为:
[[-0.25280607 1.0728977 -0.6096982 1.1957564 0.82103825]
[-0.25280607 1.0728977 -0.6096982 1.1957564 0.82103825]
[-0.25280607 1.0728977 -0.6096982 1.1957564 0.82103825]
激活是无的。为什么keras致密层的输出是这样的?您不了解输出的形状或
输出的数值结果
?你知道权重每次都是随机初始化的,对吧?@Vlad指出,默认情况下,Dense使用kernel\u initializer='glorot\u uniform'
。你说你用零初始状态来初始层权重,我发现我犯了一个大错误。当我打印权重时,我会重新初始化所有变量。所以输出是基于最后一个随机初始权重的结果,这与我打印的第一个不同!您不了解输出的形状或输出的数值结果
?你知道权重每次都是随机初始化的,对吧?@Vlad指出,默认情况下,Dense使用kernel\u initializer='glorot\u uniform'
。你说你用零初始状态来初始层权重,我发现我犯了一个大错误。当我打印权重时,我会重新初始化所有变量。所以输出是基于最后一个随机初始权重的结果,这与我打印的第一个不同!