我已经在 scikit-learn (v 0.20.0) 和 Keras (v 2.2.4) 和 TensorFlow 后端 (v 1.12.0) 中构建了一个完全连接的神经网络。单个隐藏层有 10 个单元。在这两种情况下,我都通过调用 scikit-learn 的 train_test_split 函数并将其random_state设置为 0来选择训练和测试数据。然后它们都使用 scikit-learn 的StandardScaler. 事实上,到目前为止,每种情况的代码都是完全相同的。
在 scikit-learn 中,我使用 MLPRegressor 定义了神经网络。该函数调用的输出是
MLPRegressor(activation='logistic', alpha=1.0, batch_size='auto', beta_1=0.9,
beta_2=0.999, early_stopping=False, epsilon=1e-08,
hidden_layer_sizes=(10,), learning_rate='constant',
learning_rate_init=0.001, max_iter=200, momentum=0.9,
n_iter_no_change=10, nesterovs_momentum=True, power_t=0.5,
random_state=None, shuffle=True, solver='sgd', tol=0.0001,
validation_fraction=0.2, verbose=False, warm_start=False)
Run Code Online (Sandbox Code Playgroud)
大多数这些参数没有使用,但一些相关参数是有 200 次迭代,没有提前停止,一个恒定的学习率,求解器是 SGD nesterovs_momentum=True、 和momentum=0.9。
Keras 中的定义是(称之为 Keras 1)
mlp = Sequential() # create a sequential neural network using …Run Code Online (Sandbox Code Playgroud)