Grafiklerin tensorflow'da nasıl çalıştığını ve bunlara nasıl erişileceğini anlamakta çok zorlanıyorum. Sezgim, 'grafikle' altındaki çizgilerin grafiği tek bir varlık olarak oluşturacak olmasıdır. Bu nedenle, örneklendiğinde bir grafik oluşturacak ve aşağıdaki gibi grafiği çalıştıracak bir işleve sahip olacak bir sınıf oluşturmaya karar verdim;Tensorflow: Bir sınıfta grafik oluşturma ve onu çalıştırma
class Graph(object):
#To build the graph when instantiated
def __init__(self, parameters):
self.graph = tf.Graph()
with self.graph.as_default():
...
prediction = ...
cost = ...
optimizer = ...
...
# To launch the graph
def launchG(self, inputs):
with tf.Session(graph=self.graph) as sess:
...
sess.run(optimizer, feed_dict)
loss = sess.run(cost, feed_dict)
...
return variables
sonraki adımlar çalıştırmak sonra grafiği oluşturmak için, sınıfa iletilecek parametreleri monte etmek ve bir ana dosya oluşturmak için vardır;
#Main file
...
parameters_dict = { 'n_input': 28, 'learnRate': 0.001, ... }
#Building graph
G = Graph(parameters_dict)
P = G.launchG(Input)
...
Bu benim için çok zariftir, ancak tam olarak çalışmıyor (açıkçası). Gerçekten de, launchG işlevlerinin grafikte tanımlanan düğümlere erişememesi gibi görünüyor;
---> 26 sess.run(optimizer, feed_dict)
NameError: name 'optimizer' is not defined
Belki çok sınırlıdır benim piton (ve tensorflow) anlayış, ama yaratılan grafikte (G) ile, bu grafikle oturumu çalıştıran bir argüman erişim vermek gerektiği gibi garip izlenime kapıldım açık erişim vermemi gerektirmeden, içindeki düğümlere.
Herhangi bir aydınlanma?