2

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

4

2 回答 2

0

你可以overide train_step_fn,这是运行时的主体功能slim.learning.train()

例如,假设您有train_op1and train_op2, set 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-15T09:45:11.647 回答
0

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

于 2016-10-31T21:04:02.820 回答