Подготовка данных для углубления4j

#deeplearning4j

Вопрос:

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

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

напр.

  • автомобиль;транспортное средство с 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 основаны на уже подготовленных данных.
Есть ли образец, который начинается с настройки, аналогичной моей?

Ответ №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 пост, но если вы можете быть более конкретными, я могу дать вам советы о том, что вам нужно сделать для вашего конкретного случая.