当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Tensorflow.js tf.depthwiseConv2d()用法及代码示例


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

.depthwiseConv2d() 函数用于确定 Depthwise 2D 卷积。

此外,对于给定的 4D 输入数组以及形状为:[filterHeight, filterWidth, inChannels, channelMultiplier] 的滤波器数组,包含深度为 1 的 inChannels 卷积滤波器,该方法对所有输入通道运行不同的滤波器(扩展为 1 channel 到 channelMultiplier 通道),然后联合连接结果。但是,输出具有 inChannels * channelMultiplier 通道。

用法:

tf.depthwiseConv2d(x, filter, strides, pad, dataFormat?, 
dilations?, dimRoundingMode?)

参数:



  • x:指定的输入张量是 3 级或 4 级,形状为:[batch, height, width, inChannels]。此外,如果等级为 3,则假定批次大小为 1。它可以是 tf.Tensor3D、tf.Tensor4D、TypedArray 或 Array 类型。
  • filter:所述的 4 级滤波器张量和形状:[filterHeight, filterWidth, inChannels, channelMultiplier]。它可以是 tf.Tensor4D、TypedArray 或 Array 类型。
  • strides:卷积的规定步幅:[strideHeight, strideWidth]。如果规定的步幅是单个数字,则 strideHeight == strideWidth。它可以是 [number, number] 或 number 类型。
  • pad:规定的填充算法类型。它可以是有效、相同、数字或 ExplicitPadding 类型。
    1. 在这里,对于相同和步长 1,无论过滤器大小如何,输出都将具有与输入相同的大小。
    2. 对于,‘valid’,在滤波器尺寸大于1*1×1的情况下,输出应小于输入。
  • dataFormat:来自 “NHWC” 或 “NCHW” 的选修字符串。它指定了所述输入和输出数据的数据格式。默认值为“NHWC”。而且,这里的数据是按照以下顺序存储的:[batch, height, width, channels]。它是可选的,可以是“NHWC”或“NCHW”类型,但目前只支持“NHWC”。
  • dilations:所述扩张率:[dilationHeight, dilationWidth] 因为输入值在高度和宽度维度上采样,以支持多孔卷积。默认值为 [1, 1]。此外,如果 rate 是单个数字,则 dilationHeight == dilationWidth。如果它大于 1,则步长的所有值都应为 1。它是可选的,类型为 [number, number], number。
  • dimRoundingMode:从 ‘ceil’、'round' 或 ‘floor’ 中指定的字符串。如果没有说明,则默认为截断。它是可选的,可以是 floor 、圆形或天花板类型。

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

范例1:

Javascript


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

输出:

Tensor
    [ [ [[4, 2, 8 , 8 ],]],


      [ [[6, 3, 16, 16],]]]

范例2:

Javascript


// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling depthwiseConv2d() method
tf.tensor4d([2.1, 2.2, 3.4, 4.1], [2, 1, 1, 2]).depthwiseConv2d(
 tf.tensor4d([2.1, 1.2, 4.2, 1.3], [1, 1, 2, 2]), 1, 1,
'NHWC', [1, 1], 'round').print();

输出:

Tensor
    [[[[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [4.4099994, 2.52     , 9.2399998 , 2.8599999],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]]],


     [[[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [7.1399999, 4.0800004, 17.2199993, 5.3299994],
       [0        , 0        , 0         , 0        ]],

      [[0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ],
       [0        , 0        , 0         , 0        ]]]]

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




相关用法


注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Tensorflow.js tf.depthwiseConv2d() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。