これは、ここでの結果であるtf.placeholder()の違いは何ですか?データに変数を直接割り当てるのはどうですか?
import tensorflow as tf
batch_size = 128
sequence_length = 100
batch_size2 = tf.placeholder(tf.int32, [])
sequence_length2 = tf.placeholder(tf.int32, [])
_sequence_length1 = tf.convert_to_tensor(batch_size * [sequence_length], dtype=tf.int32)
_sequence_length2 = tf.convert_to_tensor(batch_size2 * [sequence_length2], dtype=tf.int32)
with tf.Session() as session:
session.run(tf.global_variables_initializer())
print('_sequence_length1', session.run(_sequence_length1))
print('shape of sequence1', _sequence_length1)
print('_sequence_length2', session.run(_sequence_length2, feed_dict={batch_size2: 128, sequence_length2: 100}))
print('shape of sequence2', _sequence_length2)
私のコードと出力結果
です:('_sequence_length1', array([100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100], dtype=int32))
('shape of sequence1', <tf.Tensor 'Const:0' shape=(128,) dtype=int32>)
('_sequence_length2', array([12800], dtype=int32))
('shape of sequence2', <tf.Tensor 'mul:0' shape=(1,) dtype=int32>)
私はBATCH_SIZEとsequence_lengthする異なる変数を養うためにtf.placeholder()を使用したいが、私はしたいです_sequence_length1のような結果、_sequence_length2の形状が(1、)である理由はわかりませんが、_sequence_length2の形状は_sequence_length1と同じであると思います。なぜあなたに教えてくれますか?多くのおかげで......
を使用することができますが、問題は、あなたの方法によって解決されて、ありがとうございました。 –
もしそうなら、あなたは解決済みとして質問に印を付けることができます:) –