Я написал код для слоя деконволюции,
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, stepdes = [1, stepde, stepde, 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
return self._dims [ключ] IndexError: список индексов вне диапазона
Мое намерение - сделать слой деконволюции там, где должна быть форма,
[batch_size, 36,36,1024] => [batch_size, 72,72,512].
Пожалуйста, помогите мне исправить эту ошибку,