これらの投稿は文字通り何千もありますが、私の正確な問題に対処するものはまだありません。ある場合は、これを閉じてください。sess.runのTensorflow unhashableタイプ 'list'
私はリストがPythonで変更可能であることを理解しています。その結果、リストをキーとして辞書に格納することはできません。
Iは、次のコード(それは無関係であるので、それのトンが省略されている)を有する:
with tf.Session() as sess:
sess.run(init)
step = 1
while step * batch_size < training_iterations:
for batch_x, batch_y in batch(train_x, train_y, batch_size):
batch_x = np.reshape(batch_x, (batch_x.shape[0],
1,
batch_x.shape[1]))
batch_x.astype(np.float32)
batch_y = np.reshape(batch_y, (batch_y.shape[0], 1))
batch_y.astype(np.float32)
sess.run(optimizer, feed_dict={x: batch_x, y: batch_y})
if step % display_step == 0:
# Calculate batch accuracy
acc = sess.run(accuracy,
feed_dict={x: batch_x, y: batch_y})
# Calculate batch loss
loss = sess.run(cost, feed_dict={x: batch_x, y: batch_y})
print("Iter " + str(step*batch_size) +
", Minibatch Loss= " +
"{:.6f}".format(loss) + ", Training Accuracy= " +
"{:.5f}".format(acc))
step += 1
print("Optimization Finished!")
train_x
が
train_y
[batch_size, num_features]
numpyの行列であること
[batch_size, num_results]
numpyの行列でありますグラフには次のプレースホルダがあります。
x = tf.placeholder(tf.float32, shape=(None, num_steps, num_input))
y = tf.placeholder(tf.float32, shape=(None, num_res))
自然に私はtrain_x
とtrain_y
を適切な形式のテンソルフローが得られるように変換する必要があります。
batch_x = np.reshape(batch_x, (batch_x.shape[0],
1,
batch_x.shape[1]))
batch_y = np.reshape(batch_y, (batch_y.shape[0], 1))
この結果は私に2 numpy.ndarray
を与える:私は次のようにそれを行う
当社グラフによって期待されるように
batch_x
は寸法[batch_size, timesteps, features]
batch_y
のですが寸法[batch_size, num_results]
です。私はこれらの整形numpy.ndarray
を渡すとき
は今、私は次の行にTypeError: Unhashable type list
を取得します:pythonを発射するので
sess.run(optimizer, feed_dict={x: batch_x, y: batch_y})
これは私には奇妙に思える:
import numpy as np
a = np.zeros((10,3,4))
{a : 'test'}
TypeError: unhashable type: 'numpy.ndarray`
あなたは、私が完全に見ることができます別のエラーメッセージ。
はまた、私のコードで私はデータに一連の変換を実行します。x = tf.transpose(x, [1, 0, 2])
x = tf.reshape(x, [-1, num_input])
x = tf.split(0, num_steps, x)
lstm_cell = rnn_cell.BasicLSTMCell(num_hidden, forget_bias=forget_bias)
outputs, states = rnn.rnn(lstm_cell, x, dtype=tf.float32)
そして、リストが発生した唯一の場所は、テンソルrnn.rnn
を期待のT
サイズのリストで、その結果、スライスした後です。
私はここで完全に紛失しています。私は解決策を見つめているように感じ、私はそれを見ることができません。誰でもここで私を助けることができますか?
ありがとうございました!
これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-代わりに)。 - [レビューの投稿](/レビュー/低品質の投稿/ 18274849) – yivi