У меня есть данные изображения в одном каталоге и текстовый файл с соответствующими метками.
train_dataset = tf.data.Dataset.list_files('gdrive/My Drive/ML/Projects/CSGO_aim/images' + '/*.jpg')
train_dataset = train_dataset.map(load_image_train, num_parallel_calls=tf.data.experimental.AUTOTUNE)
train_dataset = train_dataset.shuffle(BUFFER_SIZE)
train_dataset = train_dataset.batch(BATCH_SIZE)
Всякий раз, когда я пытаюсь распечатать аргумент функции load_image_train
, я получаю DatasetV1Adapter
объект, когда я на самом деле ожидаю строку, содержащую имя файла. line_no
должно быть именем файла, которое я затем сравниваю с файлом меток, чтобы получить метку для соответствующего файла изображения. Однако, похоже, что функция load_image_train
вызывается только один раз.
def load_image_train(image_file):
line_no = 'images\\' + str(image_file).split('/')[-1]
bounds = []
fr = open('gdrive/My Drive/ML/Projects/CSGO_aim/train.txt', 'r')
for i, line in enumerate(fr):
if line.split()[0] == str(line_no):
bounds = line
input_image = load(image_file)
input_image = resize(input_image, IMG_WIDTH, IMG_HEIGHT)
input_image = normalize(input_image)
return input_image, bounds
Как загрузить метки, которые находятся в файле .txt, в файл tf.data.dataset?