31658


tf.squeezeはどのような処理を行うものでしょうか？  
また，それを用いた下記のコードによって形成されるp_inputsのshapeはどのようになるでしょうか？ご教授願えれば幸いです．よろしくお願いいたします．

[code]

    batch_num = 10
    step_num = 2000
    elem_num = 26
    
    p_input = tf.placeholder(tf.float32, [batch_num, step_num, elem_num])
    p_inputs = [tf.squeeze(t, [1]) for t in tf.split(1, step_num, p_input)]
    
[/code]


CC BY-SA 3.0
2017-01-05T09:36:12.290
31635
2017-01-06T11:13:52.383
2017-01-06T11:13:52.383
3054
20111
question
python tensorflow
TensorFlow の tf.squeeze はどのような処理を行うものでしょうか


tf.squeezeはsizeが1の次元を削除し次元数を減らすAPIとなります。  
第二引数を指定した場合は指定したindexの次元かつそこがsizeが1であるならば次元数を減らします。

ご提示の例の場合tは  
[batch_num, step_num, elem_num]のstep_num分split  
つまり[batch_num, 1, elem_num]の形となりますので。

上記tをtf.squeeze(t, [1])にかけるということは  
「indexが1でそこが次元数1であるならばその次元を削除する。」となりますので  
[batch_num, elem_num]のshapeのTensorが出力される事になります。

第二引数を指定し、かつそこがsize 1でない場合はエラーが出るかと思います。  
詳細は以下となります。  
<https://www.tensorflow.org/versions/r0.11/api_docs/python/array_ops/shapes_and_shaping#squeeze>


CC BY-SA 3.0
2017-01-06T06:12:15.207
31658
2017-01-06T06:12:15.207
19716
31635
answer