有些架构需要两个或更多训练操作(例如,在GAN中,您需要训练生成器和鉴别器)。您如何使用TF-Slim训练功能来实现这一点?据我所知,slim.learning.train只接受了一次训练操作。
发布于 2016-11-01 05:04:03
您可以对slim.learning.create_train_op创建的训练操作求和。train_op只是一个张量,它将在评估时更新参数并返回损失。如果您添加了两个训练操作,则这两个操作都将被评估(并行)。
发布于 2017-11-15 17:45:12
您可以覆盖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, ...)https://stackoverflow.com/questions/39495432
复制相似问题