'da Gpu belleğini kapatmayı nasıl çözebilirim? TensorFlow'da 2 konv katmanları ve tam conect katmanı olan MNIST demosunu çalıştırdım, '2.59GiB ayırmaya çalışırken anılarının tükendiği' mesajım var. , ama bu toplam bellek 4.69GiB olduğunu ve boş hafıza 3.22GiB olduğunu, 2.59GiB ile nasıl durabilir? Ve daha büyük ağ ile gpu belleği nasıl yönetebilirim? Sadece gpu belleğini en iyi şekilde nasıl kullanacağımı ve nasıl olduğunu bilmek istiyorum, bellek için nasıl ayrılacağını değil endişe ediyorumTensorFlow
cevap
Bununla ilgili değil. her şeyden önce, gpu'nuzu izleyerek ne zaman çalışacağını anlayabilirsiniz. Örneğin, bir nvidia gpu'nuz varsa bunu watch -n 1 nvidia-smi
komutuyla kontrol edebilirsiniz. Ancak çoğu durumda, gpu belleğinin maksimum bölümünü ayarlamadıysanız, neredeyse tüm boş belleği ayırır. senin sorunun gpu için yeterli hafıza eksikliği. CNN ağları tamamen ağırdır. Ağınızı beslemeye çalışırken, tüm verilerinizi YAPMAYIN. Düşük besleme boyutlarında bu besleme prosedürünü yapın.
Oldukça geniş bir ağım var (CNN + LSTM). Giriş verilerimin boyutu, batch_size = 5, (5x396x396) - bu bir 3D cilt. Yani oldukça küçük bir parti boyutu. 8GB RAM ile GTX 1070 üzerinde koşuyorum, ancak hala hafızam tükeniyor. Bildiğiniz herhangi bir geçici çözüm var mı? Geçici çözümlerin ana hatlarını veren herhangi bir eğitim var mı? –
Sadece toplu boyut nedeniyle olmayabilir. Giriş partileri yapmak için herhangi bir kuyruk kullanıyor musunuz ('tf.train.shuffle_batch' gibi)? Eğer varsa, sıranın kapasitesini kontrol edin. – Nandeesh
Bir GTX 970 üzerinde küçük bir CNN eğitimi yaparken bellek hatalarıyla karşılaşıyordum. Bir şekilde bir fluke ile, TensorFlow'un gerektiğinde (ön taraf yerine) GPU'ya bellek ayırmasını söylemenin tüm sorunlarımı çözdüğünü keşfettim . Bu aşağıdaki Python kodu kullanarak yapılabilir:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config = config)
Daha önce, TensorFlow ~ GPU belleğine% 90'ını ön tahsis edecek. Ancak, bilinmeyen bir nedenden ötürü, bu, ağın boyutunu artırdığımda daha sonra bellek hatalarıyla sonuçlanacaktır. Yukarıdaki kodu kullanarak, artık OOM hatalarım yok.
Bu, keras kullanıyorum bile betiğimde çalışır – Hong
TensorFlow, varsayılan olarak, tüm GPU'ların (CUDA_VISIBLE_DEVICES'ye tabi) GPU belleğinin neredeyse tamamını işleme alır. Bu, bellek parçalanmasını azaltarak cihazlar üzerindeki nispeten değerli GPU bellek kaynaklarını daha verimli bir şekilde kullanmak için yapılır.
TensorFlow, bunu kontrol etmek için Oturumda iki Yapılandırma seçeneği sunar.
config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config=config, ...)
ikinci yöntem toplam miktar kısmını belirler per_process_gpu_memory_fraction seçenektir:
ilk çalışma zamanı tahsisleri göre sadece çok grafik işlemcisi bellek ayırmaya çalışır allow_growth seçenektir Her görünür GPU'nun ayrılması gereken bellek. Örneğin, sadece her GPU toplam belleğin% 40 ayırmak TensorFlow söyleyebilir:
config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.4 session = tf.Session(config=config, ...)
- 1. TensorFlow
- 2. TensorFlow
- 3. TensorFlow
- 4. Tensorflow
- 5. TensorFlow
- 6. Tensorflow
- 7. TensorFlow
- 8. Tensorflow
- 9. TensorFlow
- 10. TensorFlow bağımlılıkları gerekli. TensorFlow, Windows'ta nasıl çalıştırılır
- 11. TensorFlow REST Frontend değil, TensorFlow Servisi
- 12. TensorFlow - Değişken
- 13. TensorFlow: GPU
- 14. Tensorflow ValueError:
- 15. Tensorflow quantization
- 16. Tensorflow öğreticisi
- 17. TensorFlow yükleme sonuçları ImportError: tensorflow adlı bir modül yok
- 18. Hala Python, Makine Öğrenmesi ve TensorFlow yeniyim TensorFlow tensör nesnesine
- 19. Tensorflow - Python: Kendi verilerimi TensorFlow ile nasıl kullanabilirim?
- 20. TensorFlow Hata Bulucu
- 21. Tensorflow için dağıtılmış derleme
- 22. Tensorflow için Önerilen GPU'lar
- 23. C++ tensorflow içinde kullanımı
- 24. TensorFlow özelliğine sahip "with_dependencies"
- 25. Tensorflow modellerinin bellekte saklanması
- 26. Tensorflow MNIST: 'std :: bad_alloc'
- 27. tensorflow indeksleme işini
- 28. Keras'ta Tensorflow Katmanlarını Kullanma
- 29. Tensorflow Tahmincisi API: Özetler
- 30. TensorFlow kullanarak metinle konuşma
Tekrarlama olabilir: //stackoverflow.com/questions/34199233/how-to-prevent-tensorflow-from-allocating-the-totality-of-a-gpu-memory) –
Daha önce gördüm, ama gpu belleği önceden ayırmak anlamına gelir, bellek eksik değil – Fangxin