EclipseDeeplearning4j是一個用Java編寫的用于Java虛擬機(JVM)的編程庫。它是一個對深度學習算法有廣泛支持的框架。Deeplearning4j包括限制性玻爾茲曼機、深度信念網、深度自動編碼器、堆疊去噪自動編碼器和遞歸神經張量網絡、word2vec、doc2vec和GloVe的實現。這些算法都包括分布式并行版本,與ApacheHadoop和Spark集成。Deeplearning4j是在Apache許可證2.0下發布的開源軟件,主要由總部設在舊金山的機器學習小組開發。它得到了創業公司Skymind的商業支持,該公司將DL4J、TensorFlow、Keras和其他深度學習庫捆綁在一個名為Skymind智能層的企業版中。Deeplearning4j在2017年10月被貢獻給Eclipse基金會。
深度學習4j的簡介
編輯Deeplearning4j依賴于廣泛使用的編程語言Java,盡管它與Clojure兼容,并包括一個Scala應用編程接口(API)。它由自己的開源數值計算庫ND4J驅動,并與中央處理器(CPU)和圖形處理單元(GPU)一起工作。Deeplearning4j已經被用于一些商業和學術應用中。該代碼托管在GitHub上。Gitter上有一個支持論壇。該框架是可組合的,這意味著淺層神經網絡,如限制性玻爾茲曼機、卷積網絡、自動編碼器和遞歸網絡可以相互添加,以創建不同類型的深度網絡。它還擁有廣泛的可視化工具和計算圖。Deeplearning4j的分布式訓練發生在一個集群中。神經網絡通過迭代還原進行并行訓練,這在Hadoop-YARN和Spark上是可行的。Deeplearning4j還與CUDA內核集成,進行純GPU操作,并與分布式GPU一起工作。
JVM的科學計算
編輯Deeplearning4j包括一個使用ND4J的n維數組類,允許在Java和Scala中進行科學計算,類似于NumPy為Python提供的功能。它實際上是基于生產環境中的線性代數和矩陣操作的庫。用于機器學習的DataVec矢量化庫DataVec使用類似于Hadoop使用的MapReduce的輸入/輸出格式系統對各種文件格式和數據類型進行矢量化;也就是說,它將各種數據類型變成了被稱為矢量的標量列。DataVec被設計用來對CSV、圖像、聲音、文本、視頻和時間序列進行矢量化。
文本和NLP
編輯Deeplearning4j包括一個矢量空間建模和主題建模工具包,用Java實現,并與并行GPU集成以提高性能。它被設計用來處理大型文本集。Deeplearning4j包括術語頻率-反向文檔頻率(tf-idf)、深度學習、Mikolov的word2vec算法、doc2vec和GloVe的實現,在Java中重新實現和優化。它依靠t分布式隨機鄰居嵌入(t-SNE)來實現詞云的可視化。現實世界的用例和集成Deeplearning4j的現實世界用例包括網絡入侵檢測和網絡安全、金融部門的欺詐檢測、制造業等行業的異常檢測、電子商務和廣告的推薦系統以及圖像識別。Deeplearning4j已經與其他機器學習平臺集成,如RapidMiner、Prediction.io和Weka。
機器學習模型服務器
編輯Deeplearning4j使用SKIL(Skymind智能層)的免費開發者版本為生產中的推理提供機器學習模型。模型服務器服務于參數化的機器學習模型,對數據進行決策。它被用于機器學習工作流程的推理階段,在數據管道和模型訓練之后。模型服務器是允許數據科學研究部署在現實世界生產環境中的工具。就像Web服務器對互聯網的作用一樣,模型服務器對人工智能也是如此。網絡服務器接收HTTP請求并返回有關網站的數據,而模型服務器接收數據,并返回有關該數據的決定或預測:例如,發送一張圖片,模型服務器可能返回該圖片的標簽,識別照片中的人臉或動物。SKIL模型服務器能夠從Python框架中導入模型,如Tensorflow、Keras、Theano和CNTK,克服了部署深度學習模型的主要障礙。
基準測試
編輯Deeplearning4j在使用多個GPU進行非繁瑣的圖像識別任務時,速度與Caffe一樣快。對于不熟悉JVM上的HPC的程序員來說,有幾個參數必須調整以優化神經網絡的訓練時間。這些參數包括設置堆空間、垃圾收集算法、采用堆外內存和預存數據(pickling),以便為Fa
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/176132/