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