请问一下,在调用Bert optimization中自定义的优化器时出现OOM,更换成tf.train.AdamOptimizer就OK了,是什么原因?
代码如下:
with tf.variable_scope("optimizer"):
num_warmup_steps = int(num_train_steps * config['warmup_proportion'])
# 导入bert自定义optimization
self.train_op = optimization.create_optimizer(self.loss, self.lr, self.num_train_steps,
num_warmup_steps, False)
出现OOM,更换成以下优化器就OK了
with tf.variable_scope("optimizer"):
self.opt = tf.train.AdamOptimizer(learning_rate)
# 梯度截断
grads = tf.gradients(self.loss, train_vars)
(grads, _) = tf.clip_by_global_norm(grads, clip_norm=1.0)
self.train_op = self.opt.apply_gradients(
zip(grads, train_vars), global_step=self.global_step
)