成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Deeplearning4j:JVM 的深度學習和 ETL

人工智能 深度學習
Deeplearning4j 旨在將模型與 Java 應用程序集成,提供了一組組件,用于構建包含 AI 的基于 JVM 的應用程序。

 [[410828]]

本文轉載自微信公眾號「Java架構大仙」,作者Java架構大仙。轉載本文請聯系Java架構大仙公眾號。

Deeplearning4j 旨在將模型與 Java 應用程序集成,提供了一組組件,用于構建包含 AI 的基于 JVM 的應用程序。

Eclipse Deeplearning4j是一個用于 JVM 的開源分布式深度學習庫。Deeplearning4j 是用 Java 編寫的,與任何 JVM 語言兼容,例如Scala、Clojure 或Kotlin。底層計算是用 C、C++ 和Cuda 編寫的。Keras將用作 Python API。Deeplearning4j與 Hadoop 和Apache Spark集成,將 AI 帶入業務環境,以在分布式 GPU 和 CPU 上使用。

Deeplearning4j實際上是一堆項目,旨在支持基于 JVM 的深度學習應用程序的所有需求。除了 Deeplearning4j 本身(高級 API),它還包括ND4J(通用線性代數)、SameDiff(基于圖的自動微分)、DataVec (ETL)、Arbiter(超參數搜索)和C++ LibND4J(支持所有上述的)。LibND4J 反過來調用標準庫來支持 CPU 和 GPU,例如OpenBLAS、OneDNN (MKL-DNN)、cuDNN和cuBLAS。

Eclipse Deeplearning4j 的目標是為構建包含 AI 的應用程序提供一組核心組件。企業內的 AI 產品通常具有比機器學習更廣泛的范圍。該發行版的總體目標是為構建深度學習應用程序提供智能默認值。

Deeplearning4j 在某種程度上與其他所有深度學習框架競爭。范圍內最具可比性的項目是TensorFlow,它是領先的端到端深度學習生產框架。TensorFlow 目前有 Python、C++ 和 Java(實驗性)的接口,以及 JavaScript 的單獨實現。TensorFlow 使用兩種訓練方式:基于圖和立即模式(eager execution)。Deeplearning4j 目前僅支持基于圖的執行。

PyTorch,可能是領先的深度學習研究框架,只支持即時模式;它有 Python、C++ 和 Java 的接口。H2O Sparkling Water 將 H2O 開源分布式內存機器學習平臺與 Spark 集成。H2O 具有 Java 和 Scala、Python、R 和 H2O Flow 筆記本的接口。

Deeplearning4j 的商業支持可以從Konduit購買,它也支持許多從事該項目的開發人員。

Deeplearning4j 的工作原理

Deeplearning4j 將加載數據和訓練算法的任務視為單獨的過程。您使用 DataVec 庫加載和轉換數據,并使用張量和 ND4J 庫訓練模型。

您通過RecordReader接口攝取數據,并使用RecordReaderDataSetIterator. 您可以選擇一個DataNormalization類作為您的DataSetIterator. 使用ImagePreProcessingScaler圖像數據時,NormalizerMinMaxScaler如果沿輸入數據的所有尺寸的均勻范圍,NormalizerStandardize對于其他大多數情況下。如有必要,您可以實現自定義DataNormalization類。

DataSet對象是數據特征和標簽的容器,并將值保存在以下幾個實例中INDArray:一個用于示例的特征,一個用于標簽,另外兩個用于屏蔽(如果您使用的是時間序列數據)。在特征的情況下,INDArray是大小為 的張量Number of Examples x Number of Features。通常,您會將數據分成小批量進行訓練;an 中的示例數量INDArray小到足以放入內存,但大到足以獲得良好的梯度。

如果您查看用于定義模型的 Deeplearning4j 代碼,例如下面的 Java 示例,您會發現它是一個非常高級的 API,類似于 Keras。事實上,Deeplearning4j 的計劃 Python 接口將使用 Keras;現在,如果您有 Keras 模型,則可以將其導入 Deeplearning4j。

  1. MultiLayerConfiguration conf =新的NeuralNetConfiguration 。建造者() 。optimizationAlgo (OptimizationAlgorithm 。STOCHASTIC_GRADIENT_DESCENT )。更新程序(新Nesterovs (learningRate ,0.9 ))。列表(新DenseLayer 。生成器()。n在(numInputs )。NOUT (numHiddenNodes )。激活(“RELU” )。 
  2.                        
  3.          
  4.              構建(),新的輸出層。生成器(LossFunction . NEGATIVELOGLIKELIHOOD )。激活(“softmax” )。n在(numHiddenNodes )。nOut ( numOutputs )。構建() )。反向傳播(真)。構建(); 
  5.               
  6.  
  7.          

該MultiLayerNetwork班可在Eclipse Deeplearning4j最簡單的網絡配置的API; 對于 DAG 結構,請ComputationGraph改用 。請注意,優化算法(本例中的 SGD)與更新器(本例中的 Nesterov)是分開指定的。這個非常簡單的神經網絡有一個帶有ReLU激活函數的密集層和一個帶有-log(likelihood)損失和softmax激活函數的輸出層,并通過反向傳播解決。更復雜的網絡也可能具有GravesLSTM、ConvolutionLayer、EmbeddingLayer和其他支持的兩打層類型和十六層空間類型。

訓練模型的最簡單方法是.fit()使用您DataSetIterator的參數調用模型配置上的方法。您還可以重置迭代器并根據需要在任意.fit()多個時期內調用該方法,或者使用EarlyStoppingTrainer.

要測試模型性能,請使用一個Evaluation類來查看訓練模型與測試數據的擬合程度,這些數據不應與訓練數據相同。

Deeplearning4j 提供了一個偵聽器工具,可幫助您直觀地監控網絡的性能,它將在每個小批量處理后調用。最常用的偵聽器之一是ScoreIterationListener.

安裝和測試 Deeplearning4j

目前,試用 Deeplearning4j 的最簡單方法是使用官方快速入門。它需要相對較新的 Java 版本、Maven 的安裝、工作的 Git 以及 IntelliJ IDEA(首選)或 Eclipse 的副本。還有一些用戶提供的快速入門。首先使用 Git 或 GitHub Desktop 將 eclipse/deeplearning4j-examples 存儲庫克隆到您自己的機器上。然后從 dl4j-examples 文件夾使用 Maven 安裝項目。

  1. martinheller @馬丁斯-視網膜-的MacBook dl4j -實例%MVN全新安裝 
  2. [ INFO ]掃描的項目... [ WARNING ] [ WARNING ]部分中遇到的問題,同時建立有效的模式進行組織。deeplearning4j :dl4j -實例:罐子:1.0 。0 - beta7 [警告]   
  3.  
  4.   
  5.  'build.plugins.plugin.(groupId:artifactId)'必須是唯一的,但發現插件 org 的重復聲明。阿帕奇。行家。插件:行家-編譯-插件@行250 ,列21  
  6. [ WARNING ]  
  7. [ WARNING ]這是強烈推薦,因為他們威脅到你構建的穩定性,解決這些問題。[ WARNING ] [ WARNING ]對于這個原因,未來   
  8.  
  9.   Maven的版本可能不會再支持建立這種畸形的項目。 
  10. [警告]  
  11. [信息]  
  12. [信息] ------------------<組織。deeplearning4j : dl4j - examples >----------------- [信息] DL4J 1.0 的構建簡介。0 - beta7 [ INFO ] --------------------------------[ jar ]--------- ------------------------下載自    
  13.    
  14.   
  15.  中央:https ://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-enforcer-plugin/1.0.1/maven-enforcer-plugin-1.0.1.pom從中央 
  16. 下載:https : //repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-enforcer-plugin/1.0.1/maven-enforcer-plugin-1.0.1.pom (6.5 kB at 4.4 kB/s )從中央下載:https : //repo.maven.apache.org/maven2/org/apache/maven/enforcer/enforcer/1.0.1/enforcer-1.0.1.pom從中央下載:https :  
  17.   
  18.  //repo.maven.apache.org/maven2/org/apache/maven/enforcer/enforcer/1.0.1/enforcer-1.0.1.pom (11 kB at 137 kB/s)從中央 
  19. 下載: https : // repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-enforcer-plugin/1.0.1/maven-enforcer-plugin-1.0.1.jar從中央下載:https ://repo.maven .apache.org/maven2/org/apache/maven/plugins/maven-enforcer-plugin/1.0.1/maven-enforcer-plugin-1.0.1.jar (22 kB at 396 kB/s)從中央下載:https : //repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-plugin/1.4.0/exec-maven-plugin-1.4.0.pom  
  20.   
  21.   
  22. 從中央下載:https : //repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-plugin/1.4.0/exec-maven-plugin-1.4.0.pom (12 kB at 283 kB/s)從中央下載:https : //repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-plugin/1.4.0/exec-maven-plugin-1.4.0.jar 已下載來自中央:https ://repo.maven.apache.org/maven2/org/codehaus/mojo/exec-maven-plugin/1.4.0/exec-maven-plugin-1.4.0.jar(46 kB at 924 kB /s)從中央下載:https : 
  23.   
  24.   
  25.  //repo.maven.apache.org/maven2/com/lewisd/lint-maven-plugin/0.0.11/lint-maven-plugin-0.0.11.pom從中央 
  26. 下載:https ://repo.maven.apache .org/maven2/com/lewisd/lint-maven-plugin/0.0.11/lint-maven-plugin-0.0.11.pom(19 kB at 430 kB/s)從中央下載:https ://repo.maven .apache.org/maven2/com/lewisd/lint-maven-plugin/0.0.11/lint-maven-plugin-0.0.11.jar從中央下載:https ://repo.maven.apache.org/maven2/ com/lewisd/lint-maven-plugin/0.0.11/lint-maven-plugin-0.0.11.jar (106 kB at 1.6 MB/s)從中央下載  
  27.   
  28.   
  29.  : https : //repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/3.5.1/maven-compiler-plugin-3.5.1.pom  
  30.  
  31. ...  
  32.  
  33. [警告] - org . agrona 。收藏品。散列[警告] - org 。agrona 。收藏品。Long2ObjectCache$ValueIterator [警告] -組織。agrona 。收藏品。Int2ObjectHashMap$EntrySet [警告] -    
  34.     
  35.     
  36.    組織。agrona 。并發。SleepingIdleStrategy  
  37. [警告] - org 。agrona 。收藏品。MutableInteger [警告] - org 。agrona 。收藏品。Int2IntHashMap [警告] - org 。agrona 。收藏品。IntIntConsumer 【警告】-組織。agrona 。同時    
  38.     
  39.     
  40.    . 狀態。StatusIndicator  
  41. [警告] - 175更多... [警告] javafx - base - 14 - mac 。jar 、javafx - graphics - 14 - mac 。罐子,雅加達。XML 。綁定- API - 2.3 。2.jar定義1 個重疊類:[警告]     
  42.  
  43.    -模塊-信息[ WARNING ]的protobuf - 1.0 。0 - β7的。罐子,番石榴- 19.0 。罐限定3重疊的類:[ WARNING ] - COM 。谷歌。第三方。公共后綴。TrieParser [警告] - com 。谷歌。第三方。公共后綴。 
  44.  
  45.     
  46.    PublicSuffixPatterns  
  47. [警告] - com 。谷歌。第三方。公共后綴。PublicSuffixType [ WARNING ] JSR305 - 3.0 。2.jar ,番石榴- 1.0 。0 - β7的。罐限定35重疊的類:[ WARNING ] -的javax 。注釋。正則表達式[警告] - javax    
  48.  
  49.     
  50.    . 注釋。并發。不可變 
  51. [警告] - javax 。注釋。元。TypeQualifierDefault [警告] - javax 。注釋。元。TypeQualifier [警告] - javax 。注釋。語法[警告] - javax 。注釋。檢查返回值[警告]    
  52.     
  53.     
  54.     
  55.    - javax 。注釋。CheckForNull  
  56. [警告] - javax 。注釋。非空[警告] - javax 。注釋。元。TypeQualifierNickname [警告] - javax 。注釋。MatchesPattern [警告] - 還有25個...... [警告] maven -陰影-    
  57.     
  58.     
  59.      
  60. 插件檢測到某些類文件 
  61. [警告]存在于兩個或多個JAR 中。當這種情況發生,只有一個[ WARNING ]單一的版本類被復制到超級罐子。【警告】通常這是不是有害的,并可以跳過這些警告,[警告] ,否則試圖基于手動排除假象   
  62.   
  63.      
  64.  
  65. [警告] mvn 依賴項:tree - Ddetail = true和上面的輸出。[警告]參見HTTP ://maven.apache.org/plugins/maven-shade-plugin/ [ INFO ] 。附接陰影偽影。[ INFO ] [ INFO ] --- Maven的-安裝-插件:2.4 :安裝(默認-安裝) @  
  66.   
  67.   
  68.  
  69.    dl4j -實例--- [ INFO ]安裝/體積/數據/回購/ deeplearning4j -實例/ dl4j -實例/目標/ dl4j -實例- 1.0 。0 - β7的。jar 到/ Users / martinheller /。m2 /存儲庫/組織/ deeplearning4j / dl4j -  
  70.   實例/ 1.0 。0 -聯蛋白β7 / dl4j -實例- 1.0 。0 - β7的。jar  
  71. [信息]安裝/卷/數據/ repos / deeplearning4j - examples / dl4j - examples / pom 。xml 到/ Users / martinheller /。m2 /存儲庫/組織/  deeplearning4j / dl4j -示例/ 1.0 . 0 -聯蛋白β7 / dl4j -實例- 1.0 。0 - β7的。POM  
  72. [ INFO ]安裝/體積/數據/回購/ deeplearning4j -實例/ dl4j -實例/目標/ dl4j -實例- 1.0 。0 -  beta7 -陰影。jar 到/ Users / martinheller /。m2 / repository / org / deeplearning4j / dl4j - examples / 1.0 。0 -聯蛋白β7 / dl4j -實例- 1.0 。0 - β7的-陰影。jar  
  73. [信息] ---------------------------------------------- -------------------------- [信息]  
  74.  構建成功 
  75. [信息] --------------------------------------------- --------------------------- [ INFO ]總時間: 05 : 07 min [ INFO ]完成時間: 2020 - 07 - 10T10 : 58 : 55 - 04 : 00 [信息] ----------------------------------------- ------------------------------- martinheller@Martins - Retina - MacBook dl4j  
  76.     
  77.    
  78.   
  79. -例子% 

安裝完成后,使用 IntelliJ IDEA 打開 dl4j-examples/ 目錄并嘗試運行一些示例。

dl4j-examples 下的 README 列出了所有示例并對其進行了簡要說明。順便說一句,您可以使用 IntelliJ IDEA 首選項安裝新版本的 JDK 并將其應用于項目。

著名的鳶尾花數據集只有 150 個樣本,通常很容易建模,盡管其中一些鳶尾花經常被錯誤分類。這里使用的模型是三層密集神經網絡。

運行上圖所示的 Iris 分類器會產生相當好的擬合:準確率、精確度、召回率和 F1 分數都約為 98%。請注意,在混淆矩陣中,只有一個測試用例被錯誤分類。

線性分類器演示在幾秒鐘內運行,并為訓練和測試數據集生成概率圖。數據是專門為線性可分為兩類而生成的。

MNIST 手寫數字數據集的多層感知器 (MLP) 分類模型在大約 14K 次迭代后產生了約 97% 的準確度、精確度、召回率和 F1 分數。這不如卷積神經網絡(如 LeNet)在該數據集上的結果好或快。

Deeplearning4j 性能

對 Java 程序進行基準測試可能很棘手。特別是,您需要在對代碼進行計時之前對其進行預熱以消除 JIT 編譯器的開銷,并且您需要確保 JVM 具有足夠的 RAM 配置用于進行基準測試的程序。Deeplearning4j 社區為各種流行的模型和配置維護了一個基準代碼存儲庫。

據開發人員稱,Deeplearning4j 在使用多個 GPU 的非平凡圖像識別任務中與 Caffe 一樣快。要使用多臺機器,您可以使用 Spark 運行 Deeplearning4j

Java 應用程序的深度學習

總的來說,Deeplearning4j 是一個很有價值的庫,用于加載和調節數據以及在 Java VM 上執行深度學習。雖然尚未像 TensorFlow 或 PyTorch 那樣成熟,但 Deeplearning4j 將吸引希望將深度學習模型集成到基于 Java 的應用程序中的數據科學家。Deeplearning4j 能夠導入 Keras 模型,這將簡化想要從 TensorFlow 轉換的人的過渡。

Deeplearning4j 支持創建圖形然后運行它們,就像TensorFlow 1 一樣。它不支持即時模式訓練,如 TensorFlow 2 和 PyTorch。這對生產來說并不重要,但它可能會使使用 Deeplearning4j 對研究的吸引力降低。

Deeplearning4j 目前有兩種分布式訓練機制,參數平均和梯度共享。后者更可取,但它僅在版本 1.0.0-beta3 中添加到庫中。Deeplearning4j 還與 Spark 集成,這有助于支持在一組機器上進行訓練。在具有多個 GPU 的單個服務器上進行訓練時,使用 Spark 并沒有真正的幫助。

 

責任編輯:武曉燕 來源: Java架構大仙
相關推薦

2022-03-25 13:42:15

Log4j漏洞網絡安全

2017-10-31 10:11:04

深度學習服務器DeepLearnin

2010-09-29 10:41:18

J2MEJVM

2017-08-12 13:23:43

深度學習神經網絡推理加速

2017-12-01 15:24:04

TensorFlow深度學習教程

2017-03-22 20:36:34

深度學習機器學習人工智能

2023-11-10 10:08:23

2020-11-03 14:31:55

Ai人工智能深度學習

2021-03-01 11:39:34

機器學習深度學習人工智能

2021-01-29 15:10:32

機器學習

2009-06-19 17:03:44

J2EE學習

2018-04-26 13:41:57

深度學習人工智能機器學習

2024-02-19 10:25:34

深度學習人工智能AI

2022-07-11 09:00:00

數據集成云計算ELT

2022-03-25 10:35:20

機器學習深度學習強化學習

2011-04-13 09:30:28

dom4j

2020-05-28 15:35:07

人工智能

2021-12-01 22:55:45

人工智能機器學習深度學習

2017-02-05 17:10:41

機器學習深度學習框架

2021-02-17 00:30:41

機器學習深度學習人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级毛片高清 | 久久久片| 亚洲最大成人综合 | 91精品欧美久久久久久久 | 日韩高清电影 | 欧美激情久久久 | 国产一级在线视频 | 国产精品国产三级国产播12软件 | 91久久久久久 | 国产精品国产a级 | 欧美视频免费 | 欧美久久久久久久久中文字幕 | 国产三级在线观看播放 | 99精品免费在线观看 | 羞羞色网站 | 99精品99 | 日韩免费av | 国产一区二区三区在线 | 久久免费视频在线 | 国产精品一二三区在线观看 | 中文一级片 | 国产激情在线 | 黄视频免费观看 | 天天操天天干天天曰 | 毛色毛片免费看 | 97综合在线 | 国产日韩欧美另类 | 国产精品久久久久久久白浊 | 国产精品久久777777 | 国产成人精品a视频一区www | 日本高清不卡视频 | 激情影院久久 | 伊人啪啪网 | 毛片视频网址 | 亚洲欧美日韩国产 | 国产精品久久久一区二区三区 | 国内精品成人 | 国产伦精品一区二区 | 国产婷婷色综合av蜜臀av | 欧美精品91 | 美女日批免费视频 |