5D тензор в Теано
Мне было интересно, как сделать 5D-тензор в Theano.
Конкретно я пытался dtensor = T.TensorType('float32', (False,)*5)
, Однако единственная проблема заключается в том, что dtensor.shape
возвращает: AttributeError: 'TensorType' object has no attribute 'shape'
Принимая во внимание, что если бы я использовал стандартный тип тензора, какdtensor = T.tensor3('float32')
Я не получаю эту проблему, когда я звоню dtensor.shape.
Есть ли способ, чтобы это не было проблемой с 5D-тензором в Theano?
2 ответа
Переменные Theano не имеют явной информации о форме, поскольку они являются символическими переменными, а не числовыми. Четное dtensor3 = T.tensor3(T.config.floatX)
не имеет явной формы. Когда вы печатаете dtensor3.shape
вы получите объект Shape.0
но когда вы делаете dtensor3.shape.eval()
чтобы получить его значение, вы получите ошибку.
Однако в обоих случаях dtensor.ndim
работает и распечатывает 5
а также 3
соответственно.
dtensor = T.TensorType('float32',(False,)*5)
только вызывает функцию TensorType
, Для того, чтобы использовать атрибут dtensor.shape
Вы должны сделать это объектом. Вы можете сделать это:
dtensor = T.TensorType('float32',(False,)*5) ()
Вы можете указать имя в скобках в конце, если хотите.