我对 Keras 如何拟合模型有点困惑。一般来说,Keras 模型的拟合只需使用model.fit(...)如下所示的内容:
model.fit(X_train, y_train, epochs=300, batch_size=64, validation_data=(X_test, y_test))
Run Code Online (Sandbox Code Playgroud)
我的问题是:因为我用参数 陈述了测试数据validation_data=(X_test, y_test),是否意味着每个时期都是独立的?换句话说,我知道在每个时期,Keras 使用训练数据(经过洗牌后)训练模型,然后使用提供的验证数据测试训练后的模型。如果是这样的话,那么无论我选择多少个纪元,我都只取最后一个纪元的结果!!
如果这种情况是正确的,那么我们是否需要多个纪元?除非这些时期是相互依赖的,每个时期使用与前一个时期相同的神经网络权重,对吗?
谢谢
假设我有一个大小为 (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
Run Code Online (Sandbox Code Playgroud)
的问题是,我不能参数区分units并input_dim用于Dense()层(对于角色作为第一层(输入层))。我确实理解这input_dim是为了指定数据集中的特征数量(在我的情况下为 64),但我不明白units这里对输入层的作用。应该units是64?换句话说,输入层的参数是否units应该相同input_dim?
非常感谢。