我已经用Keras训练了一个TPU进行图像字幕。跑步时出现错误:
导入matplotlib.pyplot作为plt
def generateCaption(photo):
in_text = START
for i in range(max_length):
sequence = [wordtoidx[w] for w in in_text.split() if w in wordtoidx]
sequence = pad_sequences([sequence], maxlen=max_length)
yhat = caption_model.predict([photo,sequence], verbose=0)
yhat = np.argmax(yhat)
word = idxtoword[yhat]
in_text += ' ' + word
if word == STOP:
break
final = in_text.split()
final = final[1:-1]
final = ' '.join(final)
return final
for z in range(10):
pic = list(encoding_test.keys())[z]
image = encoding_test[pic].reshape((1,OUTPUT_DIM))
print(os.path.join(root_captioning,'/content/drive/My Drive/ImageCaptioning/Flicker8k Dataset', pic))
x = plt.imread(os.path.join(root_captioning,'/content/drive/My Drive/ImageCaptioning/Flicker8k Dataset', pic))
plt.imshow(x)
plt.show()
print("Caption:",generateCaption(image))
print("_____________________________________")
行中错误:
print("Caption:",generateCaption(image))
我尝试了不同的重塑选项,还尝试删除了重塑功能,但错误仍然存在。
最佳答案
当我尝试训练网络时,此错误发生在我身上,因此可能与LSTM有关。在此特定情况下,模型抱怨,因为第三层的尺寸不匹配。您可以尝试检查训练图像的尺寸是否与此处使用的尺寸相同,或者检查图层的参数。
关于python - ValueError:检查输入时出错:预期input_3的形状为(34,),但数组的形状为(36,),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59226356/