Java 如何为带有YLO输出层的多任务学习网络准备数据集?

Java 如何为带有YLO输出层的多任务学习网络准备数据集?,java,yolo,deeplearning4j,dl4j,computation-graph,Java,Yolo,Deeplearning4j,Dl4j,Computation Graph,我有一个卷积神经网络,它有一个YLO输出层和多重回归输出层(我刚刚将额外的输出层映射到一个典型的YLO CNN),使用一个计算图。我遇到的问题是数据集,对于Yolo输出,我有pascal voc.xml文件,对于回归输出.csv文件,即 目标检测数据 InputSplit[] data = new FileSplit(image_dir, NativeImageLoader.ALLOWED_FORMATS, random).sample(path_filter, spli

我有一个卷积神经网络,它有一个YLO输出层和多重回归输出层(我刚刚将额外的输出层映射到一个典型的YLO CNN),使用一个计算图。我遇到的问题是数据集,对于Yolo输出,我有pascal voc
.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=...
 ...
回归数据

            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=...
 ...
我尝试从中实现多任务学习示例


如何通过数据预处理正确配置从
VocLabelProvider
馈送的记录读取器的输入,或者是否可以将
多数据集迭代器
包装在另一个数据集迭代器周围,即
.xml
对象检测和存储的两个数据集迭代器中的多数据集迭代器
.csv
回归文件

具体来说,我需要一个示例的帮助,该示例使用
ObjectDetectionRecordReader
和多个
RecordReader
实现了一个
MultiDataSeterator