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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。