Tensorflow.js是Google開發的開源工具包,用於在瀏覽器或節點平台上執行機器學習模型和深度學習神經網絡。它還使開發人員能夠在 JavaScript 中創建機器學習模型,並直接在瀏覽器中或通過 Node.js 使用它們。
tf.layers.simpleRNN() 函數用於創建由單個 SimpleRNNCell 組成的 RNN 層。
用法:
tf.layers.simpleRNN(args)
參數:它接受 args 對象,該對象可以具有以下屬性:
- units (number):輸出空間的維度,表示為正整數。
- activation:該層的激活函數。
- useBias (boolean):該層是否有偏差向量。 True 是默認值。
- kernelInitializer:卷積核權重矩陣的初始值設定項。
- recurrentInitializer:recurrentKernel 權重矩陣的初始值設定項。它用於循環狀態的線性變換。
- biasInitializer:偏置向量的初始值設定項。
- kernelRegularizer:應用於核權重矩陣的正則化函數。
- recurrentRegularizer:應用於 recurrentKernel 權重矩陣的正則化函數。
- biasRegularizer:應用於偏置向量的正則化函數。
- kernelConstraint:卷積核權重的約束。
- recurrentConstraint:recurrentKernel 權重的約束。
- biasConstraint:偏置向量的約束。
- dropout (number):它是 0 到 1 之間的數字。為輸入的線性變換而丟棄的單位分數。
- recurrentDropout (number): 它是 0 到 1 之間的數字。為循環狀態的線性變換而丟棄的單位分數。
- dropoutFunc:包含此內容是為了測試 DI。
- cell:RNN 單元實例。
- returnSequences (boolean):是否應返回輸出序列中的最終輸出,或者應返回整個序列。
- returnState (boolean): 最後的狀態是否應與輸出一起返回。
- goBackwards (boolean): 如果這是真的,則向後處理輸入序列並返回相反的序列。默認值為 false。
- stateful (boolean): 如果為 true,則批次中索引 I 處每個樣本的最終狀態將用作下一批索引 i 處樣本的開始狀態(默認值:false)。
- unroll (boolean): 如果為 true,則網絡將展開;否則,將使用符號循環。雖然展開可以加速 RNN,但它更多的是 memory-intensive。展開時僅接受短序列(默認值: false)。
- inputDim (number):輸入的維度(整數)。當該層用作模型中的初始層時,此選項(或選項 inputShape)是必需的。
- inputLength (number): 當輸入序列的長度一定時,必須給出。如果你想將 Flatten 層和 Dense 層鏈接到上遊,你將需要這個參數(沒有它,就無法計算密集輸出的形狀)。
- inputShape:如果設置了此屬性,它將用於構造一個輸入層,該輸入層將插入到該層之前。
- batchInputShape:如果設置了此屬性,將創建一個輸入層並將其插入到該層之前。
- batchSize:如果未提供batchInputShape而提供了inputShape,則使用batchSize來構建batchInputShape。
- dtype:這是該層的數據類型。 float32 是默認值。該參數僅適用於輸入層。
- name:這是圖層的名稱,是字符串類型。
- trainable:如果該層的權重可以通過擬合來改變。 True 是默認值。
- weights:圖層的初始權重值。
- inputDType:它用於舊版支持。
返回:它返回一個對象(SimpleRNN)。
示例 1:
Javascript
import * as tf from "@tensorflow/tfjs";
const input = tf.input({ shape: [4, 3] });
const simpleRNNLayer = tf.layers.simpleRNN({
units: 4,
returnSequences: true,
returnState: true
});
let output, finalState;
[output, finalState] = simpleRNNLayer.apply(input);
const model = tf.model({
inputs: input,
outputs: output
});
const x = tf.tensor3d([1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12], [1, 4, 3]);
model.predict(x).print();
輸出:
Tensor [[[0.9078521, -0.9811671, 0.7162469, 0.9916067], [0.9999183, -0.9997805, 0.8239585, 0.9999147], [0.9999995, -0.9999998, 0.9744635, 0.9999991], [1 , -1 , 0.9965866, 1 ]]]
示例 2:
Javascript
import * as tf from "@tensorflow/tfjs";
const input = tf.input({ shape: [5, 4] });
const simpleRNNLayer = tf.layers.simpleRNN({
units: 8,
returnSequences: true,
returnState: true
});
let output, finalState;
[output, finalState] = simpleRNNLayer.apply(input);
const model = tf.model({ inputs: input, outputs: output });
const x = tf.tensor3d([1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20], [1, 5, 4]
);
model.predict(x).print();
輸出:
Tensor [[[0.2636383 , 0.9990318, 0.1660565, 0.9994429, -0.1762104, -0.9415753, 0.2943841, 0.7435381], [-0.9700606, 0.9999998, 0.5248303, 1 , -0.6762528, -0.9998503, 0.7585124, 0.836854 ], [-0.9959837, 1 , 0.5081902, 1 , -0.9194239, -0.9999997, 0.9733018, 0.988907 ], [-0.9993195, 1 , 0.8597047, 1 , -0.9791942, -1 , 0.9934399, 0.9968426], [-0.999855 , 1 , 0.9431108, 1 , -0.9907937, -1 , 0.9975212, 0.9990824]]]
參考: https://js.tensorflow.org/api/latest/#layers.simpleRNN
相關用法
- Tensorflow.js tf.layers.simpleRNNCell()用法及代碼示例
- Tensorflow.js tf.layers.softmax()用法及代碼示例
- Tensorflow.js tf.layers.separableConv2d()用法及代碼示例
- Tensorflow.js tf.layers.stackedRNNCells()用法及代碼示例
- Tensorflow.js tf.layers.spatialDropout1d()用法及代碼示例
- Tensorflow.js tf.layers.minimum()用法及代碼示例
- Tensorflow.js tf.layers.flatten()用法及代碼示例
- Tensorflow.js tf.layers.average()用法及代碼示例
- Tensorflow.js tf.layers.repeatVector()用法及代碼示例
- Tensorflow.js tf.layers.multiply()用法及代碼示例
- Tensorflow.js tf.layers.embedding()用法及代碼示例
- Tensorflow.js tf.layers.dense()用法及代碼示例
- Tensorflow.js tf.layers.permute()用法及代碼示例
- Tensorflow.js tf.layers.reshape()用法及代碼示例
- Tensorflow.js tf.layers.dropout()用法及代碼示例
- Tensorflow.js tf.layers.concatenate()用法及代碼示例
- Tensorflow.js tf.layers.gaussianNoise()用法及代碼示例
- Tensorflow.js tf.layers.gaussianDropout()用法及代碼示例
- Tensorflow.js tf.layers.alphaDropout()用法及代碼示例
- Tensorflow.js tf.layers.elu()用法及代碼示例
- Tensorflow.js tf.layers.masking()用法及代碼示例
- Tensorflow.js tf.layers.timeDistributed()用法及代碼示例
- Tensorflow.js tf.layers.gru()用法及代碼示例
- Tensorflow.js tf.layers.add()用法及代碼示例
- Tensorflow.js tf.layers.gruCell()用法及代碼示例
注:本文由純淨天空篩選整理自aayushmohansinha大神的英文原創作品 Tensorflow.js tf.layers.simpleRNN() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。