1. 程式人生 > >DL4J中文文件/模型/頂點

DL4J中文文件/模型/頂點

頂點是什麼?

在Eclipse DL4J中,頂點是在計算圖中充當節點的一種層。它可以接受多個輸入,提供多個輸出,並且可以幫助構建流行的網路,如InceptionV4。

可用的類


L2NormalizeVertex

[原始碼]

L2NormalizeVertex 在單個輸入上執行L2歸一化。


L2Vertex

[原始碼]

L2Vertex 計算兩個輸入的L2最小二乘誤差。

例如,在三重嵌入中,你可以輸入一個錨和一個pos/neg類,並使用兩個並行的L2頂點來計算兩個實數,這兩個實數可以輸入LossLayer來計算三重損失。


PoolHelperVertex

[原始碼]

用於從輸入中移除第一列和行的自定義層。這意味著允許從https://gist.github.com/joelouismarino/a2ede9ab3928f999575423b9887abd14 引入Caffe的GoogLeNet。


ReshapeVertex

[原始碼]

在計算圖中增加對張量變形和偏平化能力。這相當於下一層。ReshapeVertex還確保形狀對於反向傳播是有效的。


ScaleVertex

[原始碼]

一個ScaleVertex用於縮放單個層的啟用大小。

例如,可以在重複塊中縮放ResNet啟用,以保持方差在控制之中。


ShiftVertex

[原始碼]

ShiftVertex用於轉換單個層的啟用

人們可以使用它來新增偏置或者作為其他計算的一部分。例如,公路層在兩個地方需要它們。一,門權重有很大的負偏差通常是有用的。(當然,對於這一點,我們可以這樣初始化偏置。)但是,它也需要這樣做:(1-sigmoid(weight input + bias)) () input + sigmoid(weight input + bias) () activation(w2 input + bias) (() is hadamard product) 因此,在這裡,我們可以

  1. 一個做為sigmoid的  DenseLayer
  2. 一個 ScaleVertex(-1) 和
  3. 一個 ShiftVertex(1) 來完成這一點。

StackVertex

[原始碼]

StackVertex允許堆疊輸入,以便它們可以通過網路轉發。這對於諸如三重嵌入之類的情況是有用的,其中共享引數不被網路支援。

這個頂點會自動堆疊所有可用的輸入。


UnstackVertex

[原始碼]

UnstackVertex允許對輸入進行拆堆疊,以便它們可以通過網路轉發。這對於諸如三重嵌入之類的情況是有用的,其中嵌入可以被分離並通過後續層執行。

除了0維度輸入之外,與SubsetVertex(子集頂點)相似。stackSize由使用者顯式定義,以適當地計算一個步驟。


ReverseTimeSeriesVertex

[原始碼]

在迴圈神經網路中使用ReverseTimeSeriesVertex來反轉時間序列的順序。結果,最後一個時間步長被移動到時間序列的開始,並且第一時間步長被移動到結束。這允許遞迴層反向處理時間序列。

掩碼:輸入可能被遮蔽(以允許在一個小批量中改變不同的時間序列長度)。在這種情況下,當前輸入(掩碼陣列=1)將恢復到位,填充(掩碼陣列=0)將保持不變。對於長度為n的時間序列,這通常意味著,恢復最初的n個時間步長,並且不修改下面的填充,但是支援更復雜的掩碼(例如[1,0,1,0,…])。

setBackpropGradientsViewArray

public void setBackpropGradientsViewArray(INDArray backpropGradientsViewArray) 

從提供的輸入獲取當前掩碼陣列。

  • 如果沒有輸入,則返回掩碼或NULL