我使用for constexpr
函数在R中执行DNN。
我想初始化深度神经网络的迭代和性能改进的权重。
我知道称重初始化应该是-1到+1之间的一个小值而不是一个大值。
那么,h2o.deeplearning
中的参数代码是什么来初始化权重?以及如何使用它来初始化-1和+1 ??
答案 0 :(得分:1)
如果我们查看?h2o.deeplearning
initial_weights用于初始化权重的H2OFrame ID列表 这个模型的矩阵用。
以下是设置权重的示例
library(h2o)
h2o.init()
iris.hex <- as.h2o(iris)
iris.dl <- h2o.deeplearning(x = 1:4, y = 5, training_frame = iris.hex,
hidden=c(10,10),export_weights_and_biases = TRUE
)
w1 <- h2o.weights(iris.dl,1)
w2 <- h2o.weights(iris.dl,2)
w3 <- h2o.weights(iris.dl,3)
b1 <- h2o.biases(iris.dl,1)
b2 <- h2o.biases(iris.dl,2)
b3 <- h2o.biases(iris.dl,3)
dl <- h2o.deeplearning(1:4,5,iris.hex,hidden=c(10,10),initial_weights=c(w1,w2,w3),
initial_biases=c(b1,b2,b3))
p1 <- h2o.predict(dl, iris.hex)
p1
# predict setosa versicolor virginica
#1 setosa 0.9967546 0.0032424531 2.946375e-06
#2 setosa 0.9943469 0.0056346023 1.845851e-05
#3 setosa 0.9990881 0.0009072309 4.663780e-06
#4 setosa 0.9990550 0.0009393998 5.593951e-06
#5 setosa 0.9985592 0.0014391955 1.568052e-06
#6 setosa 0.9966511 0.0033477623 1.121636e-06
#[150 rows x 4 columns]
关于规范化,将由h2o
完成。另请检查here