Рассмотрим следующий фрагмент кода:нарезка в Теано преобразует матрицу в вектор
import theano.tensor as T
import theano.tensor
import numpy as np
batch_shape = (50, 40, 30, 30)
batch_size = batch_shape[0]
ncols = batch_shape[1]*batch_shape[2]*batch_shape[3]
minibatch = theano.tensor.tensor4(name='minibatch',
dtype=theano.config.floatX)
xflat = minibatch.reshape((batch_size,ncols))
partition = np.array([1, 2, 3])
xsub1 = xflat[:,partition]
partition = np.array([1])
xsub2 = xflat[:,partition]
print "xsub1.type: ", xsub1.type
print "xsub2.type: ", xsub2.type
Если вы запустите ее, вы получите следующий вывод:
xsub1.type: TensorType(float64, matrix)
xsub2.type: TensorType(float64, col)
Видимо индексации с массивом длины 1 превращает xsub2 в col вместо матрицы. Как я могу сделать xsub2 матрицей?
Как бы вы преобразовали из col в матрицу? Я получаю сообщение об ошибке из-за ошибок проверки внутри Theano, которые проверяют, используется ли один и тот же тип переменных в нескольких местах и не позволяют обменять тип (N, 1) col с матрицей (N, 1). – pir
Извините @pir, я больше не работаю с Theano и не знаю ответа на ваш вопрос. Может быть, вы могли бы задать новый вопрос в StackOverflow? –