【问题标题】:ValueError: Error when checking input: expected input_3 to have shape (34,) but got array with shape (36,)ValueError:检查输入时出错:预期 input_3 的形状为 (34,),但得到的数组的形状为 (36,)
【发布时间】:2020-04-01 05:27:03
【问题描述】:

我已经使用 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)) 我尝试了不同的重塑选项,还尝试删除重塑功能,但错误仍然存​​在。

【问题讨论】:

    标签: python python-3.x machine-learning image-processing lstm


    【解决方案1】:

    当我尝试训练网络时,这个错误发生在我身上,所以它可能与 LSTM 有关。在这种特定情况下,模型会抱怨,因为 第三层 的尺寸不匹配。您可以尝试检查训练图像的尺寸是否与您在此处使用的相同,或者检查图层的参数。

    【讨论】:

    • Toy're welcome =) 你能把答案标记为正确吗?谢谢!
    猜你喜欢
    • 2021-02-07
    • 2020-04-11
    • 2020-05-17
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2018-10-24
    相关资源
    最近更新 更多