【问题标题】:Two training ops for slim.learning.train (TensorFlow, TF-Slim)slim.learning.train 的两个训练操作(TensorFlow、TF-Slim)
【发布时间】:2017-01-22 13:18:31
【问题描述】:

某些架构需要两个或更多训练操作(例如,在 GAN 中,您需要训练生成器和判别器)。如何使用 TF-Slim 训练功能实现这一目标?据我所知 slim.learning.train 只需要一次训练操作。

【问题讨论】:

    标签: tensorflow tf-slim


    【解决方案1】:

    您可以汇总 slim.learning.create_train_op 创建的训练操作。 train_op 只是一个张量,它会在评估时更新参数并返回损失。如果您添加两个训练操作,则两者都将被评估(并行)。

    【讨论】:

      【解决方案2】:

      你可以覆盖train_step_fn,这是运行slim.learning.train()时的主体函数。

      例如,假设你有train_op1train_op2,设置train_ops = [train_op1, train_op2],那么你可以尝试如下:

      def train_step_fn(session, train_ops, global_step, train_step_kwargs):
        session.run(train_ops[0], ...)
        session.run(train_ops[1], ...)
        ...
      
      slim.learning.train(train_step_fn=train_step_fn, ...)
      

      【讨论】:

        猜你喜欢
        • 2017-11-06
        • 1970-01-01
        • 2017-06-26
        • 2017-09-10
        • 2017-06-10
        • 2017-06-15
        • 1970-01-01
        • 1970-01-01
        • 2019-04-07
        相关资源
        最近更新 更多