Deeplearning.net et d'autres utilisent Theano pour définir des classes qui ont des variables partagées et des symboles d'expression comme variables de classe.
Vérifions le comportement de cette classe.
Ici, définissez simplement une classe avec une variable partagée et un symbole d'expression, et essayez d'utiliser la variable de classe.
python
import numpy as np
import theano
import theano.tensor as T
class simple(object):
def __init__(self, input):
self.vector = theano.shared(np.array([1, 2, 3], dtype="float64"))
self.formula = self.vector * input
x = T.iscalar('x')
s = simple(x)
func = theano.function(inputs=[x], outputs=s.formula)
func(5)
Résultat de sortie
array([ 5., 10., 15.])
Le comportement après avoir défini la classe est un peu compliqué, résumons-le donc.
Est-ce le point ou la cause de la complexité que la description dans la classe inclut le symbole d'expression?
Les symboles d'expression ne peuvent pas être appelés directement pour vérifier leurs valeurs.
Il est également difficile de comprendre le comportement à moins d'en faire une fonction et d'entrer une valeur concrète.
Vous pouvez utiliser les classes de Theano de cette manière.
Recommended Posts