DEEP Java Library (DJL)는 딥 러닝을위한 오픈 소스, 고급 엔진 공유 자바 프레임 워크입니다. DJL은 시작하기 쉽고 Java 개발자에게 사용하기 쉽도록 설계되었습니다. DJL은 다른 일반 Java 라이브러리와 같은 기본 Java 개발 경험과 기능을 제공합니다.
시작하기 위해 머신 러닝/딥 러닝 전문가 일 필요는 없습니다. 기존의 Java 전문 지식을 기계 학습 및 딥 러닝을 배우고 사용하기 위해 램프로 사용할 수 있습니다. 좋아하는 IDE를 사용하여 모델을 구축, 훈련 및 배포 할 수 있습니다. DJL을 사용하면 이러한 모델을 Java 응용 프로그램과 쉽게 통합 할 수 있습니다.
DJL은 딥 러닝 엔진이 불가지론이므로 프로젝트를 만들 때 엔진 중에서 선택할 필요가 없습니다. 언제든지 엔진을 전환 할 수 있습니다. 최상의 성능을 보장하기 위해 DJL은 하드웨어 구성을 기반으로 자동 CPU/GPU 선택을 제공합니다.
DJL의 인체 공학적 API 인터페이스는 딥 러닝 작업을 수행하기위한 모범 사례를 안내하도록 설계되었습니다. 다음 유사 코드는 실행되는 추론을 보여줍니다.
// 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 년 1 월에 계획되어 있습니다.
소스에서 빌드하려면 코드를 확인하여 시작하십시오. 로컬로 코드를 체크 아웃하면 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
일식에서
파일-> import-> gradle-> 기존 Gradle 프로젝트
참고 : 작업 공간 텍스트 인코딩 설정을 UTF-8로 설정하십시오.
DJL, 문제, 토론 및 RFC에 따라 커뮤니티 포럼에 대한 가이드를 읽고 DJL 커뮤니티에서 컨텐츠를 공유하고 찾는 가장 좋은 방법을 파악할 수 있습니다.
질문 및 토론을 위해 Slack 채널에 가입하여 개발 팀과 연락하십시오.
X (이전의 Twitter)를 따라 새로운 컨텐츠, 기능 및 릴리스에 대한 업데이트를 확인하십시오.
关注我们 关注我们 获取 获取 DJL 最新的内容!
이 프로젝트는 Apache-2.0 라이센스에 따라 라이센스가 부여됩니다.