多输入双向RNN错误值错误?
Posted
技术标签:
【中文标题】多输入双向RNN错误值错误?【英文标题】:Multi Input Bidirectional RNN Error Value Error? 【发布时间】:2020-07-12 09:19:47 【问题描述】:所以我已经建立了一个带有串联的多输入模型,但我得到了一个值错误。我将在下面引用所有这些。
def bidir_model(x_train, x_test, y_train, y_test, meta, vocabulary_size, output):
nlp_input = Input(shape=(388,), name='nlp_input')
meta_input = Input(shape=(2,), name='meta_input')
emb = Embedding(output_dim=vocabulary_size, input_dim=100, input_length=388)(nlp_input)
nlp_out = Bidirectional(LSTM(128, dropout=0.3, recurrent_dropout=0.3,
kernel_regularizer=regularizers.l2(0.01)))(emb)
x = concatenate([nlp_out, meta_input])
x = Dense(150, activation='relu')(x)
x = Dense(output, activation='softmax')(x)
model = Model(inputs=[nlp_input , meta_input], outputs=[x])
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
ckpnt = ModelCheckpoint('model_bidir.h5', save_best_only=True, save_weights_only=True)
model.fit([x_train, meta], y_train, validation_data=(x_test, y_test), batch_size=150, epochs=10, callbacks=[ckpnt])
我的 nlp 输入是一个用 tokenizer.text_to_sequences() 构建的序列,也用零填充。 并且 meta_input 是一个包含我所有数字特征的数组,我收到了这个错误......
ValueError:检查模型输入时出错:您传递给模型的 Numpy 数组列表不是模型预期的大小。预计会看到 2 个数组,但得到了以下 1 个数组的列表:[array([[ 0, 0, 0, ..., 139, 105, 478], [0, 0, 0, ..., 112, 3247, 21827], [ 0, 0, 0, ..., 91, 65372, 72], ..., [ 0, ...
它们肯定都是 numpy 数组。提前致谢 :)!
【问题讨论】:
哪一行给你这个错误?您可以发布给出错误的函数的输入数组的形状和类型吗?? x_train 形状 --> (1074827, 388) 元形状 --> (1074827, 2) Traceback(最近一次调用最后一次):文件“modeling_processes.py”,第 122 行,在您的validation_data
缺少meta_input
的值。
【讨论】:
您说的非常对,先生!我现在真的觉得自己很愚蠢,谢谢!以上是关于多输入双向RNN错误值错误?的主要内容,如果未能解决你的问题,请参考以下文章
LSTM预测基于matlab鲸鱼算法优化双向长短时记忆BiLSTM航空发动机寿命预测 (多输入单输出)含Matlab源码 2288期
Pytorch RNN 错误:RuntimeError:输入必须有 3 个维度得到 1