现在在做一个二值卷积神经元网路的问题,利用正则项来使最优解的绝对值趋近于一个值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() 吗,还是有其他的方法?