【发布时间】:2017-01-22 13:18:31
【问题描述】:
某些架构需要两个或更多训练操作(例如,在 GAN 中,您需要训练生成器和判别器)。如何使用 TF-Slim 训练功能实现这一目标?据我所知 slim.learning.train 只需要一次训练操作。
【问题讨论】:
标签: tensorflow tf-slim
某些架构需要两个或更多训练操作(例如,在 GAN 中,您需要训练生成器和判别器)。如何使用 TF-Slim 训练功能实现这一目标?据我所知 slim.learning.train 只需要一次训练操作。
【问题讨论】:
标签: tensorflow tf-slim
您可以汇总 slim.learning.create_train_op 创建的训练操作。 train_op 只是一个张量,它会在评估时更新参数并返回损失。如果您添加两个训练操作,则两者都将被评估(并行)。
【讨论】:
你可以覆盖train_step_fn,这是运行slim.learning.train()时的主体函数。
例如,假设你有train_op1和train_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, ...)
【讨论】: