【发布时间】:2021-01-20 11:10:33
【问题描述】:
我正在尝试在 keras 中创建自定义层,但遇到了一个奇怪的问题。当我在返回答案之前对张量求和时,尺寸会发生变化。当我将偏置权重与两个张量相加时会发生这种情况,请参见下面的代码。
summation = tf.math.add(biTensorVector, normalTensorVector)
print('summation1 ',summation)
summation = tf.math.add(summation,self.b)
print('summation2 ',summation)
给了
summation1 Tensor("sequential/ntn/Add:0", shape=(5, None), dtype=float32)
summation2 Tensor("sequential/ntn/Add_1:0", shape=(5, 5), dtype=float32)
哪个肯定应该给出输出形状 (5,None)?
self.b 初始化为:
self.b = self.add_weight(name='b',shape=(self.k,),
initializer='zeros',
trainable=True)
不应该将权重 self.b 广播为形状 (5,None) 然后添加到求和中,而不是删除 None 维度吗?任何澄清将不胜感激。
None 的大小来自层的初始化,假设它与None 一起使用它应该与我假设的任意数量的样本一起使用?所以我很困惑。
我应该补充一下,我刚刚尝试了 + 运算符,我遇到了同样的问题。
【问题讨论】:
标签: python tensorflow keras keras-layer