Esegui un modello di deep learning in Java: una rapida introduzione

Siamo entusiasti di annunciare la Deep Java Library (DJL), una libreria open source per sviluppare, addestrare ed eseguire modelli di deep learning in Java utilizzando API intuitive e di alto livello. Se sei un utente Java interessato all'apprendimento del deep learning, DJL è un ottimo modo per iniziare ad imparare. Se sei uno sviluppatore Java che lavora con modelli di deep learning, DJL semplificherà il modo in cui ti alleni ed esegui le previsioni. In questo post, mostreremo come eseguire una previsione con un modello di apprendimento profondo pre-addestrato in pochi minuti.

Prima di iniziare a scrivere codice, vogliamo condividere la nostra motivazione per la creazione di questa libreria. Esaminando il panorama del deep learning, abbiamo riscontrato un'abbondanza di risorse per gli utenti di Python. Ad esempio, NumPy per l'analisi dei dati; Matplotlib per le visualizzazioni; framework come MXNet, PyTorch, TensorFlow e molti altri. Ma ci sono pochissime risorse per gli utenti Java, anche se è il linguaggio più diffuso nelle aziende. Ci siamo prefissati l'obiettivo di fornire a milioni di utenti Java strumenti open source per addestrare e servire modelli di deep learning in un linguaggio con cui hanno già familiarità.

DJL è costruito con concetti Java nativi sopra i framework di deep learning esistenti. Offre agli utenti l'accesso alle ultime innovazioni nel deep learning e la capacità di lavorare con hardware all'avanguardia. Le semplici API astraggono la complessità coinvolta nello sviluppo di modelli di deep learning, rendendoli facili da apprendere e facili da applicare. Con il set in bundle di modelli pre-addestrati in model-zoo, gli utenti possono iniziare immediatamente a integrare il deep learning nelle loro applicazioni Java.

AWS

* Altri framework attualmente non supportati.

Il deep learning sta penetrando nelle aziende attraverso una varietà di casi d'uso. Nella vendita al dettaglio, viene utilizzato per prevedere la domanda dei clienti e analizzare le interazioni dei clienti con i chatbot. Nell'industria automobilistica, viene utilizzato per guidare veicoli autonomi e trovare difetti di qualità nella produzione. E nel settore dello sport, sta cambiando il modo in cui si gioca con coaching in tempo reale e approfondimenti sull'allenamento. Immagina di poter modellare le mosse dei tuoi avversari o determinare come posizionare la tua squadra utilizzando modelli di deep learning. Puoi scoprire in che modo i Seattle Seahawks utilizzano il deep learning per informare la strategia di gioco e accelerare il processo decisionale in questo articolo.

In questo post condividiamo un esempio che ha colpito i tifosi di calcio della nostra squadra. Dimostriamo un modello di rilevamento delle obiezioni che identifica i giocatori da un'immagine utilizzando un modello di rivelatore a scatto singolo pre-addestrato dal modello zoo di DJL. Puoi eseguire questo esempio sia in Linux che in macOS.

Per utilizzare DJL con un progetto applicativo, crea un progetto gradle con IntelliJ IDEA e aggiungi quanto segue alla tua configurazione build.gradle.

AWS

Nota: le dipendenze di runtime per MXNet sono diverse per gli ambienti Linux e macOS. Fare riferimento alla  documentazione di GitHub .

Usiamo questa immagine di calcio per il rilevamento.

AWS

Eseguiamo la previsione con il blocco di codice condiviso di seguito. Questo codice carica un modello SSD dal model-zoo, crea un  Predictor modello dal modello e usa la  predict funzione per identificare gli oggetti nell'immagine. Una funzione di utilità di supporto definisce quindi i riquadri di delimitazione attorno agli oggetti rilevati.

AWS

Questo codice identifica i tre giocatori nell'immagine e salva il risultato come ssd.png nella directory di lavoro.

AWS

Questo codice e libreria possono essere facilmente adattati per testare ed eseguire altri modelli da model-zoo. Ma il divertimento non finisce qui! È possibile utilizzare il modello di risposta alle domande per addestrare il proprio assistente di testo o il modello di classificazione delle immagini per identificare gli oggetti sullo scaffale della drogheria e molti altri. Visita il nostro repository GitHub per ulteriori esempi.

In questo post abbiamo presentato DJL, il nostro modesto sforzo per offrire agli utenti Java la più recente e migliore esperienza di sviluppo del deep learning. Abbiamo dimostrato come DJL può rilevare oggetti dalle immagini in pochi minuti con il nostro modello pre-addestrato. Forniamo molti altri esempi e documentazione aggiuntiva sul repository DJL GitHub.

Accogliamo con favore la partecipazione della comunità al nostro viaggio. Vai al nostro repository Github e unisciti al nostro canale slack per iniziare.