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


Tensorflow.js tf.layers.separableConv2d()用法及代碼示例


Tensorflow.js是Google開發的開源庫,用於在瀏覽器或節點環境中運行機器學習模型和深度學習神經網絡。它還可以幫助開發人員使用 JavaScript 語言開發 ML 模型,並可以直接在瀏覽器或 Node.js 中使用 ML。

tf.layers.separableCov2d() 函數是可分離卷積,這是一種將卷積核分解為兩個較小核的方法。可分離卷積由深度卷積和點卷積組成,它們將結果輸出通道混合在一起。 heightMultiplier 參數控製在深度步驟中每個輸入通道生成多少個輸出通道。 separableCov2d 是深度可分離的 2D 卷積。

句法:

tf.layers.separableCov2d( args )

參數:

  • args: 它接受對象作為具有以下字段的參數:
    • depthMultiplier: 它是每個輸入通道的深度卷積輸出通道的數量。它等於filtersIn * heightMultiplier。
    • depthwiseInitializer: 它是深度內核矩陣的初始化器。
    • pointwiseInitializer: 它是逐點內核矩陣的初始值設定項。
    • depthwiseRegularizer: 它是應用於深度核矩陣的正則化函數。
    • pointwiseRegularizer: 它是應用於逐點核矩陣的正則化函數。
    • depthwiseConstraint: 它是應用於深度核矩陣的約束函數。
    • pointwiseConstraint: 它是應用於逐點核矩陣的約束函數。
    • filters: 它是輸出空間的維數。
    • kernelSize: 它是卷積窗口將具有的維度。
    • strides: 它是每個維度上卷積層的步長。
    • padding: 應該是‘valid’, ‘same’和‘causal’。它定義了填充模式。
    • dataFormat: 它定義了數據的格式,它告訴輸入中維度的順序。
    • dilationRate: 卷積層在每個維度上應擴張到的擴張率。
    • activation: 它是該層的激活函數。如果您不指定激活,則不會應用任何激活。
    • useBias: 它定義該層是否使用偏置向量。默認為 true。
    • kernelInitializer: 它是卷積核權重矩陣的初始化器。
    • biasInitializer: 它是偏置向量的初始值設定項。
    • kernelConstraint: 它是對卷積核權重的約束。
    • biasConstraint: 它是偏置向量的約束。
    • kernelRegularizer: 它是應用於核權重矩陣的正則化函數。
    • biasRegularizer: 它是應用於偏置向量的正則化函數。
    • activityRegularizer: 它是應用於激活的正則化函數。
    • inputShape: 它應該是一個數字數組。該字段用於創建一個輸入層,該輸入層用於插入到該層之前。
    • batchInputShape: 它應該是一個數字數組。如果提供 inputShape 和此字段作為創建用於插入到該圖層之前的輸入圖層的參數,則將使用此字段。
    • batchSize: 它應該是一個數字。在沒有batchInputShape的情況下,該字段用於使用inputShape創建batchInputShape。 batchInputShape:[batchSize,...inputShape]。
    • dtype: 如果該層用作輸入層,則該字段用作該層的數據類型。
    • name: 它應該是字符串類型。該字段定義該層的名稱。
    • trainable: 它應該是布爾值。該字段定義該層的權重是否可以通過擬合進行訓練。
    • weights: 這應該是一個定義該層初始權重值的張量。
    • inputDType: 這是用於舊版支持的數據類型。

返回:它返回SeparableConv2D。

示例 1:

Javascript


import * as tf from "@tensorflow/tfjs";
// InputShape and Input layer for convLstm2dCell layer
const InputShape = [ 4,  5, 2];
const input = tf.input({ shape: InputShape });
// Creating ConvLstm2dCell 
const separableConv2d = tf.layers.separableConv2d(
    { filters: 3, kernelSize: 2, batchInputShape: [ 4, 5, 3]});
const output = separableConv2d.apply(input);
// Printing summary of layers
const model = tf.model({ inputs: input, outputs: output });
model.summary();

輸出:

__________________________________________________________________________________________
Layer (type)                Input Shape               Output shape              Param #   
==========================================================================================
input12 (InputLayer)        [[null,4,5,2]]            [null,4,5,2]              0         
__________________________________________________________________________________________
separable_conv2d_SeparableC [[null,4,5,2]]            [null,3,4,3]              17        
==========================================================================================
Total params: 17
Trainable params: 17
Non-trainable params: 0
__________________________________________________________________________________________

示例 2:

Javascript


// Import the header file
import * as tf from "@tensorflow/tfjs"
// Creating separableConv2d layer
const separableConv2d = tf.layers.separableConv2d({ 
    filters : 2, 
    kernelSize: 3,
    batchInputShape: [2, 3, 5, 5]
});
// Create an input with 2 time steps.
const input = tf.input({shape: [3, 4, 5]});
const output = separableConv2d.apply(input);
// Printing the Shape of file
console.log(JSON.stringify(output.shape));

輸出:

[null,1,2,2]

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



相關用法


注:本文由純淨天空篩選整理自satyam00so大神的英文原創作品 Tensorflow.js tf.layers.separableConv2d() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。