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