In deeplearning.net usw. wird Theano verwendet, um eine Klasse zu definieren, die gemeinsam genutzte Variablen und Ausdruckssymbole als Klassenvariablen enthält.
Lassen Sie uns das Verhalten dieser Klasse überprüfen.
Definieren Sie hier einfach eine Klasse mit einer gemeinsam genutzten Variablen und einem Ausdruckssymbol und versuchen Sie, die Klassenvariable zu verwenden.
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)
Ausgabeergebnis
array([ 5., 10., 15.])
Das Verhalten nach dem Definieren der Klasse ist etwas kompliziert. Fassen wir es also zusammen.
Ist es der Punkt oder die Ursache der Komplexität, dass die Beschreibung in der Klasse das Ausdruckssymbol enthält?
Ausdruckssymbole können nicht direkt aufgerufen werden, um ihre Werte zu überprüfen.
Es ist auch schwierig, das Verhalten zu verstehen, wenn Sie es nicht zu einer Funktion machen und einen konkreten Wert eingeben.
Sie können Theanos Klassen auf diese Weise verwenden.
Recommended Posts