2016-12-08 5 views
4

.ckptファイルとして保存していません。対話型プログラムでは、システム出力から、そのファイルが正常に作成されたことがわかりましたが、ファイルシステムでそのファイルを見つけることはできません。Tensorflowセーバー()私は「spikes.cpkt」としてディスクにTensorflowセッションを保存するための簡単なプログラムを実行しようとした

Iが使用Tensorflowのバージョンは、オペレーティングシステムがUbuntuの16.04であるPythonの2を使用して0.11rcあります。プログラムはJupiterのノートブックで書かれていました。

次のセッションを保存するソースコードである:

# Import TensorFlow and enable interactive sessions 
import tensorflow as tf 
sess = tf.InteractiveSession() 

# Let's say we have a series data like this 
raw_data = [1., 2., 8., -1., 0., 5.5, 6., 13.] 
# Define a boolean vector called `spikes` to locate a sudden spike in raw data 
spikes = tf.Variable([False] * len(raw_data), name='spikes') 
# Don't forget to initialize the variable 
spikes.initializer.run() 

# The saver op will enable saving and restoring variables. 
# If no dictionary is passed into the constructor, then the saver operators of all variables in the current program. 
saver = tf.train.Saver() 

# Loop through the data and update the spike variable when there is a significant increase 
for i in range(1, len(raw_data)): 
    if raw_data[i] - raw_data[i-1] > 5: 
     spikes_val = spikes.eval() 
     spikes_val[i] = True 
     # Update the value of spikes by using the `tf.assign` function 
     updater = tf.assign(spikes, spikes_val) 
     # Don't forget to actually evaluate the updater, otherwise spikes will not be updated 
     updater.eval() 

# Save the variable to the disk 
save_path = saver.save(sess, "spikes.ckpt") 

# Print out where the relative file path of the saved variables 
print("spikes data saved in file: %s" % save_path) 

# Remember to close the session after it will no longer be used 
sess.close() 

システムの出力は、図中(1):ファイルシステム内に作成 enter image description here

ファイルは、図に示されています(2): enter image description here

ディスクに「spikes.ckpt」という名前のファイルはありません。

+0

に変数の名前を配置する必要がありspikes.ckpt'は 'のように見えますプレフィックスは実際のファイル名ではなく、実際のファイル名ではなく –

+0

TensorFlowのバージョンによって保存形式の名前が異なります(0.11にアップグレードすると解決されますが、0.12rcに再表示されます)。それは.checkpointファイルの末尾に.DATA-00000-の-00001を追加して、今働いていない – Conchylicultor

答えて

8

TensorFlowは最近、共通の接頭辞を持つファイルのセットとしてチェックポイントを保存し、新たなチェックポイント形式(セーバーV2)を導入しました。古い形式を使用していますtf.train.Saver、次のことができcreate itを作成するには、次のように:

saver = tf.train.Saver(write_version=tf.train.SaverDef.V1) 
+0

: WARNING:tensorflow:********************* ********************************** WARNING:tensorflow:tensorFlowのV1チェックポイント形式は廃止されました。 警告:tensorflow:より効率的なV2フォーマットに切り替えることを検討してください。 警告:tensorflow: 'tf.train.Saver(write_version = tf.train.SaverDef.V2)' 警告:テンソルフローがデフォルトでオンになりました。 WARNING:tensorflow:********************************************* ********** – ZijunLost

+0

@ZijunLost現在のバージョンのTensorFlowでは、その警告を無視できます。ただし、V1形式のサポートは、TensorFlowのそれ以降のバージョン(2.0以降)で削除される可能性があります。 – mrry

+0

あなたは正しいです。バージョン2.0のように3つではなく2つのファイルに保存します。私たちが使用しているコードのほとんどは、バージョンに無関心であるようです。たとえば、 'inspect_ckpt.py'はバージョン2と互換性があるようです。私のフォローアップの質問は、異なるバージョンの保存ファイルを扱う際に注意すべきことがありますか?また、バージョン2ではさらに何がありますか? – ZijunLost

0

をあなただけtf.trai.Saver

saver = tf.train.Saver([spikes]) 
関連する問題