關於使用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中提示使用了未初始化的變量的錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章