📜  Tensorflow.js tf.layers.timeDistributed()函数

📅  最后修改于: 2022-05-13 01:56:35.720000             🧑  作者: Mango

Tensorflow.js tf.layers.timeDistributed()函数

Tensorflow.js是谷歌开发的一个开源库,用于在浏览器或节点环境中运行机器学习模型和深度学习神经网络。

tf.layers.timeDistributed()函数用于将层的换行应用于指定输入的每个时间切片。给定的输入必须至少是 3D,并且维度的索引 1 将被视为时间维度。

句法:

tf.layers.timeDistributed(args)

参数:此函数接受单个参数args ,可用于指定以下属性:

  • layer:指定层 被包裹。
  • inputShape:用于创建一个输入层以插入到该层之前。当inputShapebatchInputShape都被定义时,将使用batchInputShape 。该参数仅与输入层相关,即模型的第一层。它是一个可选参数。
  • batchInputShape:当同时定义了inputShapebatchInputShape时,将使用此参数。该参数仅与输入层相关,即模型的第一层。它是一个可选参数。
  • batchSize:给定inputShape时用于创建batchInputShape ,但没有给定batchInputShape
  • dtype:这是该层的数据类型,默认值为'float32'。该参数仅与输入层相关,即模型的第一层。
  • name:这是该层的名称。
  • 可训练:其默认值为真。它表示该层的权重是否可以通过拟合更新。
  • weights:是图层的第一个权重值。
  • inputDType:建议不要用于新代码。它用于遗留支持。

返回值:它返回一个 TimeDistributed 对象。

示例 1:

Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Initializing a model
const model = tf.sequential();
  
// Calling the tf.layers.timeDistributed() function
const a = model.add(tf.layers.timeDistributed({
   layer: tf.layers.dense({units: 8}),
    
   // Considering a sequence of 5 vectors
   // of 10 dimensions
   inputShape: [5, 10],
}));
  
// Getting the model.outputShape
console.log(JSON.stringify(model.outputs[0].shape));


Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Initializing a model
const model = tf.sequential();
  
// Calling the tf.layers.timeDistributed() function
const a = model.add(tf.layers.timeDistributed({
    
   // Initializing the first layer with inputShape
   layer: tf.layers.dense({units: 12}),
    
   // Considering a sequence of 5 vectors
   // of 10 dimensions
   inputShape: [5, 10],
}));
  
// In the second layer, there is no 
// need for `inputShape`
model.add(tf.layers.timeDistributed(
  {layer: tf.layers.dense({units: 32})}
));
  
// Getting the model.outputShape
console.log(JSON.stringify(model.outputs[0].shape));


输出:

[null,5,8]

示例 2:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Initializing a model
const model = tf.sequential();
  
// Calling the tf.layers.timeDistributed() function
const a = model.add(tf.layers.timeDistributed({
    
   // Initializing the first layer with inputShape
   layer: tf.layers.dense({units: 12}),
    
   // Considering a sequence of 5 vectors
   // of 10 dimensions
   inputShape: [5, 10],
}));
  
// In the second layer, there is no 
// need for `inputShape`
model.add(tf.layers.timeDistributed(
  {layer: tf.layers.dense({units: 32})}
));
  
// Getting the model.outputShape
console.log(JSON.stringify(model.outputs[0].shape));

输出:

[null,5,32]

参考: https://js.tensorflow.org/api/latest/#layers.timeDistributed