我有一个张量(,现在我想把它乘以(512196) 为什么结果形状是(,15 ,? , 196) 应该是(?),196年11月15日)
V = Input(shape=(512,196))
Qw = (?,15,512)
Wb_intialization = np.random.randn(512, 512).astype(np.float32) *
np.sqrt(2.0/(512))
def fun(x):
x=np.array(x)
Wb = K.variable(Wb_intialization)
return K.dot(Wb,V)
C = Lambda(fun)(Qw)
这两个输入张量没有你认为的形状
根据代码示例,
Wb
的形状实际上是(512, 512)
。但是,根据你问题的标题,我相信你实际上打算初始化Wb
,如下所示:(也就是说,
(15, 512)
而不是(512, 512)
)因此,
Wb
张量以形状(?, 15, 512)
结束V
张量的形状是(?, 512, 196)
(而不是(512, 196)
)因此,由
Wb
和V
相乘得到的张量的形状是(?, 15, ?, 196)
输出形状是
(?, 15, ?, 196)
的原因是因为两个输入张量((?, 15, 512)
和(?, 512, 196)
)的“公共”512
维用作乘积轴。因此,结果中只缺少512维,其余三个周围维仍然存在相关问题 更多 >
编程相关推荐