一些架构需要两个或更多的训练操作(例如,在 GAN 中,您需要训练生成器和判别器)。如何使用 TF-Slim 训练功能实现这一目标?据我所见, slim.learning.train 只需要一个训练操作。
问问题
1485 次
2 回答
0
你可以overide train_step_fn
,这是运行时的主体功能slim.learning.train()
。
例如,假设您有train_op1
and 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 回答