theano – значение печати TensorVariable

Как напечатать числовое значение anano TensorVariable? Я новичок в theanano, поэтому, пожалуйста, будьте терпеливы 🙂

У меня есть функция, где я получаю y в качестве параметра. Теперь я хочу отлаживать-напечатать форму этого y на консоли. С помощью

 print y.shape 

приводит к выводу на консоль (я ожидал цифры, т.е. (2,4,4) ):

 Shape.0 

Или как я могу напечатать числовой результат, например, следующий код (это подсчитывает, сколько значений в y больше половины максимального):

 errorCount = T.sum(T.gt(T.abs_(y),T.max(y)/2.0)) 

errorCount должен быть единственным числом, потому что T.sum суммирует все значения. Но используя

 print errCount 

дает мне (ожидалось что-то вроде 134 ):

 Sum.0 

3 Solutions collect form web for “theano – значение печати TensorVariable”

Если y является переменной aano, y.shape будет переменной aano. так что это нормально,

 print y.shape 

вернуть:

 Shape.0 

Если вы хотите оценить выражение y.shape, вы можете сделать следующее:

 y.shape.eval() 

если y.shape не y.shape для вычисления самого себя (зависит только от общей переменной и константы). В противном случае, если y зависит от переменной x Anano, вы можете передать значения входных данных следующим образом:

 y.shape.eval(x=numpy.random.rand(...)) 

это то же самое для sum . Граф Theano – это символическая переменная, которая не выполняет вычисления, пока вы не скомпилируете ее с помощью функции theano.function или вызовите eval() .

EDIT: в документах синтаксис в новых версиях theano

 y.shape.eval({x: numpy.random.rand(...)}) 

Для будущих читателей: предыдущий ответ неплох. Но я нашел механизм tag.test_value более полезным для целей отладки (см. Theano-debug-faq ):

 from theano import config from theano import tensor as T config.compute_test_value = 'raise' import numpy as np #define a variable, and use the 'tag.test_value' option: x = T.matrix('x') x.tag.test_value = np.random.randint(100,size=(5,5)) #define how y is dependent on x: y = x*x #define how some other value (here 'errorCount') depends on y: errorCount = T.sum(y) #print the tag.test_value result for debug purposes! errorCount.tag.test_value 

Для меня это гораздо более полезно; например, проверка правильных размеров и т. д.

print Значение переменной тензора.

Выполните следующие действия:

print tensor[dimension].eval() # это будет печатать содержимое / значение в этой позиции в тензоре

Пример: для 1-го тензора:

 print tensor[0].eval() 
  • Импортировать theano дает AttributeError: модуль 'theano' не имеет атрибута 'gof'
  • Реализация разреженных соединений в нейронной сети (Theano)
  • Python theano.scan указывает аргумент
  • Как изменить компилятор Python по умолчанию в GCC?
  • Почему я не могу оценить измененную тензорную переменную в анано?
  • Импорт keras.datasets не работает
  • Импортирование theano: AttributeError: объект 'module' не имеет атрибута 'find_graphviz'
  • Функция Python - Theano scan ()
  • Как изменить температуру выхода softmax в Keras
  • Исключение из списка Theano CUDA
  • Как использовать предварительно обработанное слово2vec в anano
  • Python - лучший язык программирования в мире.