私は入力データに対してx = tf.placeholder("float", shape=[None, 784])
を定義しました。後で、バッチサイズとしてx
という形の最初の値を知る必要があります。そして私はx.get_shape().as_list()[0]
で値を抽出しますが、私はNone
を得ました。どうすれば適切に抽出するのか教えてください。どうもありがとう!TensorflowのプレースホルダTensorの形状値を抽出する方法は?
編集:
私は今tf.get_shape()
を使用しているが、それは別のバグを引き起こします。私は、このような方法で、int
にbatch_size
を設定した場合
def deconv(X, W, b, output_shape):
X += b
return tf.nn.conv2d_transpose(X, W, output_shape, strides=[1, 1, 1, 1])
:私のコードでは、私はdeconv
funcitonを定義しているbatch_size = 50
、deconv
機能の呼び出しは、次のようにうまく機能:
W_conv2_T = tf.ones([5, 5, 32, 64])
pool1_tr = deconv(conv2_tr, W_conv2_T, tf.zeros([64]), [batch_size, 14, 14, 32])
conv2_tr
の形状は[50, 14, 14, 64]
です。 pool1_tr
の結果の形状は[50, 14, 14, 32]
です。しかし、batch_size = tf.get_shape(x)[0]
に設定した場合、conv2_tr
の形状は[None, 14, 14, 64]
であり、結果として得られる形状はpool1_tr
であり、[None, None, None, None]
になります。このバグはとても奇妙です。この問題で私を助けてくれますか?前もって感謝します!
お返事ありがとうございます!残念ながら私は別の関連した奇妙なバグを得ました。私は質問を編集し、さらに詳しい情報を追加しました。これを見て、私を助けてください。ありがとう! – southdoor
'tf.nn.conv2d_transpose()'の形状推定がかなり弱いようです。 (そして私が書いたように見えます:P)それを注意してくれてありがとう - 私たちは修正を準備し、その間にあなたはその形状の既知の寸法で 'pool1_tr.set_shape() 'を呼び出すことができます。 – mrry