TensorFlowの重みなどについて
TensorFlowの非常にシンプルなAutoencoderのコード:mnist_ae1.pyをもちいて,w_enc
やb_enc
の値の中身を見て保存する方法をご教授願いたいです.
以前似たことを行ったので,そのコードを元にmnist_ae1.pyの下記の部分
# Train
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
print('Training...')
for i in range(10001):
batch_xs, batch_ys = mnist.train.next_batch(128)
train_step.run({x: batch_xs, y_: batch_ys})
if i % 1000 == 0:
train_loss = loss.eval({x: batch_xs, y_: batch_ys})
print(' step, loss = %6d: %6.3f' % (i, train_loss))
# generate decoded image with test data
test_fd = {x: mnist.test.images, y_: mnist.test.labels}
decoded_imgs = decoded.eval(test_fd)
print('loss (test) = ', loss.eval(test_fd))
の最後に
w_enc_array, b_enc_array = train_step.run([w_enc, b_enc], {x: mnist.test.images})
print("w_enc :", w_enc_array)
print("b_enc :", b_enc_array)
weight_result = np.append(w_enc_array, 0)
weight_result = np.append(weight_result, b_enc)
np.savetxt("weight_result.csv", weight_result, delimiter=",")
を加えてみたのですが,
w_enc_array, b_enc_array = train_step.run([w_enc, b_enc], {x: mnist.test.images})
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1449, in run
_run_using_default_session(self, feed_dict, self.graph, session)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 3664, in _run_using_default_session
if session.graph is not graph:
AttributeError: 'dict' object has no attribute 'graph'
というエラーが返ってきました.
以前tf.Session()
で学習を行っているものでは出来たのですが,tf.Session()
にせずtrain_step.run
としている今回のような場合では何か根本的な違いがあったりするのでしょうか?
どうぞよろしくお願いいたします.