下面的代码可以正常工作。如果我试着把所有的64改成128,我就会得到一个关于形状的错误。如果我在使用Keras时改变人工神经网络的层数,是否需要改变输入数据的形状?我不这么认为,因为它要求输入正确的值。在
作品:
model = Sequential()
model.add(Dense(64, input_dim=14, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(Activation('softmax'))
sgd3 = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd3)
model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2)
不起作用:
^{pr2}$
你可以在同一个输入上使用不同数量的隐藏层和不同数量的单元/神经元。在
除最后一个外,每个
Dense
都可以看作是一个隐藏层。最后一个Dense
的输出数量应该与期望的输出维度相等(在您的例子中,y
的维度似乎是64)。在试试这个:
您根本不需要更改代码段之间的层数。 你改变的是单位的数量。在
稠密(64)是一个有64个隐藏单元的完全连接层。由于它是完全连接的,所以输入单元的数量也会更改为该数字,因此也会更改对输入的要求。在
相关问题 更多 >
编程相关推荐