2017-10-04 2 views
0

を読んで、私はまたpickle.dumpを試してみましたが、その下のエラーを与える文字列とストアに変換しようとしたが、元の形にがファイルにtf.get_collectionから返され、それに

それを変換することはできません

raise TypeError, "can't pickle %s objects" % base.__name__ 
TypeError: can't pickle module objects 

マイコード:

with tf.Session() as sess: 
    restorer = tf.train.import_meta_graph('abcd.ckpt.meta') 
    restorer.restore(sess,'abcd.ckpt') 
    vars = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES) 
    with open("pickle_target.txt", "wb") as fp: 
     pickle.dump(vars, fp) 

私は、ファイルにtf.get_collectionを保存し、それを編集して再びリストにそれを読む必要があります。

+1

問題を再現するためにコード/例の関連部分を含める必要があります –

+0

申し訳ありません。私は今それを編集:)それを見てください –

答えて

0

tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)は、変数のリストで、変数に格納されている値ではありません。

vars_list = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES) 
with tf.Session() as sess: 
    restorer = tf.train.import_meta_graph('abcd.ckpt.meta') 
    restorer.restore(sess,'abcd.ckpt') 
    vars = sess.run(vars_list) 

今すぐvarsの

は、現在の変数の値で、通常のPythonのリストである:変数の現在の値を取得するには、セッション内の変数のリストを実行する必要があります。

関連する問題