Подготовка данных для deeplearning4j

Я хочу предсказать классификации данных, которые имеют форму:

классификатор;текстовое описание

e.g.

  • автомобиль; транспортное средство с 4 колесами
  • дом; здание с крышей
  • мышь; серое животное, которое пугает мою мать

Я начал со следующего, но это привело меня к исключению числового формата

    RecordReader recordReader = new CSVRecordReader(1, ';');
    recordReader.initialize(new FileSplit(new File(csvFilePath)));

    DataSetIterator iterator = new RecordReaderDataSetIterator(recordReader,batchSize,labelIndex,numClasses);
    return iterator.next();

Очевидно, мне нужно сначала подготовить эти данные, чтобы создать числовое представление. Образцы DL4j основаны на уже подготовленных данных. Есть ли образец, который начинается с настройки, похожей на мою?


person tobi    schedule 13.04.2021    source источник


Ответы (1)


Обычно для этого вы используете нашу библиотеку ETL datavec. Я не уверен, где вы искали, но в примерах есть множество примеров предварительной обработки данных в формате csv, изображения и текста. Это зависит от того, что вы делаете.

Для CSV вы нашли правильную отправную точку. Это будет загружаться из каталога CSV. В нашем случае с одним из примеров, которые я цитирую:

 int numLinesToSkip = 0;
 char delimiter = ',';
  String localDataPath = DownloaderUtility.IRISDATA.Download();
RecordReader recordReader = new CSVRecordReader(numLinesToSkip,delimiter);
recordReader.initialize(new FileSplit(new File(localDataPath,"iris.txt")));
int labelIndex = 4;
int numClasses = 3;
DataSetIterator iteratorA = new RecordReaderDataSetIterator(recordReaderA,10,labelIndex,numClasses);
       

Это настроит средство чтения записей для анализа данных, вы инициализируете его, чтобы указать этому считывателю определенный файл или каталог (это данные, которые могут быть чем угодно)

Если вы хотите что-то более сложное, вы обычно либо вручную кодируете конвейер, либо используете процесс преобразования datavec.

Это действительно зависит от вашего варианта использования.

Что касается вашей конкретной проблемы с NumberFormatException, я не совсем уверен, что сказать.

Как любой из присутствующих здесь мог бы попросить, мне нужен полный контекст (трассировка стека, полное сообщение об ошибке, а не частичное описание, ..)

Продолжая то, что у меня есть, это, вероятно, потому, что вы бросаетесь словами или чем-то еще, что не является числом. Все машинное обучение включает в себя преобразование всего (неважно что) в числа. Я не хочу делать весь курс ML в 1 сообщении, но если вы можете быть более конкретным, я могу дать вам подсказки относительно того, что вам нужно сделать для вашего конкретного случая.

person Adam Gibson    schedule 13.04.2021