当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Tensorflow.js tf.layers.simpleRNN()用法及代码示例


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



相关用法


注:本文由纯净天空筛选整理自aayushmohansinha大神的英文原创作品 Tensorflow.js tf.layers.simpleRNN() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。