Время обработки увеличивается дольше и после каждой итерации (TensorFlow)

Я тренирую CNN с TensorFlow для применения медицинских изображений.

Поскольку у меня нет большого количества данных, я пытаюсь применить случайные модификации к моей тренировочной серии во время цикла обучения, чтобы искусственно увеличить набор учебных материалов. Я сделал следующую функцию в другом скрипте и назвал ее в моей учебной партии:

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 

Этот код хорошо работает для внесения изменений в мои изображения.

Проблема в :

После каждой итерации моей тренировочной петли (feedfoward + backpropagation), применение этой же функции к моей следующей тренировочной партии неуклонно занимает 5 секунд дольше, чем в последний раз.

Требуется около 1 секунды для обработки и занимает более минуты обработки после бит более 10 итераций.

Что вызывает это замедление? Как я могу это предотвратить?

(Я подозреваю что-то с distorted_image.eval() но я не совсем уверен. Каждый раз открываю новый сеанс? TensorFlow не должен автоматически закрывать сеанс, как я использую в блоке «с tf.Session ()» ?)

    Вы вызываете этот код на каждой итерации, поэтому каждую итерацию вы добавляете эти операции к графику. Вы не хотите этого делать. Вы хотите построить график в начале и в цикле тренировки только выполнить его. Кроме того, почему вам нужно снова преобразовать в ndimage, вместо того, чтобы вставлять вещи в ваш граф TF один раз и просто использовать тензоры на всем протяжении?

    Interesting Posts
    Давайте будем гением компьютера.