多输入双向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 行,在 bidir_model(x_train, x_test, y_train, y_test, meta=x_num, words_size=vocabulary_size, output=labels.shape[1]) 文件“C:\Users\Nickos\Desktop\project_categorization\bidir_model.py”,第 29 行,在 bidir_model model.fit([x_train,meta], y_train, validation_data=(x_test, y_test), batch_size=150, epochs=10, callbacks=[ckpnt]) 【参考方案1】:

您的validation_data 缺少meta_input 的值。

【讨论】:

您说的非常对,先生!我现在真的觉得自己很愚蠢,谢谢!

以上是关于多输入双向RNN错误值错误?的主要内容,如果未能解决你的问题,请参考以下文章

双向多层RNN

LSTM预测基于matlab鲸鱼算法优化双向长短时记忆BiLSTM航空发动机寿命预测 (多输入单输出)含Matlab源码 2288期

Pytorch RNN 错误:RuntimeError:输入必须有 3 个维度得到 1

学习笔记TF020:序列标注手写小写字母OCR数据集双向RNN

如何使用双向RNN和pytorch填空?

使用 Pytorch 前向传播 RNN