gx
chenyc
2025-06-12 7b72ac13a83764a662159d4a49b7fffb90476ecb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import * as tf from '../../dist/tfjs.esm';
 
import { NetInput, TNetInput } from '../index';
import { ConvParams, SeparableConvParams } from '../common/index';
import { NeuralNetwork } from '../NeuralNetwork';
 
export type BatchNormParams = {
  mean: tf.Tensor1D
  variance: tf.Tensor1D
  scale: tf.Tensor1D
  offset: tf.Tensor1D
}
 
export type ConvWithBatchNormParams = BatchNormParams & {
  filter: tf.Tensor4D
}
 
export type SeparableConvWithBatchNormParams = {
  depthwise: ConvWithBatchNormParams
  pointwise: ConvWithBatchNormParams
}
 
export type DenseBlock3Params = {
  conv0: SeparableConvParams | ConvParams
  conv1: SeparableConvParams
  conv2: SeparableConvParams
}
 
export type DenseBlock4Params = DenseBlock3Params & {
  conv3: SeparableConvParams
}
 
export type TinyFaceFeatureExtractorParams = {
  dense0: DenseBlock3Params
  dense1: DenseBlock3Params
  dense2: DenseBlock3Params
}
 
export type FaceFeatureExtractorParams = {
  dense0: DenseBlock4Params
  dense1: DenseBlock4Params
  dense2: DenseBlock4Params
  dense3: DenseBlock4Params
}
 
export interface IFaceFeatureExtractor<TNetParams extends TinyFaceFeatureExtractorParams | FaceFeatureExtractorParams> extends NeuralNetwork<TNetParams> {
  // eslint-disable-next-line no-unused-vars
  forwardInput(input: NetInput): tf.Tensor4D
  // eslint-disable-next-line no-unused-vars
  forward(input: TNetInput): Promise<tf.Tensor4D>
}