Повторное использование нормализатора в ND4J/DL4J

Интересно, как правильно повторно использовать нормализатор в ND4J/DL4J. В настоящее время я сохраняю это следующим образом:

final DataNormalization normalizer = new NormalizerStandardize();
normalizer.fit( trainingData );
normalizer.transform( trainingData );
normalizer.transform( testData );

try {
    final NormalizerSerializer normalizerSerializer = new NormalizerSerializer();
    normalizerSerializer.addStrategy( new StandardizeSerializerStrategy() );
    normalizerSerializer.write( normalizer, path );
} catch ( final IOException e ) {
    // ...
}

И загрузите его через:

try {
    final NormalizerSerializer normalizerSerializer = new NormalizerSerializer();
    normalizerSerializer.addStrategy( new StandardizeSerializerStrategy() );
    final DataNormalization normalizer = normalizerSerializer.restore( path );
} catch ( final Exception e ) { // Throws Exception instead of IOException.
    // ...
}

Это нормально? К сожалению, я не смог найти больше информации в документации.


person beatngu13    schedule 26.07.2017    source источник


Ответы (1)


Это то, что я делаю...

DataNormalization normalizer = new NormaizerStandardize();
normalizer.fit(trainingData);
normalizer.transform(trainingData);

сохрани это

NormalizerSerializer saver = NormalizerSerializer.getDefaults();
File normalsFile = new File("fileName");
saver.write(normalizer,normalsFile);

восстановить его

NormalizerSerializer loader = NormalizerSerializer.getDefaults();
DataNormalization restoredNormalizer = loader.restore(normalsFile);
restoredNormalizer.transform(testData);

В ND4J Java Docs говорится, что .getDefaults() получает сериализатор, настроенный со стратегиями для встроенных реализаций нормализатора. Поскольку вы используете NormalizerStandardize, getDefaults() предлагает сокращенный способ достижения той же цели без явного добавления стратегии.

person dawelton    schedule 28.11.2017
comment
Отличается от меня, но выглядит хорошо. Вы не знаете, есть ли что-нибудь задокументированное по этому поводу? - person beatngu13; 15.12.2017