Deep Java Library (DJL)-это рамка с открытым исходным кодом, высокоуровневая, агрессивная рамка Java для глубокого обучения. DJL предназначен для того, чтобы быть простым в начале работы и простым в использовании для разработчиков Java. DJL предоставляет нативную Java Development Experience и функции, как и любая другая обычная библиотека Java.
Вам не нужно быть экспертом по машинному обучению/глубокому обучению, чтобы начать работу. Вы можете использовать свой существующий опыт Java в качестве набора для изучения и использования машинного обучения и глубокого обучения. Вы можете использовать свою любимую IDE для строительства, обучения и развертывания своих моделей. DJL позволяет легко интегрировать эти модели с вашими приложениями Java.
Поскольку DJL глубоко обучает агностик, вам не нужно делать выбор между двигателями при создании ваших проектов. Вы можете переключать двигатели в любой точке. Чтобы обеспечить наилучшую производительность, DJL также предоставляет автоматический выбор ЦП/графического процессора на основе конфигурации аппаратного обеспечения.
Эргономичный интерфейс API DJL предназначен для того, чтобы помочь вам с лучшими практиками для выполнения задач глубокого обучения. Следующий псевдокод демонстрирует выполнение вывода:
// Assume user uses a pre-trained model from model zoo, they just need to load it
Criteria < Image , Classifications > criteria =
Criteria . builder ()
. optApplication ( Application . CV . OBJECT_DETECTION ) // find object detection model
. setTypes ( Image . class , Classifications . class ) // define input and output
. optFilter ( "backbone" , "resnet50" ) // choose network architecture
. build ();
Image img = ImageFactory . getInstance (). fromUrl ( "http://..." ); // read image
try ( ZooModel < Image , Classifications > model = criteria . loadModel ();
Predictor < Image , Classifications > predictor = model . newPredictor ()) {
Classifications result = predictor . predict ( img );
// get the classification and probability
...
}Следующий псевдокод демонстрирует управление обучением:
// Construct your neural network with built-in blocks
Block block = new Mlp ( 28 * 28 , 10 , new int [] { 128 , 64 });
Model model = Model . newInstance ( "mlp" ); // Create an empty model
model . setBlock ( block ); // set neural network to model
// Get training and validation dataset (MNIST dataset)
Dataset trainingSet = new Mnist . Builder (). setUsage ( Usage . TRAIN ) ... . build ();
Dataset validateSet = new Mnist . Builder (). setUsage ( Usage . TEST ) ... . build ();
// Setup training configurations, such as Initializer, Optimizer, Loss ...
TrainingConfig config = setupTrainingConfig ();
Trainer trainer = model . newTrainer ( config );
/*
* Configure input shape based on dataset to initialize the trainer.
* 1st axis is batch axis, we can use 1 for initialization.
* MNIST is 28x28 grayscale image and pre processed into 28 * 28 NDArray.
*/
trainer . initialize ( new Shape ( 1 , 28 * 28 ));
EasyTrain . fit ( trainer , epoch , trainingSet , validateSet );
// Save the model
model . save ( modelDir , "mlp" );
// Close the resources
trainer . close ();
model . close ();Выпуск DJL 0,32,0 запланирован на январь 2025 года.
Чтобы построить из источника, начните с проверки кода. После того, как вы проверили код локально, вы можете создать его следующим образом, используя Gradle:
# for Linux/macOS:
./gradlew build
# for Windows:
gradlew buildЧтобы увеличить скорость сборки, вы можете использовать следующую команду для пропуска модульных тестов:
# for Linux/macOS:
./gradlew build -x test
# for Windows:
gradlew build -x testЧтобы импортировать источник проекта в Eclipse
# for Linux/macOS:
./gradlew eclipse
# for Windows:
gradlew eclipse
в затмении
File-> Import-> Gradle-> существующий проект Gradle
Примечание. Установите настройку кодирования текста рабочей области в UTF-8
Вы можете прочитать наше руководство по форумам сообщества, после DJL, проблем, дискуссий и RFC, чтобы выяснить лучший способ поделиться и найти контент от сообщества DJL.
Присоединяйтесь к нашему каналу Slack, чтобы связаться с командой разработчиков, по вопросам и обсуждениям.
Следите за нашим X (ранее Twitter), чтобы увидеть обновления о новом контенте, функциях и выпусках.
关注我们 知乎专栏 获取 DJL 最新的内容!
Этот проект лицензирован по лицензии Apache-2.0.