基本神经网络结构的理解

时间:2020-06-10 11:56:13

标签: python tensorflow keras neural-network

假设我要在Keras中编码这种基本的神经网络结构,其中输入层有10个单元,输出层有3个单元。

this

现在,如果我使用的是Keras,并且将input_shape设置为大于10的值,它将在其中进行调整。

from tensorflow.keras.models import Sequential 
from tensorflow.keras.layers import Dense
model = Sequential()
model.add(Dense(10, activation = 'relu', input_shape = (64,)))
model.add(Dense(3, activation = 'sigmoid'))

model.summary()

您会看到这里的input_shape大小为64,但是它将如何在第一层包含10个单位的模型中进行调整,因为据我了解,输入形状/矢量的大小应等于输入层中的单位数

或者我没有实现这个神经网络吗?

2 个答案:

答案 0 :(得分:0)

那不是问题。形状为(10,64)的权重矩阵将用于输入层。您输入的形状为64,第一个隐藏层的单位为10,给出的输出为3。对我来说似乎很好。

但是您的输入层本身是64。因此,您得到的是一个三层网络,其中包含10个单位的隐藏层。

答案 1 :(得分:-1)

如果输入向量的形状为64,那么您确实需要一个尺寸为64的输入层。神经网络的输入层不执行任何计算。它将输入直接传递到第一个隐藏层。另一方面,此函数对其中包含的所有神经元执行计算(输入向量和权重的线性组合,之后用作激活函数的输入,在您的情况下为ReLU)。

在您的代码中,您将用64个输入神经元(同样不执行任何计算),第一个(也是唯一的)隐藏层10个神经元和输出层3个神经元构建神经网络。