java開源網站(完全基於)

本文適合有 Java 基礎的人群作者:DJL-LankingHelloGitHub 推出的《講解開源項目》系列。有幸邀請到瞭亞馬遜 + Apache 的工程師:Lanking,為我們講解 DJL —— 完全由 Java 構建的深度學習平臺。介紹許多年以來,一直都沒有為 Java 量身定制的深度學習開發平臺。用戶必須要進行繁雜的項目配置,構建 class 才能最終打造出屬於 Java 的深度學習應用。在那之後,依舊要面臨著依賴項匹配維護等各種麻煩的問題。為瞭解決這個這個痛點,亞馬遜開源瞭 Deep Java Library (DJL)項目地址:https://github.com/awslabs/djl/官網:https://djl.ai/一個完全使用 Java 構建的深度學習平臺。DJL 的開發者們也為它量身定制瞭各種有意思的運行環境,用戶隻需要少量配置,甚至直接在線就可以在 Java 上運行深度學習應用。為瞭簡化 Java 開發人員在深度學習上的痛點,我們推出瞭 DJL 未來實驗室計劃:致力於打造一個極簡的 Java 運行環境,創造屬於 Java 自己的深度學習工具箱。你可以輕松在線使用,或者離線使用它們來構建你的深度學習應用。我們的目標是,將深度學習更好的貼近 Java 開發者。下面將介紹能夠讓你快速上手 DJL 的在線嘗試地址或工具。在線編譯:Block Runner在線嘗試:https://djl.ai/website/demo.htmlBlock Runner 設計十分簡單,它可以直接幫助你在線編譯 Java 深度學習代碼。如上所示,你隻需點擊 Run 就可以執行這些代碼。我們提供瞭多種深度學習引擎供你選擇。你可以輕松的在上面完成簡單的深度學習運算以及推理任務。當你在構建完成之後,直接點擊 Get Template 就可以獲得一份直接在本地就能運行的 gradle 項目。所有的環境都已經配置好瞭,用編輯器打開就可以跑簡單舉一個例子,如下是使用 Apache MXNet 模型構建的一份圖片分類應用代碼,你可以直接復制到在線編輯器:import ai.djl.inference.*;
import ai.djl.modality.*;
import ai.djl.modality.cv.*;
import ai.djl.modality.cv.transform.*;
import ai.djl.modality.cv.translator.*;
import ai.djl.repository.zoo.*;
import ai.djl.translate.*;

String modelUrl = "https://alpha-djl-demos.s3.amazonaws.com/model/djl-blockrunner/mxnet_resnet18.zip?model_name=resnet18_v1";
Criteria<Image, Classifications> criteria = Criteria.builder()
    .setTypes(Image.class, Classifications.class)
    .optModelUrls(modelUrl)
    .optTranslator(ImageClassificationTranslator.builder()
            .addTransform(new Resize(224, 224))
            .addTransform(new ToTensor())
            .optApplySoftmax(true).build())
    .build();
ZooModel<Image, Classifications> model = ModelZoo.loadModel(criteria);
Predictor<Image, Classifications> predictor = model.newPredictor();
String imageURL = "https://raw.githubusercontent.com/awslabs/djl/master/examples/src/test/resources/kitten.jpg";
Image image = ImageFactory.getInstance().fromUrl(imageURL);
predictor.predict(image);在運行後,你會獲得如下結果:[
    class: "n02123045 tabby, tabby cat", probability: 0.41073
    class: "n02124075 Egyptian cat", probability: 0.29393
    class: "n02123159 tiger cat", probability: 0.19337
    class: "n02123394 Persian cat", probability: 0.04586
    class: "n02127052 lynx, catamount", probability: 0.00911
]最後,你可以直接點擊 Get Template 在本地運行。是不是很簡單!現在這個組建支持 Apache MXNet/PyTorch/TensorFlow 三個後端引擎,後續還會增加更多的支持。實現層面上,我們使用瞭 CodeMirror 在線編輯器以及 SpringBoot 進行後端托管。想瞭解更多,歡迎參閱實現代碼 。在線終端工具:JShell在線嘗試:https://djl.ai/website/demo.html#jshellJShell 是一個 JShell 的改版,包含瞭 DJL 的特性。你可以直接集成已有的 Java 功能和 DJL 的 class 在線使用。我們為 JShell 提前準備瞭下面的引入:import ai.djl.ndarray.NDManager;
import ai.djl.ndarray.NDArray;
import ai.djl.ndarray.types.Shape;
import ai.djl.ndarray.index.NDIndex;
NDManager manager = NDManager.newBaseManager();後端是基於 SpringBoot 的 server 架構,前端使用瞭 xtermjs。目前這個命令行支持如下操作:backspace刪除輸入<- 和 -> 移動光標復制/粘貼代碼功能輸入clear進行清屏操作通過網頁中提供的幾種簡單案例,你可以輕松使用 NDArray 來完成你所需要的功能。想瞭解我們是如何構建這個 JShell 應用的,請看實現代碼 。Java 版的 Jupyter Notebook地址:https://github.com/awslabs/djl/tree/master/jupyter什麼?Jupyter Notebook?我們難道說的不是 Python?不!100% 純 Java11。通過 Spencer Park’s IJava 項目 啟發, 我們將 DJL 集成在瞭 Jupyter Notebook 裡面。不需要繁雜的配置,直接啟動就能用。我們準備瞭一系列使用 Jupyter Notebook 構建的 Java 深度學習訓練以及推理應用 Notebook。想瞭解更多就點擊這裡吧。Java 版本的 Notebook 可以基本實現所有 Jupyter 在 Python 上的特性:支持每個代碼塊獨立運行展示一張圖片利用 Tablesaw 展示一個圖表相比於 Python,Java 的 Notebook 可以直接引入 Maven 的庫,這樣用戶就無需擔心項目配置等問題。同時這個 Notebook 也支持在 GPU 環境下運行,你可以輕松使用 Notebook 進行深度學習訓練任務。通過下面幾個 Notebook 可以幫助你快速瞭解 DJL 的用法以及新特性:使用 ModelZoo 進行目標檢測加載 PyTorch 預訓練模型加載 Apache MXNet 預訓練模型遷移學習案例問答系統案例P.S:我們甚至還準備瞭基於 Java 的深度學習書,現在還處於預覽版階段,敬請期待。關於 DJL 以及未來實驗室計劃DJL 還是一個很年輕的框架,2019 年底發佈,2020 年 3 月才真正支持瞭所有主流的深度學習框架 (TensorFlow、PyTorch MXNet)。你可以輕松的使用 DJL 來訓練以及部署你的深度學習模型。它也包含瞭 70 多種來自 GluonCV、HuggingFace、TorchHub 以及 Keras 的預訓練模型。關於未來實驗室:我們仍舊還有很多功能處於開發階段,需要大量小夥伴去參與並且體驗我們的新功能。下面是幾個正在進行中的項目:D2L – Java:為《動手學深度學習》 打造一本 Java 版本的書DJL NLP WordEmbedding:為 DJL 提供更多 word embedding 的接口

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/49015.html

kuaisubeian