Closed guotong1988 closed 3 years ago
没太看明白你说的问题。“不起作用”具体指的是出现什么情况?
感谢回复,
就是等于没训练,Loss和Accuracy完全不动,
可能是我的AdamWeightDecayOptimizer抄错了,您要是知道有能用的AdamWeightDecayOptimizer给下就行~~
谢谢!我试试,您发的这个没有必须TPU的限制吧?
不会的,TPU上用的时候会进入判断:https://github.com/google-research/bert/blob/master/optimization.py#L67 其余代码都是通用的。
用了谷歌原版的还是不行,
就是基于谷歌原版把global_step
改成自己传进去
self.global_step = tf.Variable(0, name="global_step", trainable=False, dtype=tf.int64)
self.train_op = create_optimizer(self.loss,0.00001,num_train_steps=20000,global_step=self.global_step,num_warmup_steps=320)
这个可以:
self.train_op = tf.train.AdamOptimizer(0.00001).minimize(self.loss, global_step=self.global_step)
你改成自己定义的global_step的目的是?另外你上面的self.global_step和self.train_op是在哪定义的?
感谢回复
self.train_op
是create_optimizer
返回的
global_step
原来有两个所以报错
看到了
Normally the global step update is done inside of apply_gradients
.
However, AdamWeightDecayOptimizer
doesn't do this. But if you use
a different optimizer, you should probably take this line out.
感谢回复,好像不是global_step
的问题
方便的话,您那试一下其实也挺方便,跪谢了
抱歉,这个问题与本repo没有什么联系,属于TensorFlow的问题。
建议你阅读一下的tf.train.get_or_create_global_step()
的源代码,或许会有收获。
https://github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/python/training/training_util.py#L148
感谢回复!
我再看看
@ymcui 多谢多谢多谢!