Deep Java Library (DJL) เป็นเฟรมเวิร์กโอเพ่นซอร์สระดับสูงและเป็นเครื่องมือสำหรับการเรียนรู้อย่างลึกซึ้ง DJL ได้รับการออกแบบให้ง่ายต่อการเริ่มต้นและใช้งานง่ายสำหรับนักพัฒนา Java DJL มอบประสบการณ์การพัฒนา Java พื้นเมืองและฟังก์ชั่นเช่นห้องสมุด Java ทั่วไปอื่น ๆ
คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญด้านการเรียนรู้ของเครื่อง/การเรียนรู้อย่างลึกซึ้งเพื่อเริ่มต้น คุณสามารถใช้ความเชี่ยวชาญ Java ที่มีอยู่เป็นทางลาดเพื่อเรียนรู้และใช้การเรียนรู้ของเครื่องและการเรียนรู้อย่างลึกซึ้ง คุณสามารถใช้ IDE ที่คุณชื่นชอบในการสร้างฝึกอบรมและปรับใช้โมเดลของคุณ DJL ทำให้ง่ายต่อการรวมโมเดลเหล่านี้เข้ากับแอปพลิเคชัน Java ของคุณ
เนื่องจาก DJL เป็นผู้ไม่เชื่อเรื่องพระเจ้าการเรียนรู้อย่างลึกซึ้งคุณจึงไม่จำเป็นต้องเลือกระหว่างเครื่องยนต์เมื่อสร้างโครงการของคุณ คุณสามารถสลับเครื่องยนต์ได้ทุกจุด เพื่อให้แน่ใจว่าประสิทธิภาพที่ดีที่สุด DJL ยังมีตัวเลือก CPU/GPU อัตโนมัติตามการกำหนดค่าฮาร์ดแวร์
อินเทอร์เฟซ API ตามหลักสรีรศาสตร์ของ DJL ได้รับการออกแบบมาเพื่อแนะนำคุณด้วยแนวทางปฏิบัติที่ดีที่สุดในการทำงานการเรียนรู้อย่างลึกซึ้ง pseudocode ต่อไปนี้แสดงให้เห็นถึงการอนุมานการทำงาน:
// 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 ต่อไปนี้แสดงให้เห็นถึงการฝึกอบรมที่กำลังดำเนินอยู่:
// 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 มีการวางแผนสำหรับเดือนมกราคม 2568
ในการสร้างจากแหล่งที่มาเริ่มต้นด้วยการตรวจสอบรหัส เมื่อคุณตรวจสอบรหัสในเครื่องแล้วคุณสามารถสร้างได้ดังนี้โดยใช้ Gradle:
# for Linux/macOS:
./gradlew build
# for Windows:
gradlew buildในการเพิ่มความเร็วในการสร้างคุณสามารถใช้คำสั่งต่อไปนี้เพื่อข้ามการทดสอบหน่วย:
# for Linux/macOS:
./gradlew build -x test
# for Windows:
gradlew build -x testเพื่อนำเข้าโครงการแหล่งที่มาลงในคราส
# 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