:Neden TensorFlow tf.Graph'a ihtiyacımız var? amacını nedir
with tf.Graph().as_default()
Yukarıda kullanan bazı tensorflow kodu var. Ancak, kodun sadece bir grafiği var, neden buna ihtiyacımız var?
:Neden TensorFlow tf.Graph'a ihtiyacımız var? amacını nedir
with tf.Graph().as_default()
Yukarıda kullanan bazı tensorflow kodu var. Ancak, kodun sadece bir grafiği var, neden buna ihtiyacımız var?
TL; DR: Gereksizdir, ancak takip edilmesi iyi bir uygulamadır.
Varsayılan bir grafik her zaman kayıtlı olduğundan, her op ve değişken varsayılan grafiğe yerleştirilir. Ancak bu ifade, yeni bir grafik oluşturur ve bu grafikte herşeyi (kapsamı içinde beyan edilen) yerleştirir. Grafik tek grafik ise, işe yaramaz. Ama bu iyi bir uygulamadır çünkü birçok grafikle çalışmaya başlarsanız, ops ve vars'ın yerleştirildiği yeri anlamak daha kolaydır. Bu ifade hiçbir şeyden ödün vermediğinden, yine de yazmak daha iyidir. Gelecekte kodu yeniden düzenlerseniz, tanımlanan işlemlerin başlangıçta seçtiğiniz grafiğe ait olduğundan emin olmak için.
Oluşturduğunuz her işlem için açık bir şekilde grafik belirtmeniz gereken zamana ait bir eserdir.
Birden fazla grafik ihtiyaç için herhangi zorlayıcı durumlarda görmedim, bu yüzden
Bazı FRİKİKLERİNDEN dosyayı temizlemeyi istediğinizde genellikle uzakta örtülü grafiği tutmak ve tf.reset_default_graph()
kullanarak alabilirsiniz:
tf.reset_default_graph()
aramadan önce oturum oluşturursanız birden çok iş parçacığı yerel, yani oluşturarak ops, çoklu grafikleri oturum onun grafiğin (sess.graph
) bir kolu tutan içinde çalıştırılabilir hale anlamına gelir belirli bir (yani başka bir iş parçacığı tf.get_default_graph()
veya sess.graph
itibaren) aşağıdaki gibi varsayılan grafikler:
self.graph_context = graph.as_default() # save it to some variable that won't get gc'ed
self.graph_context.enforce_nesting = False
self.graph_context.__enter__()
İki ayrı Tensorflow modelini geri yüklemeniz gerektiğinde iki grafiğe ihtiyacınız var mı? – user1700890