DL4J中文文件/開始/Eclipse DL4J示例之旅
DL4J示例調研
DL4J的Github倉庫有很多示例可以涵蓋它的功能。快速入門向你展示瞭如何設定Intellij並克隆倉庫。本頁提供這些例子中的一些概述。
DataVec 示例
大多數示例都使用DataVec,這是一個通過歸一化,標準化,搜尋和替換,列洗牌和向量化 預處理和清洗資料 的工具包。為神經網路讀取原始資料並將其轉換為DataSet物件通常是訓練該網路的第一步。如果你不熟悉DataVec,這裡有一個描述和一些有用的例子的連結。
IrisAnalysis.java
本例採用同名花卉品種的標準Iris資料集,其相關測量值是萼片長度、萼片寬度、花瓣長度和花瓣寬度。它從相對較小的資料集構建一個Spark RDD,並對其進行分析。
BasicDataVecExample.java
載入資料到一個Spark RDD的示例。所有 DataVec 轉換操作都使用Spark RDD。這裡我們使用DataVec來過濾資料,應用時間轉換和刪除列。
PrintSchemasAtEachStep.java
這個例子顯示了列印概要工具,這些工具對於視覺化和確保轉換的程式碼行為符合預期是有用的。
JoinExample.java
在傳遞傳遞資料集到一個神經網路之前,你可能需要連線資料集。你可以用DataVec實現,這個例子告訴你如何實現。
LogDataExample.java
這是使用DataVec解析日誌資料的示例。明顯的使用場景是是網路安全和客戶關係管理。
MnistImagePipelineExample.java
這個例子是從下面的視訊中演示的,它展示了ParentPathLabelGenerator和ImagePreProcessing縮放器。
PreprocessNormalizerExample.java
此示例演示了DataVec中可用的預處理特徵。
CSVExampleEvaluationMetaData.java
DataMeta資料跟蹤——即檢視每個示例的資料來自何處——在跟蹤導致錯誤和其他問題的格式錯誤的資料時非常有用。此示例演示RecordMetaData類中的功能。
DeepLearning4J 示例
為了構建一個神經網路,你將使用多層網路或計算圖。這兩種選項都使用Builder介面工作。下面描述了幾個例子中的亮點。
MNIST dataset of handwritten digits
MNIST是深度學習的入門。簡單,直接,重心在於影象識別,神經網路做得很好的任務。
MLPMnistSingleLayerExample.java
這是一個用於識別數字的單層感知器。請注意,這會從包含資料集的二進位制包中提取影象,這是資料提取的一種特殊情況。
MLPMnistTwoLayerExample.java
MNIST的兩層感知器,展示對於一個給定的資料集有不止一個有用的網路。
Feedforward Examples
通過前饋神經網路的資料流, 通過隱藏層從輸入到輸出的單向傳遞。
這些網路可用於各種各樣的任務,這取決於它們被配置。除了對MNIST資料進行影象分類之外,這個目錄還有演示迴歸、分類和異常檢測的示例。
Convolutional Neural Networks
卷積神經網路主要用於影象識別,雖然它們也適用於聲音和文字。
AnimalsClassification.java
此示例可以使用LeNet或AlexNet執行。
儲存和載入模型
在大量訓練資料上訓練網路需要時間。幸運的是,你可以儲存一個經過訓練的模型並載入模型以供以後的訓練或推斷。
SaveLoadComputationGraph.java
演示了儲存和載入用計算圖構建的神經網路。
SaveLoadMultiLayerNetwork.java
演示如何儲存和載入用多層網路構建的神經網路。
儲存/載入一個已訓練的模型並傳入一個新的輸入
我們的視訊系列顯示了包括儲存和載入模型以及推理的程式碼。
定製損失函式和層
你需要新增一個不可用的或是沒有預構建的損失函式嗎?檢視這些示例。
CustomLossExample.java
CustomLossL1L2.java
Custom Layer
你需要新增一個在DL4J中沒有的特徵的層嗎?這個例子展示瞭如何開始。
CustomLayerExample.java
自然語言處理
我們也有自己的自然語言處理神經網路
GloVe
用於詞表示的全域性向量對於檢測詞之間的關係是有用的。
Paragraph Vectors
單詞的向量化表示。這裡有描述。
Sequence Vectors
表示句子的一種方式是單詞序列。
Word2Vec
這裡有描述
資料視覺化
T-分佈隨機相鄰嵌入(T-SNE)對於資料視覺化是有用的。我們在NLP部分包括一個例子,因為詞相似性視覺化是一種常用的用法。
迴圈神經網路
迴圈神經網路可用於處理時間序列資料或其他順序饋送的資料,如視訊。迴圈神經網路的示例資料夾有以下內容:
BasicRNNExample.java
學習字串的迴圈神經網路。
GravesLSTMCharModellingExample.java
將莎士比亞的全部作品作為字元序列,並訓練神經網路逐字創作“莎士比亞”。
SingleTimestepRegressionExample.java
用 LSTM (長短記憶) 迴圈神經網路實現迴歸。
AdditionRNN.java
這個例子訓練一個神經網路做加法。
RegressionMathFunctions.java
這個例子訓練一個神經網路來執行各種數學運算。
UCISequenceClassificationExample.java
一個公開的六類時間序列資料集,迴圈,向上等,例如,一個學習分類時間序列的RNN示例。
VideoClassificationExample.java
自動駕駛車輛如何區分行人、停車標誌和綠燈?在一組視訊上訓練卷積和迴圈層的複雜神經網路。實況車載視訊傳遞給訓練好的網路,並且基於來自神經網路的目標檢測的決策確定車輛動作。
這個例子類似,但簡化了。它結合卷積、最大池、密連(前饋)和迴圈(LSTM)層來對視訊中的幀進行分類。
SentimentExampleIterator.java
該情感分析例項使用詞向量和迴圈神經網路將情感分類為正或負。
在Spark上分散式訓練
DL4J支援使用Spark叢集進行網路訓練。這裡是例子。
MnistMLPExample.java
這是一個多層感知機對手寫數字的MNIST資料集進行訓練的例子。
SparkLSTMCharacterExample.java
在Spark上的一個LSTM迴圈網路
ND4J 示例
ND4J是張量處理庫。它可以被認為是JVM版的Numpy。神經網路通過處理和更新多維數值陣列來工作。在典型的神經網路應用程式中,您使用DataVec提取並轉換資料為數字。使用的類是RecordReader。一旦需要將資料傳遞到神經網路,通常使用RecordReaderDataSetIterator。RecordReaderDataSetIterator返回DataSet物件。DataSet由輸入特徵和標籤的NDArray組成。
學習演算法和損失函式作為ND4J操作被執行。
基本的ND4J示例
這是一個帶有建立和操作NDArrays示例的目錄
強化學習示例
深度學習演算法已經學會了使用強化學習來玩《Space Invaders》和《Doom》。DL4J/RL4J強化學習的例子在這裡可用:
翻譯:風一樣的男子
有任何問題請聯絡微信
image
如果您覺得我的文章給了您幫助,請為我買一杯飲料吧!以下是我的支付寶,意思一下我將非常感激!