【问题标题】:ValueError: Error when checking input: expected input_9 to have 3 dimensions, but got array with shape (80, 2048)ValueError:检查输入时出错:预期 input_9 有 3 个维度,但得到的数组形状为 (80, 2048)
【发布时间】:2019-10-01 09:48:09
【问题描述】:

我目前正在尝试在 Keras 中构建一个有效的 lstm 模型,该模型从位于 RNN 之前的 CNN 接收嵌入。 CNN 显示了预期的行为,但我不能 100% 确定我是否可以将嵌入从 CNN 传递到 RNN。

def model_builder(input_shape):
    base_input = Input(shape = input_shape)
    x = LSTM(units=1, name='LSTM1', return_sequences=True)(base_input)
    x = Flatten()(x)
    x = Dense(units = 2)(x)
    x = Activation('softmax')(x)
    classification_model = Model(base_input, x,name='classifier')
    classification_model.compile(loss='sparse_categorical_crossentropy',optimizer='adam',metrics=['accuracy'])

    return classification_model

embedding_model = build_model((256, 256, 3))
classification_model = model_builder((2048,1,))

try:
    image_embedding = embedding_model.predict(X)

    outcome = classification_model.fit(x=image_embedding, y=Y, batch_size=10, epochs=20, verbose=1, 
              callbacks=None, validation_split=0.5, validation_data=None, shuffle=False, 
              class_weight=None,sample_weight=None, initial_epoch=0, steps_per_epoch=None, 
              validation_steps=None, validation_freq=1)
except KeyboardInterrupt:
    pass

不过,当我像这样运行训练时,我收到以下错误消息:

【问题讨论】:

    标签: python tensorflow keras lstm keras-layer


    【解决方案1】:

    像这样调整代码为我解决了这个问题。问题是我需要在通过 lstm 的嵌入中添加时间维度。所以基本上从(batch_size,input_dimension)到(batch_size,input_dimension,timesteps)。这些维度的顺序可能不正确。我仍然需要检查,但这个解决方案至少应该让模型工作。

    image_embedding = embedding_model.predict(X)
    new_image_embedding = image_embedding[:,:,np.newaxis]
    
    outcome = classification_model.fit(x=new_image_embedding, y=Y, batch_size=batch_size, 
              epochs=epochs, verbose=1, callbacks=None, validation_split=0.5,  
              validation_data=None, shuffle=False, class_weight=None, sample_weight=None, 
              initial_epoch=0, steps_per_epoch=None, validation_steps=None, 
              validation_freq=1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 2018-12-26
      • 2021-12-19
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多