2016-03-10 3 views
0

Я новичок в theano, пытаюсь воспроизвести результат для кода this на моем локальном компьютере. Когда я запускаю код, я получаю следующую ошибку при запуске функций anano (In [48]) f_train и f_test.понимание dtype in theano

TypeError: ('An update must have the same type as the original shared variable (shared_var=b_y, shared_var.type=TensorType(float32, vector), update_val=Elemwise{sub,no_inplace}.0, update_val.type=TensorType(float64, vector)).', 'If the difference is related to the broadcast pattern, you can call the tensor.unbroadcast(var, axis_to_unbroadcast[, ...]) function to remove broadcastable dimensions.')

Когда я изменить строку:

b_y = numpy.zeros(shape=(10,), dtype="float32") 

к

b_y = numpy.zeros(shape=(10,), dtype=theano.config.floatX) 

то он работает нормально. Теперь в моем .theanorc у меня есть floatX = float32. Я не могу понять, почему это происходит.

Более того, если я изменю все dtype=theano.config.floatX на dtype="float32", тогда также получаю ту же ошибку.

Пожалуйста, помогите мне понять, что здесь происходит.

+0

Вы подтвердили, что ваш '.theanorc' находится в нужном месте и на самом деле загружается? – cfh

+0

Это в моем домашнем каталоге. Если я не ошибаюсь, это то, где он должен быть. Я использую Mac OX – souraj

+0

Я не уверен, как проверить, правильно ли загружается. – souraj

ответ

0

Кажется, ваша среда каким-то образом перепуталась. Не вдаваясь в детали вашей среды, я не могу дать вам лучшее решение; но всякий раз, когда у меня возникают такие проблемы, я всегда использую флаги командной строки этого кода. Вы можете установить флаги для Теана при запуске кода в командной строке так:

THEANO_FLAGS='floatX=float32,device=gpu0' python <myscript>.py 

Подробнее здесь: http://deeplearning.net/software/theano/library/config.html

Надежда, что помогает.

Смежные вопросы