slim.learning.train的两个训练操作(TensorFlow,TF-Slim)

时间:2016-09-14 16:27:52

标签: tensorflow tf-slim

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以覆盖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, ...)