某些架构需要两个或更多训练操作(例如,在GAN中,您需要训练生成器和鉴别器)。如何通过TF-Slim培训功能实现这一目标?据我所知,slim.learning.train只需要一次训练。
答案 0 :(得分:0)
您可以将slim.learning.create_train_op创建的训练操作加起来。 train_op只是一个张量,它将在评估时更新参数并返回损失。如果添加两个训练操作,将同时评估它们(并行)。
答案 1 :(得分:0)
您可以覆盖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, ...)