Deep Java Library (DJL) adalah kerangka kerja Java open-source, tingkat tinggi, mesin-agnostik untuk pembelajaran mendalam. DJL dirancang agar mudah dimulai dan mudah digunakan untuk pengembang Java. DJL memberikan pengalaman dan fungsi pengembangan Java asli seperti perpustakaan Java reguler lainnya.
Anda tidak harus menjadi ahli pembelajaran mesin/pembelajaran mendalam untuk memulai. Anda dapat menggunakan keahlian Java Anda yang ada sebagai on-ramp untuk belajar dan menggunakan pembelajaran mesin dan pembelajaran yang mendalam. Anda dapat menggunakan IDE favorit Anda untuk membangun, melatih, dan menggunakan model Anda. DJL memudahkan untuk mengintegrasikan model ini dengan aplikasi Java Anda.
Karena DJL adalah agnostik mesin pembelajaran yang mendalam, Anda tidak perlu membuat pilihan antara mesin saat membuat proyek Anda. Anda dapat mengganti mesin di titik mana pun. Untuk memastikan kinerja terbaik, DJL juga menyediakan pilihan CPU/GPU otomatis berdasarkan konfigurasi perangkat keras.
Antarmuka API ergonomis DJL dirancang untuk memandu Anda dengan praktik terbaik untuk menyelesaikan tugas pembelajaran yang mendalam. Pseudocode berikut menunjukkan inferensi menjalankan:
// 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
...
}Pseudocode berikut menunjukkan pelatihan lari:
// 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 ();Rilis DJL 0.32.0 direncanakan untuk Januari 2025.
Untuk membangun dari sumber, mulailah dengan memeriksa kode. Setelah Anda memeriksa kode secara lokal, Anda dapat membangunnya sebagai berikut menggunakan Gradle:
# for Linux/macOS:
./gradlew build
# for Windows:
gradlew buildUntuk meningkatkan kecepatan build, Anda dapat menggunakan perintah berikut untuk melewatkan tes unit:
# for Linux/macOS:
./gradlew build -x test
# for Windows:
gradlew build -x testuntuk mengimpor proyek sumber ke gerhana
# for Linux/macOS:
./gradlew eclipse
# for Windows:
gradlew eclipse
dalam gerhana
File-> Import-> Gradle-> Proyek Gradle yang ada
Catatan: Harap atur pengaturan pengkodean teks ruang kerja Anda ke UTF-8
Anda dapat membaca panduan kami untuk forum komunitas, mengikuti DJL, masalah, diskusi, dan RFC untuk mencari cara terbaik untuk berbagi dan menemukan konten dari komunitas DJL.
Bergabunglah dengan saluran Slack kami untuk menghubungi tim pengembangan, untuk pertanyaan dan diskusi.
Ikuti X kami (sebelumnya Twitter) untuk melihat pembaruan tentang konten baru, fitur, dan rilis.
关注我们 知乎专栏 获取 djl 最新的内容!
Proyek ini dilisensikan di bawah lisensi APACHE-2.0.