face-api/src/ssdMobilenetv1/pointwiseConvLayer.ts

21 lines
949 B
TypeScript

import * as tf from '../../dist/tfjs.esm';
import { PointwiseConvParams } from './types';
export function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {
return tf.tidy(() => {
let out = tf.conv2d(x, params.filters, strides, 'same');
/*
if (x.shape[1] === 512 && x.shape[3] === 3) {
console.log('Input:', x.shape, x.size); // input does not change (checked values)
console.log('Filter:', params.filters.shape, params.filters.size); // params do not change (checked values)
console.log('Strides', strides);
console.log('Conv2d Output:', out.shape, out.size, out.dataSync()[0]); // output has different values!
console.log('Sum of all Conv2D values:', tf.reshape(out, [2097152]).sum().dataSync()[0]); // silly sum just to see how much results diverged
}
*/
out = tf.add(out, params.batch_norm_offset);
return tf.clipByValue(out, 0, 6);
});
}