Python LSTM-Keras神经网络表示

Python LSTM-Keras神经网络表示,python,machine-learning,keras,deep-learning,lstm,Python,Machine Learning,Keras,Deep Learning,Lstm,我遇到了下面的代码,它用Keras生成了一个顺序LSTM神经网络,我想知道它是如何在绘图的therms中表示的 model = Sequential() model.add(LSTM(60, input_shape=(1, 6), activation='softmax')) model.add(Dense(2)) 如果有人能给我解释一下,那就太好了 编辑: 我在这张图片中寻找类似的东西: 更具体地说:LSTM层的输入/输出将是什么样子,以及它们将如何链接到致密层

我遇到了下面的代码,它用Keras生成了一个顺序LSTM神经网络,我想知道它是如何在绘图的therms中表示的

model = Sequential()
model.add(LSTM(60, input_shape=(1, 6),
               activation='softmax'))
model.add(Dense(2))
如果有人能给我解释一下,那就太好了

编辑: 我在这张图片中寻找类似的东西:

更具体地说:LSTM层的输入/输出将是什么样子,以及它们将如何链接到致密层

@编辑2:我制作了以下图像:
如果我把每一个输入与60个神经元中的每一个都加上额外的突触连接,神经网络会像我在图中画的那样吗?

这里有一些在Google Colab中运行的代码,可以给你一些关于输入和输出的信息:

from keras import Sequential
from keras.layers import LSTM, Dense

model = Sequential()
model.add(LSTM(60, input_shape=(1, 6),
               activation='softmax'))
model.add(Dense(2))

# write out model architecture
model.summary()

# Graphical plot
from IPython.display import SVG
from keras.utils import model_to_dot

iv1_dot = model_to_dot(model, show_shapes=True, show_layer_names=True, dpi=60)
SVG(iv1_dot.create(prog=['dot'], format='svg'))
就具体设计而言,LSTM层有60个节点,这些节点与最后2个节点紧密连接。这意味着60个LSTM中的每一个都直接连接(具有适当的权重)到两个最终密集节点。在输入端,您通过输入_shape=(1,6)为LSTM层定义了一个带有6个特征的时间步长。因此,LSTM层的完整输入如下所示:

(num_示例、num_时间步、num_功能)

在这种情况下,num_timesteps=1,num_features=6。我相信,每个特性都会连接到每个LSTM节点。通常在keras中,num_样本不直接在网络中指定,而是在架构图和摘要中显示为“无”


我希望这会有所帮助。

以下是一些在Google Colab中运行的代码,可以为您提供一些关于输入和输出的信息:

from keras import Sequential
from keras.layers import LSTM, Dense

model = Sequential()
model.add(LSTM(60, input_shape=(1, 6),
               activation='softmax'))
model.add(Dense(2))

# write out model architecture
model.summary()

# Graphical plot
from IPython.display import SVG
from keras.utils import model_to_dot

iv1_dot = model_to_dot(model, show_shapes=True, show_layer_names=True, dpi=60)
SVG(iv1_dot.create(prog=['dot'], format='svg'))
就具体设计而言,LSTM层有60个节点,这些节点与最后2个节点紧密连接。这意味着60个LSTM中的每一个都直接连接(具有适当的权重)到两个最终密集节点。在输入端,您通过输入_shape=(1,6)为LSTM层定义了一个带有6个特征的时间步长。因此,LSTM层的完整输入如下所示:

(num_示例、num_时间步、num_功能)

在这种情况下,num_timesteps=1,num_features=6。我相信,每个特性都会连接到每个LSTM节点。通常在keras中,num_样本不直接在网络中指定,而是在架构图和摘要中显示为“无”


我希望这会有帮助。

这个神经网络会和这个完全一样吗?(考虑到在这张图中,x_i输入连接在60个神经元中的一个,并且由于num_timesteps=1,每个神经元展开一次,对吗?)请阅读我的“编辑2”,基于我对LSTM实现的理解,在您的图中,您应该有60个输出节点(您称之为“h”)和每个输入功能(x0到x5)应紧密连接到每个LSTM节点。换句话说,x0应该连接到所有的LSTM节点,x1等等。我认为这就是执行工作正在做的事情。您可以通过检查Keras github上的代码(LSTM在文件:recurrent.py中)进一步确认这一点。我希望这会有帮助。这个神经网络会和这个一模一样吗?(考虑到在这张图中,x_i输入连接在60个神经元中的一个,并且由于num_timesteps=1,每个神经元展开一次,对吗?)请阅读我的“编辑2”,基于我对LSTM实现的理解,在您的图中,您应该有60个输出节点(您称之为“h”)和每个输入功能(x0到x5)应紧密连接到每个LSTM节点。换句话说,x0应该连接到所有的LSTM节点,x1等等。我认为这就是执行工作正在做的事情。您可以通过检查Keras github上的代码(LSTM在文件:recurrent.py中)进一步确认这一点。我希望这有帮助。