Прогнозирование модели тензорного потока, приводящее к утечке памяти (из памяти)

#tensorflow #image-processing #keras #tensorflow2.0

Вопрос:

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

 import tensorflow as tf BATCH_SIZE = 128  def configure_for_performance(ds):  ds = ds.batch(BATCH_SIZE)  ds = ds.prefetch(buffer_size=AUTOTUNE)  tf.keras.backend.clear_session()  return ds   def decode_img(img):  img = tf.io.decode_jpeg(img, channels=3)  img = tf.image.resize(img, [IMG_HEIGHT, IMG_WIDTH])  return img   def process_path(file_path):  img = tf.io.read_file(file_path)  img = decode_img(img)  return img  list_ds = tf.data.Dataset.list_files([filepath1,filepath2,...,filepathN],  shuffle=False)  files_list = list() for files in list_ds.as_numpy_iterator():  files_list.append(files.decode("utf-8"))  test_ds = list_ds.map(process_path, num_parallel_calls=AUTOTUNE) test_size = test_ds.cardinality().numpy() test_ds = configure_for_performance(test_ds) test_ds = test_ds.map(  lambda images: normalization_sequential_layer(images))  test_steps = test_size // BATCH_SIZE   1 score = tf.nn.softmax(model.predict(test_ds, steps=test_steps))   

Я запускаю его на машине с 32 ядрами и 64 ГБ оперативной памяти(без графического процессора), но процесс выполняется довольно долго, а затем завершается сообщением Killed , которое в ходе исследования я мог бы связать с проблемой нехватки оперативной памяти(утечка памяти происходит со временем, и через один момент она выходит из оперативной памяти). В ходе дальнейших исследований я вижу, что люди сталкиваются с проблемами ООМ , когда у них есть цикл for вокруг модели.предсказать, не уверен, что здесь может быть причиной.