qq_37639537 2019-03-10 20:00 采纳率: 0%
浏览 4068

请问 tensorflow 在训练网络过程中,如何在使用验证集进行验证时,不 让权值发生变化?

我按照书本上MNIST识别的过程把代码撸了一遍,按照他给的代码,每进行一千次迭代,使用验证集进行一次验证。但是我感觉这样的话那一次的验证应该也会改变网络的权。我查网上的资料验证集应该不参与训练才对,请问如何在训练过程中,验证时不改变网络的权值?。万分感谢!!!

with tf.Session() as sess:
    tf.global_variables_initializer().run()
    validate_feed = {x: mnist.validation.images, y_: mnist.validation.labels}
    test_feed = {x: mnist.test.images, y_: mnist.test.labels}
    for i in range(max_steps): #总迭代次数
        if i % 1000 == 0:      #每1000次迭代使用验证集进行验证
            validate_accuracy = sess.run(accuracy, feed_dict=validate_feed)
            print(validate_accuracy)
        xs, ys = mnist.train.next_batch(batch_size=100)
        sess.run(train_op, feed_dict={x: xs, y_: ys})

    test_accuracy = sess.run(accuracy, feed_dict=test_feed)
    print(test_accuracy)

代码如上,是不是每进行一次验证的时候,他的权值都会发生改变?怎么让它不发生变化呢

  • 写回答

3条回答 默认 最新

  • Macropodus 博客专家认证 2019-03-12 17:55
    关注

    我觉得可以设置一个is_training参数,走到self.logits那里就直接return,要再走train跟新了。具体可以参考文本分类github项目
    https://github.com/brightmart/text_classification

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题