Я пытаюсь обучить модель FasterRCNN с помощью API обнаружения объектов.
У меня есть набор данных из 5 классов (грузовик, машина, фургон, лодка и мотоцикл), по 1000 изображений в каждом.Каждый класс имеет свой собственный файл TFrecord, разделенный на 10 частей.Это дает мне 50 файлов, которые выглядят примерно так:
- truck_train.record-00000-of-00010
- car_train.record-00000-of-00010
- van_train.record-00000-of-00010
- boat_train.record-00000-of-00010
- bike_train.record-00000-of-00010
Могу ли я настроить свой обучающий конвейер таким образом, чтобы Tensorflow открывал и перемешивал содержимое этих файлов случайным образом?
Я знаю, что мог бы просто заново сгенерировать файлы TFrecord с нуля и смешивать свои данные таким образом, ноЯ собираюсь добавить классы в мой набор данных, просто добавив файлы TFrecord, содержащие новый класс.
Прочитав этот старый ответ о перемешивании, мне интересно, есть ливстроенный способ, которым Tensorflow может реализовать очередь случайного воспроизведения, даже если это означает разделение моих файлов TFrecords на 100 осколков вместо 10.
Я использую модифицированный образец .config файла для FasterRCNNNно я представляю проблемыесли Tensorflow открывает только один файл .record за раз, поскольку каждый файл содержит только один класс.
Мне известно, что tf_record_input_reader может получить список файлов:
train_input_reader: {
tf_record_input_reader {
input_path: ["Datasets\train-1.record", "Datasets\train-2.record"]
}
Byувеличит размер читателей ввода shuffle buffer
и num_readers
, будет ли train.py иметь достаточную рандомизацию данных?