2015-06-16 4 views
0

Я изучаю библиотеку Theano Python. Я просто столкнулся блок кода, используя Theano показанный ниже:Проблемы с кодом Python с использованием Theano

import theano 
import theano.tensor as T 
from collections import OrderedDict 
import numpy 

params = OrderedDict() ### params is a python ordered dictionary. 
r = numpy.random.rand(10, 5) ### Generate a random matrix with dimension of 10 * 5. 
params['haha'] = (0.01 * r).astype('float32') ### insert a key 'haha' with its value into the dictionary. 

sparams = OrderedDict() ### sparams is another python ordered dictionary. 
sparams['haha'] = theano.shared(params['haha'], name='haha') ### Create Theano Shared Variable from the params. 

x = T.matrix('x', dtype='int64') ### x is a theano tensor matrix 

n1 = x.shape[0]  ### What does it mean? 
n2 = x.shape[1]  ### What does it mean? 

h = sparams['haha'][x.flatten()].reshape([n1, n2, 5]) ### What does it mean? 

Моя проблема в том, что я не могу понять эту часть кода:

n1 = x.shape[0]  ### What does it mean? 
n2 = x.shape[1]  ### What does it mean? 

h = sparams['haha'][x.flatten()].reshape([n1, n2, 5]) ### What does it mean? 

Кроме того, мне интересно, если есть способ в Python для проверьте значения, а также размеры тензорных переменных Фано. Я очень признателен, если кто-нибудь может помочь мне решить проблему.

ответ

1

В соответствии с документами shape возвращает lvector, представляющий форму x. Вы можете прочитать больше о том, что here

В блоке кода вы ссылаетесь n1 возвращает объект с индексом 0 и n2 возвращает объект с индексом 1.

Вы можете прочитать немного больше о списках в питона here.

Если вы работаете этот сценарий из командной строки, вы можете использовать print заявление, чтобы увидеть, что содержится в этих переменных, добавив следующую строку:

n1 = x.shape[0] print n1

+0

Спасибо за ваш великий ответ ! Фактически, я попытался напечатать тензорную переменную кодом: 'print h', но, похоже, напечатал что-то вроде:' Reshape {3} .0'. Поэтому я не могу определить значение тензорной переменной, а также размерность. Кроме того, я либо не понимаю смысла 'h = sparams ['haha'] [x.flatten()]. ​​Reshape ([n1, n2, 5])' ... –

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