【问题标题】:InvalidArgumentError: indices[1656,1] = 83 is not in [0, 83), when I want to train the LSTMInvalidArgumentError: indices[1656,1] = 83 is not in [0, 83), 当我想训练 LSTM
【发布时间】:2019-11-16 12:45:39
【问题描述】:

这是 LSTM 的训练部分,我没有弄错。这里首先输入并嵌入单词和字符。

# input and embedding for words
word_in = Input(shape=(max_len,))
emb_word = Embedding(input_dim=n_words + 2, output_dim=20,
                 input_length=max_len, mask_zero=True)(word_in)

# input and embeddings for characters
char_in = Input(shape=(max_len, max_len_char,))
emb_char = TimeDistributed(Embedding(input_dim=n_chars + 1, 
output_dim=10,input_length=max_len_char, mask_zero=True))(char_in)
# character LSTM to get word encodings by characters
char_enc = TimeDistributed(LSTM(units=50, return_sequences=False,
                            recurrent_dropout=0.5))(emb_char)

# main LSTM
x = concatenate([emb_word, char_enc])
x = SpatialDropout1D(0.3)(x)
main_lstm = Bidirectional(LSTM(units=50, return_sequences=True,
                           recurrent_dropout=0.5))(x)
out = TimeDistributed(Dense(n_tags + 1, activation="softmax")) 
(main_lstm)

model = Model([word_in, char_in], out)

history = model.fit([X_word_tr,
                 np.array(X_char_tr).reshape((len(X_char_tr), max_len, 
max_len_char))],
                np.array(y_tr).reshape(len(y_tr), max_len, 1),
                batch_size=32, epochs=10, validation_split=0.2, 
verbose=1)

它给了我这个错误:我不知道如何更改或我应该更改哪些值以适应模型

-------------------------------------------------------------------
 InvalidArgumentError:  indices[1656,1] = 83 is not in [0, 83)
 [[node time_distributed_1/embedding_lookup (defined at 
 /Users/zia/anaconda3/lib/python3.7/site- 
 packages/tensorflow_core/python/framework/ops.py:1751) ]] 
 [Op:__inference_keras_scratch_graph_5857]

 Function call stack:
 keras_scratch_graph

【问题讨论】:

    标签: python machine-learning keras lstm


    【解决方案1】:

    尝试将 input_dim=n_chars + 1 更改为 input_dim=n_chars + 2 因为我已经看到添加 2 个字符的类似问题(通常,对于字符嵌入,在字符字典中添加了“PAD”和“UNK”标签)。因此添加 2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      相关资源
      最近更新 更多