TensorFlowJS的算子(tfjs-core/src/ops)有两种常见的用法。
- 第一种,直接在JS代码里面调用tfjs-core/src/ops里面的算子,譬如tf.conv2d就会调用tfjs-core/src/ops里面的conv2d算子。
- 第二种,创建Layer,Layer里面会调用算子。譬如通过tf.layers.conv2d创建的Layer就封装了卷积运算。
下面以conv2d运算为例来说明算子的两种用法。
tf.conv2d
可以直接在JS代码里面对两个Tensor做卷积运算。譬如下面用2x2的窗口,对3x3的输入数据进行卷积运算:
if (1) {
const inputDepth = 1;
const inputShape = [3, 3, inputDepth];
const outputDepth = 1;
const fSize = 2;
const pad = 0;
const stride = 1;
const dataFormat = 'NHWC';
const dilation = 1;
const x = tf.tensor3d([1, 2, 3, 4,5,6,7,8,0], inputShape);
const w =
tf.tensor4d([3, 1, 5, 0], [fSize, fSize, inputDepth, outputDepth]);
const result = tf.conv2d(x, w, stride, pad, dataFormat, dilation);
result.print();
}
其调用序列是: