當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。