مكتبة Deep Java (DJL) هي إطار Java مفتوح المصدر ، ومحرك ، ومحرك ، من أجل التعلم العميق. تم تصميم DJL ليكون من السهل البدء به وبسيط للاستخدام لمطوري Java. يوفر DJL تجربة تطوير Java الأصلية ووظائف مثل أي مكتبة Java العادية الأخرى.
ليس عليك أن تكون خبيرًا في التعلم الآلي/التعلم العميق للبدء. يمكنك استخدام خبرة Java الحالية الخاصة بك باعتبارها منحدرًا للتعلم واستخدام التعلم الآلي والتعلم العميق. يمكنك استخدام IDE المفضل لديك لبناء الطرز الخاصة بك وتدريبها ونشرها. يجعل DJL من السهل دمج هذه النماذج مع تطبيقات Java الخاصة بك.
نظرًا لأن DJL هو محرك التعلم العميق ، فلا يتعين عليك الاختيار بين المحركات عند إنشاء مشاريعك. يمكنك تبديل المحركات في أي وقت. لضمان أفضل أداء ، يوفر DJL أيضًا اختيار وحدة المعالجة المركزية/GPU التلقائية بناءً على تكوين الأجهزة.
تم تصميم واجهة 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 ، والمشكلات ، والمناقشات ، و RFCs لمعرفة أفضل طريقة لمشاركة المحتوى من مجتمع DJL والعثور عليه.
انضم إلى قناة Slack الخاصة بنا للتواصل مع فريق التطوير ، للأسئلة والمناقشات.
اتبع X (سابقًا Twitter) لمشاهدة تحديثات حول المحتوى والميزات والإصدارات الجديدة.
关注我们 知乎专栏 获取 djl 最新的内容!
هذا المشروع مرخص بموجب ترخيص Apache-2.0.