【发布时间】:2020-02-08 16:32:13
【问题描述】:
您好,我正在使用 keras 开发神经网络模型。
代码
def base_model():
# Initialising the ANN
regressor = Sequential()
# Adding the input layer and the first hidden layer
regressor.add(Dense(units = 4, kernel_initializer = 'he_normal', activation = 'relu', input_dim = 7))
# Adding the second hidden layer
regressor.add(Dense(units = 2, kernel_initializer = 'he_normal', activation = 'relu'))
# Adding the output layer
regressor.add(Dense(units = 1, kernel_initializer = 'he_normal'))
# Compiling the ANN
regressor.compile(optimizer = 'adam', loss = 'mse', metrics = ['mae'])
return regressor
我一直在阅读有关使用哪个 kernel_initializer 的信息并看到了链接-https://towardsdatascience.com/hyper-parameters-in-action-part-ii-weight-initializers-35aee1a28404
它谈到了 glorot 和他的初始化。我尝试了不同的权重 intilizations,但它们都给出了相同的结果。我想了解正确初始化有多重要?
谢谢
【问题讨论】:
-
对于这么小的网络,它可能几乎无关紧要。对于大型的深度网络,它可以在强大的结果和完全无法学习之间产生差异。虽然,由于标准化方法(例如 batchnorm),初始化变得不那么重要了。
-
不是编程问题,因此这里可以说是题外话;更适合Cross Calidated
标签: machine-learning keras neural-network initialization