【发布时间】:2020-09-29 20:00:36
【问题描述】:
假设我想在 Keras 中编写这个基本的神经网络结构,它在输入层有 10 个单元,在输出层有 3 个单元。
现在如果我使用 Keras,并且输入形状大于 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 层网络。第一层的权重矩阵为 64x10,第二层为 10x3。在图片上,您有 1 层网络,有 10 个输入(不是 64 个)和 3 个输出。这对应于您的第二层。
-
@Slowpoke 这是不正确的;显示的代码对应于 3 层 网络,因为这里有一个隐式输入层 - 请参阅 Keras Sequential model input layer
-
@desertnaut 我认为的问题是关于不理解什么是全连接层本身,它是如何用矩阵表示的以及输入和输出的数量是什么意思。将输入转换为张量的输入“层”是 keras 技术的东西。当然,我们可以在图表上将其绘制为具有 1 对 1 连接的两列点,但没有理由这样做
-
@Slowpoke 我的反对意见专门针对您的陈述“您实现了 2 层网络”,正如我已经说过的那样,这是不正确的。 OP 已经实现了一个 3 层网络。关于我认为的问题等,我什么也没说
-
@desertnaut 您提供的链接有助于我理解。
标签: python tensorflow keras neural-network