Время обработки увеличивается дольше и после каждой итерации (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 ()» ?)

One Solution collect form web for “Время обработки увеличивается дольше и после каждой итерации (TensorFlow)”

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

Interesting Posts

Linux keylogger без root или sudo! Это реально?

Запуск команд оболочки, хотя java-код на Android?

html5 новых элементов (заголовок, nav, footer, ..) не работает в IE

OpenCv 2.3 C – Как изолировать объект внутри изображения

Почему вывод std :: cout полностью исчезает после отправки NULL

Chrome. Откройте отдельные окна браузера, каждый в режиме инкогнито, которые не обмениваются данными между

Пропустить обновление W8 Pro до W10 и установить W10 и использовать ключ от W8 Pro?

Как изменить тайм-аут подключения по умолчанию в Chrome?

Как заполнить данные в JTable с помощью базы данных?

Получить значение свойства из строки, используя reflection в C #

TypeScript «эта» проблема определения при вызове в обратном вызове jquery

Сканирование Brother 8880DN

R-Project не применимый метод для «мета», применяемый к объекту classа «характер»,

Что такое терминал (shell) по умолчанию для Xubuntu?

Свойство «Id» является частью ключевой информации объекта и не может быть изменено

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