2

tf.nn.deconv2d()可変サイズのデータ​​のバッチで opを使用しようとしています。output_shapeただし、引数を次のように設定する必要があるようです。

tf.nn.deconv2d(x, filter, output_shape=[12, 24, 24, 5], strides=[1, 2, 2, 1],
               padding="SAME")

なぜtf.nn.deconv2d()固定を取るのoutput_shapeですか?可変バッチ ディメンションを指定する方法はありますか? 入力バッチ サイズが異なる場合はどうなりますか?

4

1 に答える 1

5

NB はTensorFlow の次のリリース (0.7.0) でtf.nn.deconv2d()呼び出されます。tf.nn.conv2d_transpose()

へのoutput_shape引数は、その値としてtf.nn.deconv2d()計算された を受け入れます。これにより、動的な形状を指定できます。Tensorたとえば、入力が次のように定義されているとします。

# N.B. Other dimensions are chosen arbitrarily.
input = tf.placeholder(tf.float32, [None, 24, 24, 5])

...次に、特定のステップのバッチ サイズを実行時に計算できます。

batch_size = tf.shape(input)[0]

この値を使用すると、output_shape引数を次のようにtf.nn.deconv2d()使用して構築できtf.pack()ます。

output_shape = tf.pack([batch_size, 24, 24, 5])

result = tf.nn.deconv2d(..., filter, output_shape=output_shape,
                        strides=[1, 2, 2, 1], padding='SAME')
于 2016-02-11T19:07:27.633 に答える