Bazı büyük resimleri önceden işlemek için tensorflow kullanıyorum. Hafızanın hızla çöktüğü bir problemim vardı. Python'da çoklu işlemeyi kullanmaya başladım, böylece bellek istediğimde tamamen boşalırdı.Tensorflow: Bir python çoklu işlemine bir oturumun geçmesi
Sorun şu ki, python'un çoklu işlem sıralarını kullanıyorum ve bilinmeyen nedenlerden dolayı tensorflow oturumumu ana işlemden çocuklara geçiremiyorum. Bazı gelişmiş hata ayıklama tekniklerinin kullanılması (yani, her birkaç satırda bir şey basmak) .Python'un oturumdan yararlandığım satırın içinde boşta kaldığını fark ettim, bir hata mesajı atmıyor.
def subprocess(some_image, sess, q):
with sess.as_default():
# ... use sess and q ...
print "All good and well" #This is printed
some_image.eval() #Nothing happens here in console
print "Still all good and well" #This is not printed
if __name__ == '__main__':
# ... some initial operations ...
some_image = read_some_image()
sess = tf.Session()
q = Queue()
q.put(something)
p = Process(target=subprocess, args=(some_image, sess, q))
p.start()
p.join()
Ne sorun olabilir:
Benim kod şöyle görünür? Çok teşekkürler!
çalıştırmak? – MrRed
Doğru hatırlıyorsam, çok işlemli havuzlarla istediğiniz şeyi yapabildim. İstediğim şey, birden fazla işlev çağrısı ile paylaşılan tek bir oturuma sahip olmaktı, ancak bunu yapamadım. Sonunda bellek kullanımını düşük tutmak için diğer yöntemleri tercih ettim – mathetes