0

デコンボリューションレイヤーのコードを書きました。

def deconv2d(x, W,stride):
  x_shape = tf.shape(x)
  output_shape = tf.stack([x_shape[0], x_shape[1]*2, x_shape[2]*2, x_shape[3]//2])
  decon = tf.nn.conv2d_transpose(x, W, output_shape, strides=[1, stride, stride, 1], padding='SAME')
  layer_shape = get_layer_shape(decon)
  print('DECONV Shape : ', layer_shape)
  return  decon

上記の関数をこのように呼び出しましたが、

deconvolution1 = deconv2d(x=cnn_layer10, W=[2,2,512,1024], stride=2)

このエラーが発生し、

ファイル「u-net.py」、84 行目、obj.computation() ファイル「u-net.py」、41 行目、計算 deconvolution1 = deconv2d(x=cnn_layer10, W=[2,2,512,1024], stride=2) ファイル "/home/shuvo/u-net/architecture.py"、35 行目、deconv2d decon = tf.nn.conv2d_transpose(x, W, output_shape, strides=[1, stride, stride, 1] 、padding='SAME') ファイル "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/nn_ops.py"、1019 行目、conv2d_transpose の場合、value.get_shape()[axis] .is_compatible_with(filter.get_shape()[3]):
ファイル "/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/tensor_shape.py"、500 行目、getitem でself._dimsを 返す[key] IndexError: リスト インデックスが範囲外です

私の意図は、形状が [batch_size, 36,36,1024]=>[batch_size,72,72,512] であるべきデコンボリューション レイヤーを作成することです。このエラーを修正するのを手伝ってください。

4

1 に答える 1