关于使用Tensorflow时,Optimizer定义的位置不正确时出现的错误

参考:
1. https://github.com/tensorflow/tensorflow/issues/7244
2. https://stackoverflow.com/questions/47765595/tensorflow-attempting-to-use-uninitialized-value-beta1-power?rq=1

今天在尝试将ImageNet预训练的mobilenet v2迁移到我的抓取数据集时遇到了几个问题。
设置好想要restore的variable,然后进行saver.restore时出现了类似参考1中的问题,提示checkpoint中未找到许多类似于“…BatchNorm/beta/Adam”的参数,这个问题是由于“defined the variables to restore after I created my train_op”引起的,因此要把实例化tf.train.Saver的操作放在定义optimizer之前进行。

另外还需要注意的是,Adam Optimizer自己本身含有一些Variables,因此初始化变量的操作必须在定义Adam Optimizer之后,否则就会出现如参考2中提示使用了未初始化的变量的错误。

你可能感兴趣的:(TensorFlow知识技巧)