Умножение матриц Теано

У меня есть фрагмент кода, который должен вычислять простой матричный продукт в python (используя theano). Матрица, которую я намереваюсь умножить, является общей переменной.

Это самый маленький пример, демонстрирующий мою проблему.

Я использовал две вспомогательные функции. floatX преобразует свои входные данные во что-то типа theano.config.floatX init_weights генерирует случайную матрицу (типа floatX) заданных размеров.

Последняя строка вызывает сбой кода. На самом деле, это приводит к такому объему вывода в командной строке, что я даже не могу прокрутить ее вверх.

Итак, может ли кто-нибудь сказать мне, что я делаю неправильно?

def floatX(x):
 return numpy.asarray(x,dtype=theano.config.floatX)

def init_weights(shape):
 return floatX(numpy.random.randn(*shape))

a = init_weights([3,3])
b = theano.shared(value=a,name="b")
x = T.matrix()
y = T.dot(x,b)
f = theano.function([x],y)

person user3214017    schedule 11.02.2015    source источник


Ответы (1)


Эта работа для меня. Итак, я предполагаю, что у вас проблема с установкой blas. Обязательно используйте версию для разработки Theano:

http://deeplearning.net/software/theano/install.html#bleeding-edge-install-instructions

У него лучше значение по умолчанию для некоторых конфигураций. Если это не решит проблему, посмотрите сообщение об ошибке. Основная часть находится после дампа кода. После трассировки стека. Это то, что обычно является наиболее полезным.

Вы можете отключить прямое связывание Theano с blas с помощью этого флага Theano: blas.ldflags=

Это может вызвать замедление. Но это быстрая проверка, чтобы подтвердить, что проблема не в порядке.

Если вам нужна дополнительная помощь, запишите сообщение об ошибке в текстовый файл, разместите его в Интернете и дайте ссылку на него отсюда.

person nouiz    schedule 11.02.2015
comment
Как установить этот флаг? Просто python -c 'blas.ldflags=' - person user3214017; 12.02.2015
comment
Поскольку это сработало для вас, принять ответ - это здорово. Для других, чтобы установить флаги Theano, один из способов определить переменную среды ОС THEANO_FLAGS=blas.ldflags=.... Doc для более подробной информации и альтернативы deeplearning.net/software/theano/library/config.html< /а> - person nouiz; 12.02.2015