Eclipse Deeplearning4J (DL4J) 生態系統是一組旨在支援基於 JVM 的深度學習應用程式的所有需求的專案。這意味著從原始資料開始,從任何地方、任何格式載入和預處理它,以建立和調整各種簡單和複雜的深度學習網路。
由於 Deeplearning4J 在 JVM 上運行,因此您可以將其與 Java 之外的各種基於 JVM 的語言一起使用,例如 Scala、Kotlin、Clojure 等。
DL4J 堆疊包括:
- DL4J :用於建立具有各種層(包括自訂層)的多層網路和計算圖的高階 API。支援從 h5 導入 Keras 模型,包括 tf.keras 模型(自 1.0.0-beta7 起),也支援 Apache Spark 上的分散式訓練
- ND4J :通用線性代數庫,包含 500 多個數學、線性代數和深度學習運算。 ND4J 基於高度最佳化的 C++ 程式碼庫 LibND4J,透過 OpenBLAS、OneDNN (MKL-DNN)、cuDNN、cuBLAS 等程式庫提供 CPU (AVX2/512) 和 GPU (CUDA) 支援和加速
- SameDiff :SameDiff 是 ND4J 函式庫的一部分,是我們的自動微分/深度學習框架。 SameDiff 使用基於圖(定義然後運行)的方法,類似於 TensorFlow 圖模式。計劃執行 Eager graph (TensorFlow 2.x eager/PyTorch)。 SameDiff 支援匯入 TensorFlow 凍結模型格式 .pb(protobuf)模型。計畫導入 ONNX、TensorFlow SavedModel 和 Keras 模型。 Deeplearning4j 還具有完整的 SameDiff 支持,可輕鬆編寫自訂層和損失函數。
- DataVec :用於各種格式和檔案(HDFS、Spark、影像、視訊、音訊、CSV、Excel 等)的機器學習資料的 ETL
- LibND4J :支撐一切的 C++ 函式庫。有關 JVM 如何存取本機數組和操作的更多信息,請參閱 JavaCPP
- Python4J :JVM 的捆綁 cpython 執行
DL4J生態系中的所有專案都支援Windows、Linux和macOS。硬體支援包括 CUDA GPU(10.0、10.1、10.2,OSX 除外)、x86 CPU(x86_64、avx2、avx512)、ARM CPU(arm、arm64、armhf)和 PowerPC(ppc64le)。
社區支持
如需對此專案的支持,請造訪 https://community.konduit.ai/
在您的專案中使用 Eclipse Deeplearning4J
Deeplearning4J 有相當多的依賴項。因此,我們僅支援使用建置工具。
< dependencies >
< dependency >
< groupId >org.deeplearning4j</ groupId >
< artifactId >deeplearning4j-core</ artifactId >
< version >1.0.0-M2.1</ version >
</ dependency >
< dependency >
< groupId >org.nd4j</ groupId >
< artifactId >nd4j-native-platform</ artifactId >
< version >1.0.0-M2.1</ version >
</ dependency >
</ dependencies >
將這些依賴項新增至您的 pom.xml 檔案中,以將 Deeplearning4J 與 CPU 後端結合使用。如果您想從頭開始一個新的 Maven 項目,則範例儲存庫中提供了完整的獨立項目範例。
程式碼範例
由於 DL4J 是一個多方面的項目,在 mono 儲存庫中包含多個模組,因此我們建議查看範例以了解不同模組的不同用法。下面我們將連結到每個模組的範例。
- ND4J:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/nd4j-ndarray-examples
- DL4J:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/dl4j-examples
- Samediff:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/samediff-examples
- Datavec:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/data-pipeline-examples
- Python4j:https://deeplearning4j.konduit.ai/python4j/tutorials/quickstart
對於希望能夠從其他框架運行模型的用戶,請參閱:
- Onnx:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/onnx-import-examples
- Tensorflow/Keras:https://github.com/deeplearning4j/deeplearning4j-examples/tree/master/tensorflow-keras-import-examples
文件、指南和教程
您可以在 http://deeplearning4j.konduit.ai/ 找到 Deeplearning4J 及其生態系統其他庫的官方文件。
想要一些例子嗎?
我們有單獨的儲存庫,其中包含各種可用範例:https://github.com/eclipse/deeplearning4j-examples
從源頭構建
最好使用官方預編譯版本(見上文)。但如果您想從原始程式碼構建,請先在此處查看從原始程式碼構建的先決條件:https://deeplearning4j.konduit.ai/multi-project/how-to-guides/build-from-source。可以在那裡找到有關 cpu 和 gpu 構建的各種說明。請造訪我們的論壇尋求進一步協助。
運行測試
為了運行測試,請參閱平台測試模組。此模組僅在 jdk 11 上運行(主要是由於舊版 scala 版本 + JDK 17 的 Spark 和 bug)
platform-tests 讓您可以為不同的後端執行 dl4j。您可以在命令列上指定一些屬性:
- backend.artifactId:預設為 nd4j-native 並將在 cpu 上執行測試,您可以指定其他後端,例如 nd4j-cuda-11.6
- dl4j.version:您可以變更執行測試的 dl4j 版本。預設為 1.0.0-SNAPSHOT。
更多參數可以在這裡找到:
| <平台.classifier> ${javacpp.platform} </平台.classifier> |
在Intellij IDEA中運行項目:
- 確保在 jdk 9 或更高版本上遵循 https://stackoverflow.com/questions/45370178/exporting-a-package-from-system-module-is-not-allowed-with-release
- 忽略所有 nd4j-shade 子模組。右鍵單擊每個資料夾,然後按一下:Maven -> 忽略項目
執照
阿帕契許可證 2.0
商業支持
Deeplearning4J 由 Konduit KK 團隊積極開發。
[如果您需要任何商業支持,請隨時與我們聯繫。信箱:[email protected]