Python 如何将一个简单的系列转换为Keras LSTM?
我很难理解keras中的LSTM输入。我如何在输入矩阵中转换一个非常简单的序列1,2,3,4,5,6,7,8,9,10,因为它可以预测下一个数字 我找到了那个图表 我读了一些教程,他们说矩阵的形状就像Python 如何将一个简单的系列转换为Keras LSTM?,python,numpy,machine-learning,keras,lstm,Python,Numpy,Machine Learning,Keras,Lstm,我很难理解keras中的LSTM输入。我如何在输入矩阵中转换一个非常简单的序列1,2,3,4,5,6,7,8,9,10,因为它可以预测下一个数字 我找到了那个图表 我读了一些教程,他们说矩阵的形状就像 [[0 1 2 3 4] [1 2 3 4 5] [2 3 4 5 6] [3 4 5 6 7] [4 5 6 7 8]] 我已经成功了 list1 = [] for i in range(0, 10): list1.append(i) list2 = [] list3 = [
[[0 1 2 3 4]
[1 2 3 4 5]
[2 3 4 5 6]
[3 4 5 6 7]
[4 5 6 7 8]]
我已经成功了
list1 = []
for i in range(0, 10):
list1.append(i)
list2 = []
list3 = []
for i in range(0, len(list1) - 5):
list2.append(list1[i:i + 5])
list2 = np.array(list2)
但是行和列在该图中代表什么呢?Keras LSTM层具有以下调用参数: 调用参数:
inputs: A 3D tensor with shape [batch, timesteps, feature].
您给出的矩阵是2D形状的(5,5)
,即5行5列
由于您使用的是LSTM,让我举一个文本数据示例:
猫坐在狗身上
上面的句子有5个单词,每个单词可以矢量化为5个维度(单词嵌入)。
这会使你的句子变成一个2D形状的张量(5,5)
现在你可以有多个句子了
- 狗坐在猫身上
- 猫吃了狗食
- 狗吃了猫食
(5,5)
,因为它们都有5个单词,并且你用5个维度对每个单词进行编码
因此,您的整个数据集具有以下形状:
[batch, timesteps, feature] == [4, 5, 5]
现在可以将此3D张量输入LSTM层
如果您只想输入该2D矩阵,则必须使用展开尺寸以成为(1,5,5)
3D形状
list2 = np.expand_dim(list2, axis=0)
print(list2)
print(list2.shape)
也指
[[[0 1 2 3 4]
[1 2 3 4 5]
[2 3 4 5 6]
[3 4 5 6 7]
[4 5 6 7 8]]]
(1, 5, 5)