假设我有一个大小为(1000,64)的数据集,其中64是列数(即要素)。在Keras中,假设我要构建以下模型的NN模型:
现在,要在Keras中构建上述架构,我通常会执行以下操作:
model = Sequential()
model.add(Dense(units=64, input_dim=64, activation='tanh')) # Input layer
model.add(Dense(units=100, activation='tanh')) # Hidden layer
model.add(Dense(units=1, activation='sigmoid')) # Output layer
问题是我无法区分units
层的参数input_dim
和Dense()
(对于作为第一层的角色(输入层))。我确实知道input_dim
旨在指定数据集中的要素数量(在我的情况下为64),但是我不了解units
在此处的作用输入层。 units
应该是64吗?换句话说,输入层的参数units
是否应该与input_dim
相同?
非常感谢您。
答案 0 :(得分:1)
让我们先看一下绘画作品
就keras顺序模型符号而言,您将需要两个密集层(在图中标记为虚线框)
Dense(units=100, input_dim=64)
input_dim
对于密集层不是必需的,因为它已连接到顺序模型中的先前密集层,并且无论先前密集层的输出是什么,它都作为输入(对于每个神经元)
Dense(units=1)
因此模型将是:
model = Sequential()
model.add(Dense(units=100, input_dim=64, activation='tanh')) # First Hidden layer
model.add(Dense(units=1, activation='sigmoid')) # Output layer
您可以将Dense(units=m, input_dim=n)
视为具有m
个神经元的层,每个神经元都具有n
个输入。该层将输出m
输出(每个神经元一个)。