У меня есть несколько файлов TFRecord и в каждом изображение с меткой (в файле есть метки микширования). Я пытаюсь создать генератор, который загружает, перемешивает и возвращает batch_image и соответствующий batch_label.
q1) Как получить имена текущих файлов, которые (файлы name od dataset)? q2) Генератор не запускает все файлы. Что не так?
def tfrecord_gen(path_to_folder, num_parallel_calls=4, batch_size=32, buffer_size=10240):
enter code here
tfrecord_files = glob(os.path.join(path_to_folder, "*.tfrecord"))
np.random.shuffle(tfrecord_files)
shards = tf.data.Dataset.from_tensor_slices(tfrecord_files)
dataset = shards.interleave(tf.data.TFRecordDataset,
cycle_length=4, block_length=10)
dataset = dataset.shuffle(buffer_size)
dataset = dataset.map(parse_tfrecord, num_parallel_calls)
dataset = dataset.repeat()
dataset = dataset.batch(batch_size).prefetch()
iterator = iter(dataset)
while True:
images_batch, labels_batch = next(iterator)
labels_batch = to_categorical(labels_batch)
yield images_batch, labels_batch
model_history = clf.fit_generator(tfrecordGen(
path_to_folder=r"D:\CNN_workspace\data\train",
is_train=True,
batch_size=32,
num_parallel_calls=1,
buffer_size=5*32
),
steps_per_epoch=10
)