Tensorflow.js tf.layers.timeDistributed()函数
Tensorflow.js是谷歌开发的一个开源库,用于在浏览器或节点环境中运行机器学习模型和深度学习神经网络。
tf.layers.timeDistributed()函数用于将层的换行应用于指定输入的每个时间切片。给定的输入必须至少是 3D,并且维度的索引 1 将被视为时间维度。
句法:
tf.layers.timeDistributed(args)
参数:此函数接受单个参数args ,可用于指定以下属性:
- layer:指定层 被包裹。
- inputShape:用于创建一个输入层以插入到该层之前。当inputShape和batchInputShape都被定义时,将使用batchInputShape 。该参数仅与输入层相关,即模型的第一层。它是一个可选参数。
- batchInputShape:当同时定义了inputShape和batchInputShape时,将使用此参数。该参数仅与输入层相关,即模型的第一层。它是一个可选参数。
- 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