1つの配列にサイズ[1x9]というデータがあり、乱数1から9を生成してシャッフルしています。テンソルを使用してランダムに生成された値を変数にコピーできません
# generating an array of number
BCI = tf.concat(0, [tf.fill([1,3],1),tf.fill([1,3],2),tf.fill([1,3],3)])
# making it in to 1x9
BCI1 = tf.reshape(BCI,[-1])
# generating random numbers with length of BCI and shuffling it
rn = tf.random_shuffle(tf.range(tf.shape(BCI1[0]))
rna = tf.cast(rn,tf.int32)
# rearranging data
BCI2 = tf.gather(BCI1,rna)
print(sess.run(BCI1))
print(sess.run(rn))
print(sess.run(BCI2))
# output is
[1 1 1 2 2 2 3 3 3]
[3 5 0 2 6 1 4 8 7]
[2 2 1 3 1 2 1 3 3] # expected to be [2 2 1 1 3 1 2 3 3]
sess.runを変更するたびにrn値を定数としてコピーできません。 しかし、私は 'rn'で生成された乱数値を最初に生成する必要があります。別のものでテストする必要があります。 rnを何回印刷すると、同じ値が出力され、出力が再生成されます。 どうすればいいですか?
は私がランダムn = tf.shape(BCI1)
rna = random.sample(list(range(n[0].eval())),9)
をインポートしてみましたが、それはValueError: Cannot evaluate tensor using eval(): No default session is registered. Use with sess.as_default() or pass an explicit session to eval(session=sess)
`
'のSES = tf.InteractiveSessionを(追加)'あなたの最初の 'sess.run'前に –