请问一下,在调用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 )