hoshizorara
hoshizorara
采纳率0%
2020-08-20 02:26 阅读 52

神经元网络正则化系数变化时要怎么对变量初始化?

现在在做一个二值卷积神经元网路的问题,利用正则项来使最优解的绝对值趋近于一个值alpha。然后在训练完成之后我想比较正则系数λ递增后,训练值会发生什么变化。

这是我的代码:

Lambda = 0
print('------------------------Lambda = %g--------------------------'%(Lambda))
for i in range(9000):
    # échantillon de 50
    batch = mnist.train.next_batch(50)
    if i %100 == 0:
        train_accuracy = accuracy.eval(feed_dict={
           x: batch[0], y_: batch[1]})
        print ('step %d, training accuracy %g' % (i, train_accuracy))

    if i % 500 == 0 and i !=0:

        Lambda += 0.05
        print('------------------------Lambda = %g--------------------------'%(Lambda))
        loss = cost_coss_entropy + Lambda*L1(w_conv1,w_conv2,w_fc1,w_fc2,alpha1,alpha2,alpha3,alpha4)
        opti = tf.train.AdamOptimizer(0.001).minimize(loss)
        correct_prediction = tf.equal(tf.argmax(y_conv, 1), tf.argmax(y_, 1))
        accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
        sess.run(tf.global_variables_initializer())
    opti.run(feed_dict={x: batch[0], y_: batch[1]})

我想每次用这个λ做500次训练之后的变量作为下一个λ时候训练的初始值,也就是不用tf.global_variables_initializer()来做。请问是要用到tf.constant_initializer() 吗,还是有其他的方法?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

相关推荐