У меня есть сверточная нейронная сеть с выходным слоем Yolo и выходными слоями с множественной регрессией (я только что сопоставил дополнительные выходные слои с типичным CNN Yolo), используя график вычислений. У меня проблема с набором данных, для выходных данных Yolo у меня есть файлы pascal -vo c .xml
и для выходных данных регрессии .csv
файлы, т.е.
ДАННЫЕ ОБНАРУЖЕНИЯ ОБЪЕКТА
InputSplit[] data = new FileSplit(image_dir, NativeImageLoader.ALLOWED_FORMATS, random).sample(path_filter, split_weight0,split_weight1);
InputSplit trainData = data[0];
InputSplit testData = data[1];
ObjectDetectionRecordReader recordReaderTrain = new ObjectDetectionRecordReader(height, width, nChannels,gridH, gridW, new VocLabelProvider(DIR));
ObjectDetectionRecordReader recordReaderTest = new ObjectDetectionRecordReader(height, width, nChannels,gridH, gridW, new VocLabelProvider(DIR));
recordReaderTrain.initialize(trainData);
recordReaderTest.initialize(testData);
//commented out since MultiDataSetIterator is meant to be used instead
//RecordReaderDataSetIterator train = new RecordReaderDataSetIterator(recordReaderTrain, batchSize, 1, 1, true);
//RecordReaderDataSetIterator test = new RecordReaderDataSetIterator(recordReaderTest, 1, 1, 1, true);
//train.setPreProcessor(new ImagePreProcessingScaler(0, 1));
//test.setPreProcessor(new ImagePreProcessingScaler(0, 1));
РЕГРЕССИОННЫЕ ДАННЫЕ
RecordReader r0= new CSVRecordReader(',');
r0.initialize(new FileSplit(new File( DIR+"/r0.csv")));
RecordReader r1=...
...
Я пытался реализовать пример многозадачного обучения из RecordReaderMultiDataSetIterator Пример 2
MultiDataSetIterator train = new RecordReaderMultiDataSetIterator.Builder(batchSize)
.addReader("rr", recordReaderTrain)
.addReader("r0", r0)
.addInput("???")//recordReaderTrain.getInputImagesData() ?
.addOutput("rr")//recordReaderTrain.getVocLabelData() ?
.addOutput("r0")
.addOutput("r1")
... //addOutput -> r2,r3,...
.build();
Как правильно настроить вход из считывателя записей, который передает данные из VocLabelProvider
, с предварительной обработкой данных или можно обернуть MultiDataSetIterator
вокруг другого итератора набора данных, то есть итератора множества данных из двух наборов данных итераторы из .xml
файлов обнаружения объектов и .csv
файлов регрессии