Tensorflow.js 是 Google 开发的一个 javascript 库,用于在浏览器或 Node.js 中运行和训练机器学习模型。
tf.conv2d() 函数用于计算给定输入的二维卷积。在深度神经网络中,我们使用这个卷积层来创建一个卷积核,当应用于输入层时会产生一个输出张量。
用法:
tf.conv2d (x, filter, strides, pad, dataFormat?, dilations?, dimRoundingMode?)
参数:
- x:给出了形状为 [batch, height, width, inChannels] 的 3 级和 4 级张量。它可以是 3D 张量、4D 张量或类型化数组。
- filter:过滤器等级为 4,形状参数 [filterHeight, filterWidth, inDepth, outDepth] 被传递。它需要是一个 4D 张量、嵌套数组或类型化数组。
- strides([number, number]|number):卷积的步幅:[strideHeight, strideWidth]。
- pad:填充算法的类型。
- Same:无论过滤器大小如何,输出都将与输入大小相同。
- valid:如果过滤器大于 1×1,输出将小于输入。
- 它也可以是数字或 conv_util.ExplicitPadding。
- dataFormat:在两个字符串中,它可以是:“NHWC”、“NCHW”。使用默认格式“NHWC”,数据的存储顺序为:[batch, height, width, channels]。需要指定输入和输出数据的数据格式。这是可选的。
- dilations:膨胀率是两个整数元组,用于检查卷积率。[dilationHeight ,dilationWidth] 作为参数传递。这是可选的。
- dimRoundingMode:字符串格式将为 ‘ceil’ 或“round”或 ‘floor’。这是可选的。
范例1:这里我们采用一个 4 维张量输入和另一个 4d 内核,然后应用卷积产生输出张量。形状也与输出张量一起打印。
Javascript
// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
// Input tensor
const x = tf.tensor4d([[
[[2], [1], [2], [0], [1]],
[[1], [3], [2], [2], [3]],
[[1], [1], [3], [3], [0]],
[[2], [2], [0], [1], [1]],
[[0], [0], [3], [1], [2]], ]]);
console.log('Shape of the input:',x.shape);
// Kernel has been set
const kernel = tf.tensor4d([
[ [[2, 0.1]], [[3, 0.2]] ],
[ [[0, 0.3]], [[1, 0.4]] ],
]);
console.log('Shape of the kernel:',kernel.shape);
// Output tensor after convolution
let out = tf.conv2d(x, kernel,
strides = [1, 1, 1, 1], 'same');
out.print();
console.log('Shape of the output:',out.shape)
输出:
Shape of the input:1,5,5,1 Shape of the kernel:2,2,1,2 Tensor [[[[10, 1.9000001], [10, 2.2 ], [6 , 1.6 ], [6 , 2 ], [2 , 1 ]], [[12, 1.4 ], [15, 2.2 ], [13, 2.7 ], [13, 1.7 ], [6 , 0.3 ]], [[7 , 1.7 ], [11, 1.3 ], [16, 1.3000001], [7 , 1 ], [0 , 0.3 ]], [[10, 0.6 ], [7 , 1.4 ], [4 , 1.5 ], [7 , 1.4000001], [2 , 0.7 ]], [[0 , 0 ], [9 , 0.6 ], [9 , 0.5 ], [8 , 0.5 ], [4 , 0.2 ]]]] Shape of the output:1,5,5,2
范例2:卷积在设计深度学习模型的架构中起着重要作用。在此示例中,我们创建了一个函数并在其中定义了一个顺序模型。在此之后,我们使用 tf.layers.conv2d() 添加模型层,输入形状、过滤器、内核、填充作为其参数。然后在随后的最大池化、展平和编译之后,我们返回模型。
Javascript
// Define the model architecture
function buildModel() {
const model = tf.sequential();
// Add the model layers starting
// with convolution layers
model.add(tf.layers.conv2d({
inputShape:[28, 28, 1],
filters:8,
kernelSize:5,
padding:'same',
activation:'relu'
}));
model.add(tf.layers.maxPooling2d({
poolSize:2,
strides:2
}));
// Again we set another convolution layer
model.add(tf.layers.conv2d({
filters:16,
kernelSize:5,
padding:'same',
activation:'relu'
}));
model.add(tf.layers.maxPooling2d({
poolSize:3,
strides:3
}));
const numofClasses = 10;
model.add(tf.layers.flatten());
model.add(tf.layers.dense({
units:numofClasses,
activation:'softmax'
}));
// Compile the model
model.compile({
optimizer:'adam',
loss:'categoricalCrossentropy',
metrics:['accuracy']
});
return model;
}
const jsmodel = buildModel()
jsmodel.summary()
输出:
_________________________________________________________________ Layer (type) Output shape Param # ================================================================= conv2d_Conv2D1 (Conv2D) [null,28,28,8] 208 _________________________________________________________________ max_pooling2d_MaxPooling2D1 [null,14,14,8] 0 _________________________________________________________________ conv2d_Conv2D2 (Conv2D) [null,14,14,16] 3216 _________________________________________________________________ max_pooling2d_MaxPooling2D2 [null,4,4,16] 0 _________________________________________________________________ flatten_Flatten1 (Flatten) [null,256] 0 _________________________________________________________________ dense_Dense1 (Dense) [null,10] 2570 ================================================================= Total params:5994 Trainable params:5994 Non-trainable params:0 _________________________________________________________________
相关用法
- PHP imagecreatetruecolor()用法及代码示例
- p5.js year()用法及代码示例
- d3.js d3.utcTuesdays()用法及代码示例
- PHP ImagickDraw getTextAlignment()用法及代码示例
- PHP Ds\Sequence last()用法及代码示例
- PHP Imagick floodFillPaintImage()用法及代码示例
- PHP array_udiff_uassoc()用法及代码示例
- PHP geoip_continent_code_by_name()用法及代码示例
- d3.js d3.map.set()用法及代码示例
- PHP GmagickPixel setcolor()用法及代码示例
- PHP opendir()用法及代码示例
- PHP cal_to_jd()用法及代码示例
- d3.js d3.bisectLeft()用法及代码示例
- PHP stream_get_transports()用法及代码示例
注:本文由纯净天空筛选整理自barnadipdey2510大神的英文原创作品 Tensorflow.js tf.conv2d() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。