1. 程式人生 > >DL4J中文文件/開始/Eclipse DL4J示例之旅

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

如果您覺得我的文章給了您幫助,請為我買一杯飲料吧!以下是我的支付寶,意思一下我將非常感激!