在 Tensorflow 中更改每次训练的批量大小
Change batch size in each training in Tensorflow
我正在尝试在 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})
有什么方法可以改变每个训练步骤中的输入大小吗?
如果有不好用?
当我post这道题的时候,我刚开始RNN
。其实答案很简单,如果有人遇到和我一样的问题,我就回答一下。
解决方案是使用动态 RNN。它允许您提供不同序列的输入,这对大多数 RNN
模型非常重要。
Tensorflow 有一个动态 RNN 的实现,它非常有用。有关详细信息,请查看 here.
我正在尝试在 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})
有什么方法可以改变每个训练步骤中的输入大小吗? 如果有不好用?
当我post这道题的时候,我刚开始RNN
。其实答案很简单,如果有人遇到和我一样的问题,我就回答一下。
解决方案是使用动态 RNN。它允许您提供不同序列的输入,这对大多数 RNN
模型非常重要。
Tensorflow 有一个动态 RNN 的实现,它非常有用。有关详细信息,请查看 here.