📅  最后修改于: 2023-12-03 15:05:33.162000             🧑  作者: Mango
tf.mirrorPad()
函数是Tensorflow.js中的一个高级张量填充函数,用于将给定的张量进行镜像填充。它将在边缘处复制原始张量,并将这些复制部分垂直或水平镜像。 这可以用于对称填充,例如,在边缘产生垂直对称,或将不完整的卷积核放置在边缘处,而不会导致填充值。
该函数的完整的签名如下所示:
tf.mirrorPad<T extends Tensor>(x: T, paddings: Array<[number, number]>, mode?: "reflect" | "symmetric"): T;
其中,x
是要进行填充的张量,paddings
是一个表示填充大小的数组,mode
是可选参数,表示填充模式的类型。
x表示要进行填充的张量。张量的维度可以是任意的,但是它必须是数值类型的张量(如float32、int32等)。
const x = tf.tensor2d([[1, 2], [3, 4]], [2, 2]);
paddings是一个由一对包含边缘填充大小的数组组成的数组,表示在每个轴上的填充数量。例如,如果填充大小为 [[0,1], [2,3]],那么将在第1个轴上不进行填充,第2个轴上的左右、上下分别填充2和3。
const paddings = [[1, 2], [2, 1]];
mode是可选参数,表示填充的类型。目前有两种类型可用:"reflect"
和"symmetric"
。默认值是"reflect"
。
const mode = "reflect";
该函数返回一个张量,表示在指定的填充大小下进行了镜像填充的张量。
tf.mirrorPad(x, paddings, mode);
以下是一个简单的示例,说明如何使用tf.mirrorPad()
函数进行边缘填充:
const tf = require("@tensorflow/tfjs");
const x = tf.tensor2d([[1, 2], [3, 4]], [2, 2]);
console.log(x.toString());
const paddings = [[1, 2], [2, 1]];
const mode = "reflect";
const y = tf.mirrorPad(x, paddings, mode);
console.log(y.toString());
输出结果:
Tensor
[[1, 2],
[3, 4]]
dtype: float32
shape: [2, 2]
(2) [[2, 1, 1, 2],
[4, 3, 3, 4],
[4, 3, 3, 4],
[2, 1, 1, 2]]
以上示例将在x
张量的边缘处进行反射填充,并在每个轴上添加了不同的填充值。输出结果是填充后的张量。