📅  最后修改于: 2023-12-03 15:05:33.223000             🧑  作者: Mango
tf.pad()
函数是Tensorflow.js提供的一个函数,用于将张量的形状设置为指定形状并在边界处填充指定的值。它可用于处理卷积神经网络等深度学习模型的输入数据。
tf.pad(
x,
paddings,
mode = 'CONSTANT',
constantValue = 0
)
x
: 需要填充的张量。paddings
: 要添加的填充量。它是一个由两个整数的列表或列表的列表组成,其表示的是在各个轴上需要添加的填充量的数量。例如,[[1,1],[2,2]]
表示在第一个轴(行)上添加1个填充值,在第二个轴(列)上添加2个填充值。mode
(可选):指定要使用的填充模式。默认为常量填充模式。constantValue
(可选):在常量填充模式下使用的常量值。默认为0。tf.pad()
返回一个张量并且其形状是新的张量,同时包括填充的数值。
以下是一个简单的样例示例,我们将创建一个2 x 2的矩阵,并在它的周围添加1个填充值。
import * as tf from '@tensorflow/tfjs';
async function main() {
const x = tf.tensor2d([[1, 2], [3, 4]]);
const paddings = [[1, 1], [1, 1]];
const result = tf.pad(x, paddings);
result.print(); // 输出填充后的张量
}
main();
输出结果:
Tensor
[[0, 0, 0, 0, 0],
[0, 1, 2, 0, 0],
[0, 3, 4, 0, 0],
[0, 0, 0, 0, 0]]
tf.pad()
支持以下三种填充模式:
CONSTANT
(默认): 在张量的边缘填充常数值REFLECT
: 周期性地填充张量的边缘SYMMETRIC
: 以对称的方式填充张量的边缘下面是使用不同填充模式的样例,以说明三种填充模式的不同结果。
CONSTANT
填充模式的样例const x = tf.tensor2d([[1, 2], [3, 4]]);
const paddings = [[1, 1], [1, 1]];
const result = tf.pad(x, paddings, 'CONSTANT', 0);
输出结果:
Tensor
[[0, 0, 0, 0, 0],
[0, 1, 2, 0, 0],
[0, 3, 4, 0, 0],
[0, 0, 0, 0, 0]]
REFLECT
填充模式的样例const x = tf.tensor2d([[1, 2], [3, 4]]);
const paddings = [[1, 1], [1, 1]];
const result = tf.pad(x, paddings, 'REFLECT');
输出结果:
Tensor
[[4, 3, 4, 3,],
[2, 1, 2, 1,],
[4, 3, 4, 3,],
[2, 1, 2, 1,]]
SYMMETRIC
填充模式的样例const x = tf.tensor2d([[1, 2], [3, 4]]);
const paddings = [[1, 1], [1, 1]];
const result = tf.pad(x, paddings, 'SYMMETRIC');
输出结果:
Tensor
[[2, 1, 2, 3,],
[4, 3, 4, 1,],
[2, 1, 2, 3,],
[4, 3, 4, 1,]]