0

実装後のTensorflowでFCNモデルをlinkに訓練し、完全なモデルをチェックポイントとして保存しました。次に、問題のために保存されたモデル。 として、私はセーバーで重みを指定することで、チェックポイントからモデルを復元しようとした:私はウェイトを取得していますTensorflow事前に訓練されたモデルをチェックポイントとして保存する方法

saver = tf.train.Saver({"weights" : [w1_1,w1_2,w2_1,w2_2,w3_1,w3_2,w3_3,w3_4, w4_1, w4_2, w4_3, w4_4,w5_1,w5_2,w5_3,w6,w7]}) 

として:私はないです上の....

w1_1=tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,scope='inference/conv1_1_w') 

ので、それを正常に復元することができます(特定の層まで)。 Tensorflowバージョン:

+0

表示されているエラーを共有していただけますか?私が知る限り、 'tf.train.Saver'への最初の引数の型は正しくありません。一つのキーを変数リストにマッピングする辞書の代わりに、キーを個々の変数にマッピングする辞書が必要です。 – mrry

+0

あなたはまさに正しいですが、私はリストから個々の重みを得ています。あなたのポイントを詳細に説明してください。 –

答えて

0

0.12rあなたはsess.run(init)続いinit = tf.initialize_variables([list_of_vars])を呼び出すことができますし、それはあなたのためにそれらの変数を再初期化します、またはあなたが重みを凍結するが、別の名前を残しておきたいポイントから同じ構造を持つグラフを再作成しますか、変数のため。さらに特定の変数のみを訓練したい場合は、それらの変数をオプティマイザに渡すことができます。 tf.train.AdamOptimizer(learning_rate).minimize(loss,var_list = [wi, wj, ....])

+0

バイアスを復元して初期化する必要はありますか? –

+0

はい、層によって必要とされていることを確認するのは難しいことではありませんが、必要に応じて凍結して再初期化することに決めました。 – rajat

+0

Btw、再度訓練する必要のある変数だけを再統合します。他の人は直接使用することができます – rajat

関連する問題