2017-07-10 8 views
1

チェックポイントファイルでネットワークを復元する方法について2つの質問があります。 私はthis codeを使用してネットワークを復元しています。私は元のネットワークの一部だけを必要とします。実際には、私の元のネットワークは5つの畳み込み(非常に小さい)ネットで構成されており、これらはすべて最後に完全に接続された大きなレイヤーに接続されています。私は私の5つのミニ通話を持っているだけです。 私は、ネットワーク内のすべての単一変数とすべてのレイヤーの名前を定義します。 (私がログデータを使ってテンソルボードを実行すると、すべてが正常です。つまり、変数とテンソルの名前はすべて適切です)復元されたチェックポイントファイルからテンソル名を取得する:1つの変数名のみを返します

1-私の最初の問題は、これらの変数復元されたネットワークの名前で、私は "この名前のテンソルはありません"というエラーに直面しています。私はまたinspect_checkpoint.pyと私のチェックポイントファイルをテストし、出力にそれが1つの変数のみを返します。

Variable (DT_INT32) [] 

をし、他の方法で、私はこのコードで再びそれをテスト:

from tensorflow.python import pywrap_tensorflow 
checkpoint_path = os.path.join('./', 'model.ckpt-100') 
reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path) 
var_to_shape_map = reader.get_variable_to_shape_map() 
for key in var_to_shape_map: 
    print("tensor_name: ", key) 
    print(reader.get_tensor(key)) 

、それが返されます。

tensor_name: Variable 
101 

この問題の原因を見つけることができません。誰もがこの問題に直面したことはありますか?

2-ネットワークを復元するために使用した上記のサイトに基づいて、私はちょっと混乱しています。実際には、私はすべての5ミニコンバットを復元したい(これらのミニネットはすべて最後の層に完全に接続されています)。だから、すべてのミニコンネルを最後に完全に接続されたレイヤーからすべてのウェイトで復元する正しい方法は何か分かりません。

+0

を使用する必要があなたのネットワークを復元するには、私は本当にあなたがhttps://keras.io/やってみることをお勧めします。それは、TensorFlowまたはTheanoのいずれかの上に位置する高レベルの機械学習ライブラリであり、ディープ・ラーニング・モードをもっと*迅速に構築します。 pip install keras – DrMcCleod

答えて

0

1-見た目からは、変数に名前を付けていないようです。変数名は保存されません。 これは、異なるタイプのものであればトレーニングで動作することができますが、同じキー名で辞書を作成しようとすると、メモリへの書き込みが乱れて上書きされる可能性があります。

2-完全にあなたは機械学習のための異例のユースケースを持っていない限り

saver = tf.train.Saver() 
saver.save(session_to_save, 'namefile') 
... 
saver.restore(session_to_restore, 'namefile') 
+0

ありがとうございます。実際には、私はすべてのミニコンバットについてPythonクラスに自分のコードを入れて、それぞれを作成するためにそのクラスからインスタンスを作成します。そのクラスを定義した後、私のプロジェクトの私の変数の名前はすべて消えました(私の上記の記述に基づいて)。なぜこれが起こったのか分かりません。 –

関連する問題