當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Tensorflow.js tf.layers.simpleRNNCell()用法及代碼示例


Tensorflow.js是一個開放源代碼庫,由Google開發,用於在瀏覽器或節點環境中運行機器學習模型以及深度學習神經網絡。

.layers.simpleRNNCell() 函數用於為 simpleRNN 尋找細胞類別。

用法:

tf.layers.simpleRNNCell (args)

參數:

  • units:它是一個具有正整數單位的張量輸入,它是輸出空間的維數。
  • activation:它是一個張量輸入,是一個要使用的激活函數,默認為雙曲正切。如果您傳遞 null,則將應用線性激活。
  • useBias:它是一個張量輸入,其中偏置向量用於該層。
  • kernelInitializer:它是一個張量輸入,是內核權重矩陣的初始化器,用於輸入的線性變換。
  • recurrentInitializer:它是一個張量輸入,是 recurrentKernel 權重矩陣的初始化器,用於循環狀態的線性變換。
  • biasInitializer:它是一個張量輸入,是偏置向量的初始化器。
  • kernelRegularizer:它是一個張量輸入,其中正則化函數應用於核權重矩陣。
  • recurrentRegularizer:它是一個張量輸入,其中正則化函數應用於 recurrent_kernel 權重矩陣。
  • biasRegularizer:它是一個張量輸入,其中正則化函數應用於偏置向量。
  • kernelConstraint:它是一個張量輸入,其中約束函數應用於核權重矩陣。
  • recurrentConstraint:它是一個張量輸入,其中約束函數應用於循環內核權重矩陣。
  • biasConstraint:它是一個張量輸入,其中約束函數應用於偏置向量。
  • dropout:它是一個張量輸入,其中為輸入的線性變換和介於 0 和 1 之間的浮點數而要丟棄的單位的分數。
  • recurrentDropout:它是一個張量輸入,其中用於循環狀態和 0 和 1 之間的浮點數的線性變換的單位的分數。
  • inputShape:它是一個張量輸入,將用於創建一個輸入層以在該層之前插入(如果已定義)。它僅適用於輸入層。
  • batchInputShape:它是一個張量輸入,將用於創建一個輸入層以在該層之前插入(如果已定義)。它僅適用於輸入層。
  • batchSize:它是一個張量輸入,其中batchSize 用於構造batchInputShape,如果指定了inputShape 而未指定batchInputShape。
  • dType:它是一個張量輸入,是該層的數據類型,默認為 ‘float32’。
  • name:這是一個張量輸入,是該層的名稱。
  • trainable:它是一個張量輸入,默認為 true,無論該層的權重是否可通過擬合更新。
  • weights:它是一個張量輸入,可以是層的初始權重值。
  • inputDType:它是一個具有傳統支持的張量輸入,不用於新代碼。



返回值:它返回 SimpleRNNCell。

範例1:在這個例子中,SimpleRNNCell 不同於 RNN 子類。在 SimpleRNN 中,它的 apply 方法隻接受單個時間步長的輸入數據,並在時間步長處返回單元格的輸出,而 SimpleRNN 接受多個時間步長的輸入數據。

Javascript


// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining input elements
const cell = tf.layers.simpleRNNCell({units:3});
const input = tf.input({shape:[11]});
const output = cell.apply(input);
  
console.log(JSON.stringify(output.shape));

輸出:

[null, 11]

範例2:在這個例子中,SimpleRNNCell 的實例可用於構建 RNN 層。此工作流最典型的用途是將多個單元組合成一個堆疊的 RNN 單元(即內部的 StackedRNNCell)並使用它來創建一個 RNN。

Javascript


// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining input elements
const cells = [
   tf.layers.simpleRNNCell({units:8}),
   tf.layers.simpleRNNCell({units:16}),
];
const rnn = tf.layers.rnn({cell:cells, returnSequences:true});
  
// Create an input with 20 time steps and
// a length-30 vector at each step
const input = tf.input({shape:[20, 30]});
const output = rnn.apply(input);
  
console.log(JSON.stringify(output.shape));

輸出:

​[null, 20, 16]

參考:https://js.tensorflow.org/api/latest/#layers.simpleRNNCell




相關用法


注:本文由純淨天空篩選整理自simranarora5sos大神的英文原創作品 Tensorflow.js tf.layers.simpleRNNCell() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。