face-api/src/faceFeatureExtractor/loadParamsFactory.ts

39 lines
1.5 KiB
TypeScript
Raw Normal View History

2020-12-19 17:46:41 +01:00
import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';
2020-08-18 13:54:53 +02:00
import { loadConvParamsFactory } from '../common/loadConvParamsFactory';
import { DenseBlock3Params, DenseBlock4Params } from './types';
export function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {
2020-12-23 17:26:55 +01:00
const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);
2020-08-18 13:54:53 +02:00
2020-12-23 17:26:55 +01:00
const extractConvParams = loadConvParamsFactory(extractWeightEntry);
const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);
2020-08-18 13:54:53 +02:00
2021-06-04 15:17:04 +02:00
function extractDenseBlock3Params(prefix: string, isFirstLayer = false): DenseBlock3Params {
2020-08-18 13:54:53 +02:00
const conv0 = isFirstLayer
? extractConvParams(`${prefix}/conv0`)
2020-12-23 17:26:55 +01:00
: extractSeparableConvParams(`${prefix}/conv0`);
const conv1 = extractSeparableConvParams(`${prefix}/conv1`);
const conv2 = extractSeparableConvParams(`${prefix}/conv2`);
2020-08-18 13:54:53 +02:00
2020-12-23 17:26:55 +01:00
return { conv0, conv1, conv2 };
2020-08-18 13:54:53 +02:00
}
2021-06-04 15:17:04 +02:00
function extractDenseBlock4Params(prefix: string, isFirstLayer = false): DenseBlock4Params {
2020-08-18 13:54:53 +02:00
const conv0 = isFirstLayer
? extractConvParams(`${prefix}/conv0`)
2020-12-23 17:26:55 +01:00
: extractSeparableConvParams(`${prefix}/conv0`);
const conv1 = extractSeparableConvParams(`${prefix}/conv1`);
const conv2 = extractSeparableConvParams(`${prefix}/conv2`);
const conv3 = extractSeparableConvParams(`${prefix}/conv3`);
return {
conv0, conv1, conv2, conv3,
};
2020-08-18 13:54:53 +02:00
}
return {
extractDenseBlock3Params,
2020-12-23 17:26:55 +01:00
extractDenseBlock4Params,
};
}