私は、TensorFlowにシンプルな4層ニューラルネットワーク(2つの隠れたレイヤー)を構築しました。私はTensorFlowによって提供された組み込みのNNを使用していませんが、私自身の基本バージョンを実装しています。 W(重み)とB(偏見)テンソルの一箇所に、私はこのように、これらの変数の辞書を構築し維持するために今、:Saverオブジェクトを使ってTensorFlowに変数の辞書を保存する方法は?
weights = {
'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])),
'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),
'out': tf.Variable(tf.random_normal([n_hidden_2, n_classes]))
}
biases = {
'b1': tf.Variable(tf.random_normal([n_hidden_1])),
'b2': tf.Variable(tf.random_normal([n_hidden_2])),
'out': tf.Variable(tf.random_normal([n_classes]))
}
を、私はこれらのパラメータを学習した後、私はセーバーオブジェクトを使用してそれらを保存したいです。私はこれを試みた:
saver = tf.train.Saver([weights,biases])
save_path = saver.save(sess,"./data/model.ckpt")
しかし、私はそうしていません。
TypeError: unhashable type: 'dict'
今、一つの解決策は、すべての変数分離することです:見誤差がある個々の変数にbias_out(偏見辞書のうち)H1、H2、アウト、B1、B2を、そしてそれらを保存するが、これはそうです素朴なアプローチ。後で一緒にクラブ化する必要のある変数が増えたら、それをそのままにしておくともっとクリーンで扱いやすくなります。グループ化された変数を一緒に保存するにはどうすればよいですか?
これは私がそれを検証した方法です: 'python inspect_checkpoint.py --file_name = "path/to/model/file"'を使用してください。出力は次のようになります。(type_of_var1)[shape] 例: h1(DT_FLOAT)[784,256] –
arshellium
最後に私はこの構文を使用しましたが、これは正しいものです。 saver = tf.train.Saver({**体重、**バイアス) ありがとう@corentin – arshellium