Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将一个简单的系列转换为Keras LSTM?_Python_Numpy_Machine Learning_Keras_Lstm - Fatal编程技术网

Python 如何将一个简单的系列转换为Keras LSTM?

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 = [

我很难理解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 = []

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)
现在你可以有多个句子了

  • 狗坐在猫身上
  • 猫吃了狗食
  • 狗吃了猫食
现在你一共有4个句子,这是你的一批。这4个句子中的每一个都有一个张量
(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)