层 "model" 的输入 0 与层不兼容:预期形状=(None, 250, 3),在经过训练的变压器模型中找到形状=(None, 3)
Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 250, 3), found shape=(None, 3) in trained transformer model
我有一个用 tensorflow 2.7.0
和 python 3.7
训练的 keras transformer
模型,输入形状:(None, 250, 3)
和一个二维数组输入形状: (250, 3)
(不是图像)
进行预测时:
prediction = model.predict(state)
我得到ValueError: Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 250, 3), found shape=(None, 3)
项目代码:https://github.com/MikeSifanele/TT
这是 state
的样子:
state = np.array([[-0.07714844,-0.06640625,-0.140625],[-0.140625,-0.1650391,-0.2265625]...[0.6376953,0.6005859,0.6083984],[0.7714844,0.7441406,0.7578125]], np.float32)
一些解释:
对于模型的输入形状,即 (None, 250, 3)
,第一个轴(由 None
表示)是“样本”轴,而其余的即 250,3
表示输入维度.因此,当输入形状为 (250, 3)
时,它假定第一个轴为“样本”轴,其余为输入维度,即 3
。因此,为了使其保持一致,我们需要在开头添加一个维度,如下所述:
state = np.expand_dims(state, axis=0)
state
的形状就变成了(1, 250, 3)
~(None, 250, 3)
.
我有一个用 tensorflow 2.7.0
和 python 3.7
训练的 keras transformer
模型,输入形状:(None, 250, 3)
和一个二维数组输入形状: (250, 3)
(不是图像)
进行预测时:
prediction = model.predict(state)
我得到ValueError: Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 250, 3), found shape=(None, 3)
项目代码:https://github.com/MikeSifanele/TT
这是 state
的样子:
state = np.array([[-0.07714844,-0.06640625,-0.140625],[-0.140625,-0.1650391,-0.2265625]...[0.6376953,0.6005859,0.6083984],[0.7714844,0.7441406,0.7578125]], np.float32)
一些解释:
对于模型的输入形状,即 (None, 250, 3)
,第一个轴(由 None
表示)是“样本”轴,而其余的即 250,3
表示输入维度.因此,当输入形状为 (250, 3)
时,它假定第一个轴为“样本”轴,其余为输入维度,即 3
。因此,为了使其保持一致,我们需要在开头添加一个维度,如下所述:
state = np.expand_dims(state, axis=0)
state
的形状就变成了(1, 250, 3)
~(None, 250, 3)
.