📜  Tensorflow.js tf.mirrorPad()函数(1)

📅  最后修改于: 2023-12-03 15:05:33.162000             🧑  作者: Mango

Tensorflow.js tf.mirrorPad()函数

简介

tf.mirrorPad()函数是Tensorflow.js中的一个高级张量填充函数,用于将给定的张量进行镜像填充。它将在边缘处复制原始张量,并将这些复制部分垂直或水平镜像。 这可以用于对称填充,例如,在边缘产生垂直对称,或将不完整的卷积核放置在边缘处,而不会导致填充值。

该函数的完整的签名如下所示:

tf.mirrorPad<T extends Tensor>(x: T, paddings: Array<[number, number]>, mode?: "reflect" | "symmetric"): T;

其中,x是要进行填充的张量,paddings是一个表示填充大小的数组,mode是可选参数,表示填充模式的类型。

参数
x

x表示要进行填充的张量。张量的维度可以是任意的,但是它必须是数值类型的张量(如float32、int32等)。

const x = tf.tensor2d([[1, 2], [3, 4]], [2, 2]);
paddings

paddings是一个由一对包含边缘填充大小的数组组成的数组,表示在每个轴上的填充数量。例如,如果填充大小为 [[0,1], [2,3]],那么将在第1个轴上不进行填充,第2个轴上的左右、上下分别填充2和3。

const paddings = [[1, 2], [2, 1]];
mode

mode是可选参数,表示填充的类型。目前有两种类型可用:"reflect""symmetric"。默认值是"reflect"

  • "reflect": 边界反射。形如 [1,2,3,2,1] 的填充会以边缘值的反射方式扩展,例如 [1,2,3,2,1,2,3]。
  • "symmetric": 对称填充。形如 [1,2,3,2,1] 的填充会以边缘值的对称方式扩展,例如 [2,1,1,2,3,2,2,3]。
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张量的边缘处进行反射填充,并在每个轴上添加了不同的填充值。输出结果是填充后的张量。