Tıbbi görüntüler için TensorFlow ile bir CNN eğitimi alıyorum.Her iterasyondan sonra işlem süresi uzar ve uzar (TensorFlow)
Çok fazla veriye sahip olmadığımdan, eğitim veri kümemde eğitim veri kümemi yapay olarak artırmak için eğitim grubumda rastgele değişiklikler yapmaya çalışıyorum. Ben farklı bir komut dosyasında aşağıdaki işlevi yaptı ve benim eğitim toplu üzerine diyoruz:
def randomly_modify_training_batch(images_train_batch, batch_size):
for i in range(batch_size):
image = images_train_batch[i]
image_tensor = tf.convert_to_tensor(image)
distorted_image = tf.image.random_flip_left_right(image_tensor)
distorted_image = tf.image.random_flip_up_down(distorted_image)
distorted_image = tf.image.random_brightness(distorted_image, max_delta=60)
distorted_image = tf.image.random_contrast(distorted_image, lower=0.2, upper=1.8)
with tf.Session():
images_train_batch[i] = distorted_image.eval() # .eval() is used to reconvert the image from Tensor type to ndarray
return images_train_batch
kod benim resimlere değişiklikler uygulamak için iyi çalışır.
sorundur: benim eğitim döngü (feedfoward + geri iletme) her yineleme sonra
, sürekli son kez 5 saniyeden daha uzun sürer sonraki eğitim toplu aynı fonksiyonu uygulayarak.
10 iterasyondan biraz daha fazla bir işlemden sonra işlemek ve bir dakika boyunca işlem yapmak yaklaşık 1 saniye sürer.
Bu yavaşlamaya neden olan nedir? Nasıl önleyebilirim?
("distorted_image.eval()" ile bir şeyden şüpheleniyorum ama emin değilim. Her seferinde yeni bir oturum açıyor muyum? TensorFlow, "tf ile kullandığımda otomatik olarak oturumu kapatmamalı." .Session() "block?)
Olası kopyası [TensorFlow: girişlerde degradeler alınırken yavaş performans] (http://stackoverflow.com/questions/36245481/tensorflow-slow-performance-when-getting-gradients-at-inputs) – etarion