Tensorflow编码器 - 解码器动态lstm,具有可变长度输入和输出

时间:2017-12-12 16:30:27

标签: python numpy machine-learning tensorflow lstm

我正在实现一个编码器 - 解码器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我收到其他错误,因为logitslabels的尺寸不匹配:

InvalidArgumentError (see above for traceback): logits and labels must be same size: logits_size=[16,7810] labels_size=[550,7810]

问题:如何处理此错误?理想情况下,我想坚持修剪decoder_targets

编辑:填充是处理此类案件的唯一方法吗?

0 个答案:

没有答案