我正在实现一个编码器 - 解码器LSTM网络,它应该重建输入序列。
目前,我收到错误:ValueError: setting an array element with a sequence.
我认为这是因为我将可变长度输入作为feed_dict
的一部分提供。
这是负责构建供稿字典的功能:
def next_feed(batch_index):
encoder_inputs_ = train_X[batch_index:batch_index + train_batch_size] # encoder input = [w1, w2, ...]
encoder_inputs_length_ = seq_lengths[batch_index: batch_index + train_batch_size]
decoder_targets_ = []
for i in range(encoder_inputs_.shape[0]):
l = seq_lengths[batch_index: batch_index + train_batch_size][i]
trimmed = np.array(encoder_inputs_[i, 0:l+1])
decoder_targets_.append(trimmed)
decoder_targets_ = np.array(decoder_targets_)
return {
encoder_inputs: encoder_inputs_,
decoder_targets: decoder_targets_,
encoder_inputs_length: encoder_inputs_length_
}
如果我不修剪decoder_targets
我收到其他错误,因为logits
和labels
的尺寸不匹配:
InvalidArgumentError (see above for traceback): logits and labels must be same size: logits_size=[16,7810] labels_size=[550,7810]
问题:如何处理此错误?理想情况下,我想坚持修剪decoder_targets
。
编辑:填充是处理此类案件的唯一方法吗?