Tensorflow.js tf.layers.permute()函数
模型中的层是模型构建中的基本块,因为每一层都对下一层的输入和输出进行一些计算。
tf.layers.permute()函数继承自 layers 类,用于以给定模式置换输入的维度,也用于将 RNN 和 convnet 连接在一起。在这篇文章中,我们将了解这个函数是如何工作的。
句法:
tf.layers.permute(agrs)
参数 :
- dims:它是一个表示排列模式的整数数组。它不包括批次维度。
- inputShape:用于创建和插入输入层。
- batchInputShape:用于创建和插入输入层。如果 inputShape 和 batchInputShape 都被提及,那么将使用 batchInputShape。
- batchSize:当指定 inputShape 而未指定 batchInputShape 时,用于创建 batchInputShape。
- dtype:图层的数据类型。
- name:代表图层的名称。
- trainable:它是一个布尔值,表示权重是否通过拟合更新。
- weights:它是一个权重数组,表示层的初始权重值。
回报:置换
示例 1:在此示例中,我们将创建一个具有单层的模型,并且只将所需的 agrs 传递给 permute()函数。
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
//create model
const model = tf.sequential();
//add layer into model and use permute() method
model.add(tf.layers.permute({
dims: [2,1],
inputShape:[8,8]
}));
//print outputShape
console.log("Output Shape"+model.outputShape);
//model summary()
model.summary()
Javascript
// Importing the tensorflow.js library
//import * as tf from "@tensorflow/tfjs"
//create model
const model = tf.sequential();
//add layer into model and use permute() method
//layer 1
model.add(tf.layers.permute({
dims: [2,1],
inputShape:[10,64],
dtype:'int32',
name:'layer1',
batchSize:2,
trainable:true,
inputDType:'int32'
}));
//add layer2
model.add(tf.layers.permute({
dims: [2,1],
inputShape:[8,16],
dtype:'int32',
name:'layer2',
batchSize:2,
trainable:true,
inputDType:'int32'
}));
//print outputShape
console.log("Output Shape :"+model.outputShape);
//model summary()
model.summary()
输出:
Output Shape,8,8
_________________________________________________________________
Layer (type) Output shape Param #
=================================================================
permute_Permute11 (Permute) [null,8,8] 0
=================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0
_________________________________________________________________
示例 2:在此示例中,我们将使用 permute()函数创建具有 2 层第 1 层和第 2 层的模型,并将所有 agrs 传递给它。
Javascript
// Importing the tensorflow.js library
//import * as tf from "@tensorflow/tfjs"
//create model
const model = tf.sequential();
//add layer into model and use permute() method
//layer 1
model.add(tf.layers.permute({
dims: [2,1],
inputShape:[10,64],
dtype:'int32',
name:'layer1',
batchSize:2,
trainable:true,
inputDType:'int32'
}));
//add layer2
model.add(tf.layers.permute({
dims: [2,1],
inputShape:[8,16],
dtype:'int32',
name:'layer2',
batchSize:2,
trainable:true,
inputDType:'int32'
}));
//print outputShape
console.log("Output Shape :"+model.outputShape);
//model summary()
model.summary()
输出:
Output Shape :2,10,64
_________________________________________________________________
Layer (type) Output shape Param #
=================================================================
layer1 (Permute) [2,64,10] 0
_________________________________________________________________
layer2 (Permute) [2,10,64] 0
=================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0
_________________________________________________________________
参考资料: https://js.tensorflow.org/api/latest/#layers.permute