Я хотел бы использовать сверточную транспозицию для получения тензора 2700 значений со следующим вводом:
input = tf.placeholder(tf.float32, shape=(batch_size, 1 , 1 ,1))
Для этого я использовал функцию tf.nn.conv2d_transpose .
Вот мой код:
import tensorflow as tf
import numpy as np
sess = tf.Session()
batch_size = 20
input = tf.placeholder(tf.float32, shape=(batch_size, 1 , 1 ,1))
logits = tf.nn.conv2d_transpose(input, [batch_size,1,2700,1],[batch_size, 1, 2700, 1],[1,1,3,1],'SAME')
Когда я запускаю эту программу, в последней строке появляется следующая ошибка:
IndexError: list index out of range
Вот полная ошибка, возвращаемая Python:
IndexError Traceback (most recent call last)
<ipython-input-34-724f7880c01d> in <module>()
9 input = tf.placeholder(tf.float32, shape=(batch_size, 1 , 1 ,1))
10
---> 11 logits = tf.nn.conv2d_transpose(input, [batch_size,1,2700,1],[batch_size, 1, 2700, 1],[1,1,3,1],'SAME')
/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/nn_ops.py in conv2d_transpose(value, filter, output_shape, strides, padding, data_format, name)
1223 filter = ops.convert_to_tensor(filter, name="filter") # pylint: disable=redefined-builtin
1224 axis = 3 if data_format == "NHWC" else 1
-> 1225 if not value.get_shape()[axis].is_compatible_with(filter.get_shape()[3]):
1226 raise ValueError("input channels does not match filter's input channels, "
1227 "{} != {}".format(value.get_shape()[axis],
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/tensor_shape.py in __getitem__(self, key)
610 return TensorShape(self._dims[key])
611 else:
--> 612 return self._dims[key]
613 else:
614 if isinstance(key, slice):
IndexError: list index out of range
Некоторая помощь будет приветствоваться