keras中的乘法形状(?,15,?,196)

2024-10-03 11:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个张量(,现在我想把它乘以(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)

Tags: inputdefnprandomsqrtarray形状shape
1条回答
网友
1楼 · 发布于 2024-10-03 11:25:14

这两个输入张量没有你认为的形状

根据代码示例,Wb的形状实际上是(512, 512)。但是,根据你问题的标题,我相信你实际上打算初始化Wb,如下所示:

Wb_intialization =  np.random.randn(15, 512).astype(np.float32) * np.sqrt(2.0/(512))

(也就是说,(15, 512)而不是(512, 512)

因此,Wb张量以形状(?, 15, 512)结束

V张量的形状是(?, 512, 196)(而不是(512, 196)

因此,由WbV相乘得到的张量的形状是(?, 15, ?, 196)

输出形状是(?, 15, ?, 196)的原因是因为两个输入张量((?, 15, 512)(?, 512, 196))的“公共”512维用作乘积轴。因此,结果中只缺少512维,其余三个周围维仍然存在

相关问题 更多 >