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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。