就总数据而言,Numpy.Reshape() 在输入向量处理中做了什么
What does Numpy.Reshape() do in Input Vector Processing In Terms of Total Data
我正在积极学习如何将文本信息编码为数字格式,然后通过 RNN 或 LSTM 进行学习。
https://machinelearningmastery.com/text-generation-lstm-recurrent-neural-networks-python-keras/
这家伙把LSTM的精髓删减得很好,我认为是一个很好的教程,
他正试图让 LSTM 模型学习 "Alice in Wonderland"
的整个文本
示例代码中,这里是我没看明白的地方:
# reshape X to be [samples, time steps, features]
X = numpy.reshape(dataX, (n_patterns, seq_length, 1))
# normalize
X = X / float(n_vocab)
# one hot encode the output variable
y = np_utils.to_categorical(dataY)
这里,特别是函数numpy.reshape()
将dataX转换成我们想要的格式。
但我无法理解 n_patterns
只是整数 144223,它只是 dataX 的 len()
。
我的意思是,我知道正如他在教程 post 中所说,它将整个 dataX 列表元素重新缩放为 0-1 比例,但我好奇的是 dataX 进行了哪些数学运算.
就是这样。
感谢您的帮助,我会更加努力学习!
我们需要知道 dataX.shape
才能清楚地了解正在发生的事情。
X = numpy.reshape(dataX, (n_patterns, seq_length, 1))
len(dataX)
就是 dataX.shape[0]
,数组的第一个维度。
reshape
的一个关键点是元素的总数不能改变。据此我推断 dataX.shape
已经是 (n_patterns, seq_length)
,并且 reshape
只是添加尾随大小 1 维。
这样做是为了 LSTM 代码的方便,如注释所示,[samples, time steps, features]
。
reshape
对值没有任何影响。它只是改变了数组的形状(从技术上讲,它会生成一个具有新形状的新数组,但共享原始数据)。
我正在积极学习如何将文本信息编码为数字格式,然后通过 RNN 或 LSTM 进行学习。
https://machinelearningmastery.com/text-generation-lstm-recurrent-neural-networks-python-keras/
这家伙把LSTM的精髓删减得很好,我认为是一个很好的教程,
他正试图让 LSTM 模型学习 "Alice in Wonderland"
的整个文本示例代码中,这里是我没看明白的地方:
# reshape X to be [samples, time steps, features]
X = numpy.reshape(dataX, (n_patterns, seq_length, 1))
# normalize
X = X / float(n_vocab)
# one hot encode the output variable
y = np_utils.to_categorical(dataY)
这里,特别是函数numpy.reshape()
将dataX转换成我们想要的格式。
但我无法理解 n_patterns
只是整数 144223,它只是 dataX 的 len()
。
我的意思是,我知道正如他在教程 post 中所说,它将整个 dataX 列表元素重新缩放为 0-1 比例,但我好奇的是 dataX 进行了哪些数学运算.
就是这样。
感谢您的帮助,我会更加努力学习!
我们需要知道 dataX.shape
才能清楚地了解正在发生的事情。
X = numpy.reshape(dataX, (n_patterns, seq_length, 1))
len(dataX)
就是 dataX.shape[0]
,数组的第一个维度。
reshape
的一个关键点是元素的总数不能改变。据此我推断 dataX.shape
已经是 (n_patterns, seq_length)
,并且 reshape
只是添加尾随大小 1 维。
这样做是为了 LSTM 代码的方便,如注释所示,[samples, time steps, features]
。
reshape
对值没有任何影响。它只是改变了数组的形状(从技术上讲,它会生成一个具有新形状的新数组,但共享原始数据)。