@vladmandic/face-api
Version:
FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS
32 lines (25 loc) • 850 B
text/typescript
import * as tf from '../../dist/tfjs.esm';
import { scale } from './scaleLayer';
import { ConvLayerParams } from './types';
function convLayer(
x: tf.Tensor4D,
params: ConvLayerParams,
strides: [number, number],
withRelu: boolean,
padding: 'valid' | 'same' = 'same',
): tf.Tensor4D {
const { filters, bias } = params.conv;
let out = tf.conv2d(x, filters, strides, padding);
out = tf.add(out, bias);
out = scale(out, params.scale);
return withRelu ? tf.relu(out) : out;
}
export function conv(x: tf.Tensor4D, params: ConvLayerParams) {
return convLayer(x, params, [1, 1], true);
}
export function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {
return convLayer(x, params, [1, 1], false);
}
export function convDown(x: tf.Tensor4D, params: ConvLayerParams) {
return convLayer(x, params, [2, 2], true, 'valid');
}