我正在尝试在tensorflow中实现一个简单的LSTM模型。我将句子行作为char数组作为输入。
示例输入:
['Y', 'â', 'r', 'â', 'b', ' ', 'n', 'e', ' ', 'i', 'n', 't', 'i', 'z', 'â', 'r', 'd', 'ı', 'r', ' ', 'b', 'u']
每个训练步骤我都试图将此输入提供给lstm。问题是句子的长度不是恒定的。有些句子的长度可以是20,有些则是22,或者其他什么。
培训的一小部分:
x_input = [dictionary[i] for i in line]
x_input = np.reshape(np.array(x_input), [-1, n_input, 1])
onehot_out = np.zeros([output_size], dtype=float)
onehot_out[vezin] = 1.0
onehot_out = np.reshape(onehot_out, [1, -1])
_, acc, loss, onehot_pred = session.run([optimizer, accuracy, cost, pred],\
feed_dict={x: x_input, y: onehot_out})
有没有办法在每个tarining步骤中更改输入大小? 如果不好用?
答案 0 :(得分:0)
当我发布这个问题时,我刚开始RNN
。实际上答案非常简单,如果有人遇到与我相同的问题,我会回答。
解决方案是使用动态RNN 。它允许您为不同的序列提供输入,并且它对大多数RNN
模型非常重要。
Tensorflow 具有动态RNN的实现,非常有用。有关详细信息,请查看here。