2017-09-05 7 views
0

obs_patternobs_seqおよびobs_seq_sのコードピースに問題があり、期待される動作をしません。私はTensorFlow 1.2.1で試しました。私は何か間違っていると思う。 Tに基づい :対話型セッションevalとtf.random_uniformは期待された出力を生成しません

import tensorflow as tf 

sess = tf.InteractiveSession() 
seq_length = 5 
num_bits = 4 
obs_pattern_shape = [num_bits, seq_length] 
obs_pattern = tf.cast(
    tf.random_uniform(obs_pattern_shape, minval=0, maxval=2, seed=1234, dtype=tf.int32), 
    tf.float32) 
print(obs_pattern.eval()) 
seq_length_zeros = tf.zeros([1, seq_length]) 
obs_seq = tf.concat([obs_pattern, seq_length_zeros], axis=0) 
print(obs_seq.eval()) 
add_vec = tf.one_hot([num_bits], (num_bits + 1), on_value = 1.0, off_value=0.0, axis=0) 
obs_seq_s = tf.concat([obs_seq, add_vec], axis=1) 
print(obs_seq_s.eval()) 

sess.close() 

obs_pattern

[[ 1. 1. 1. 0. 0.] 
[ 0. 0. 0. 1. 0.] 
[ 0. 1. 1. 0. 0.] 
[ 0. 1. 0. 0. 0.]] 

obs_seq

[[ 1. 1. 0. 1. 1.] 
[ 0. 1. 1. 0. 1.] 
[ 1. 1. 1. 0. 0.] 
[ 1. 1. 0. 1. 0.] 
[ 0. 0. 0. 0. 0.]] 

obs_seq_s

[[ 1. 0. 0. 0. 0. 0.] 
[ 0. 0. 1. 0. 0. 0.] 
[ 0. 1. 0. 0. 0. 0.] 
[ 0. 1. 0. 0. 0. 0.] 
[ 0. 0. 0. 0. 0. 1.]] 

EDIT私はobs_pattern変更と私は

import numpy as np 
arr = np.random.randint(2, size=(num_bits, seq_length)) 
obs_pattern = tf.convert_to_tensor(arr, dtype=tf.float32) 

答えて

0

それは、あなたはそれが新しいランダム制服を再実行obs_patternが形成されたテンソル上のSESを実行するたびに期待されていると思ったのだとして、それが振る舞うの下に、彼はコメント。 生成すると予想される動作を得るにはONCE numpyのnumpy配列を作成し、obs_patternという同じシェイプのプレースホルダに入力します。 シードを使用することを明確にするために、を実行したとき、オペレーションは何度も実行されたので、シーケンスの最初の繰り返しが得られます。

+0

甘い!ありがとう – flyingmadden

関連する問題