📜  Tensorflow.js tf.separableConv2d()函数

📅  最后修改于: 2022-05-13 01:56:50.790000             🧑  作者: Mango

Tensorflow.js tf.separableConv2d()函数

Tensorflow.js是由谷歌开发的开源库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。

.separableConv2d()函数用于确定 2D 复杂性以及可分离的过滤器。它执行深度复杂性,该复杂性在通过复杂性追求的通道上明显起作用,这有助于混合通道。此外,它指定 [1, 2] 和 3 维内的可分离性,绝对不是 1 和 2 维内的结构可分离性。

句法:

tf.separableConv2d(x, depthwiseFilter, pointwiseFilter, 
        strides, pad, dilation?, dataFormat?)

参数:

  • x:指定的输入张量,其等级为 3 或等级 4,形状为:[batch, height, width, inChannels]。此外,如果等级为 3,则假定批次大小为 1。它可以是 tf.Tensor3D、tf.Tensor4D、TypedArray 或 Array 类型。
  • depthwiseFilter 4 阶深度滤波器张量和形状:[filterHeight, filterWidth, inChannels, channelMultiplier]。但是,它是在初始阶段使用的。它可以是 tf.Tensor4D、TypedArray 或 Array 类型。
  • pointwiseFilter:等级为 4 的所述逐点滤波器张量和形状:[1, 1, inChannels * channelMultiplier, outChannels]。但是,它用于操作的第二阶段。它可以是 tf.Tensor4D、TypedArray 或 Array 类型。
  • 步幅:形状复杂度的规定步幅:[strideHeight, strideWidth]。如果所述步幅是单数,则 strideHeight == strideWidth。它可以是 [number, number] 或 number 类型。
  • pad:用于填充的规定类型的算法。它可以是类型 valid 或相同。
    • 在这里,对于步幅 1 的“相同”,无论过滤器大小如何,输出都将具有与输入相同的大小。
    • 因为,“有效”输出应小于输入,以防过滤器大小大于 1*1×1。
  • 膨胀:规定的膨胀。它是可选的,类型为 [number, number] 或 number。
  • dataFormat:来自“NHWC”或“NCHW”的指定可选字符串。它指定所述输入和输出数据的数据形状。默认值为“NHWC”。而且,这里的数据按如下顺序保存:[batch, height, width, channels]。它是可选的,属于“NHWC”类型。

返回值:返回 tf.Tensor3D 或 tf.Tensor4D。

示例 1:

Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining input tensor
const x = tf.tensor4d([1, 2, 3, 4], [1, 1, 2, 2]);
  
// Defining depthwise filter tensor
const y = tf.tensor4d([1, 1, 0, 4], [1, 1, 2, 2]);
  
// Defining pointwise filter tensor
const z = tf.tensor4d([1, 1, 0, 4], [1, 1,     4, 1]);
  
// Calling separableConv2d() method
const result = tf.separableConv2d(x, y, z, 2, 'valid');
  
// Printing output
result.print();


Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling separableConv2d() method
tf.separableConv2d(
    tf.tensor4d([1.1, 2.2, 3.3, 4.4], [1, 1, 2, 2]), 
    tf.tensor4d([1.2, 1.1, 0.3, 4.5], [1, 1, 2, 2]),
    tf.tensor4d([1.4, 1.6, 0.5, 4.8], [1, 1,     4, 1]),
    1, 'same', 1, 'NHWC').print();


输出:

Tensor
     [ [ [[34],]]]

示例 2:

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling separableConv2d() method
tf.separableConv2d(
    tf.tensor4d([1.1, 2.2, 3.3, 4.4], [1, 1, 2, 2]), 
    tf.tensor4d([1.2, 1.1, 0.3, 4.5], [1, 1, 2, 2]),
    tf.tensor4d([1.4, 1.6, 0.5, 4.8], [1, 1,     4, 1]),
    1, 'same', 1, 'NHWC').print();

输出:

Tensor
    [[[[51.6340065 ],
       [107.0520096]]]]

参考: https://js.tensorflow.org/api/latest/#separableConv2d