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) ()

Вы можете указать имя в скобках в конце, если хотите.

Другие вопросы по тегам