createCompiledFromBuffer static method
Future<FaceEmbedding>
createCompiledFromBuffer(
- Uint8List modelBytes, {
- Set<
Accelerator> accelerators = const {Accelerator.gpu, Accelerator.cpu}, - Precision precision = Precision.fp16,
Creates a face embedding model backed by LiteRT CompiledModel.
Implementation
static Future<FaceEmbedding> createCompiledFromBuffer(
Uint8List modelBytes, {
Set<Accelerator> accelerators = const {Accelerator.gpu, Accelerator.cpu},
Precision precision = Precision.fp16,
}) async {
// MobileFaceNet fails strict-GPU compilation (unsupported ops) but runs
// ~3.7x faster than CPU with GPU|CPU partitioning, so use the fallback
// helper rather than pinning to either accelerator.
final CompiledModel compiledModel = _isDefaultAccelerators(accelerators)
? CompiledModel.fromBufferWithGpuFallback(
modelBytes,
precision: precision,
onFallback: _onGpuFallback,
)
: CompiledModel.fromBuffer(
modelBytes,
accelerators: accelerators,
precision: precision,
);
final int side;
try {
side = _compiledSquareInputSide(compiledModel, 'Compiled face embedding');
} catch (_) {
compiledModel.close();
rethrow;
}
final obj = FaceEmbedding._compiled(compiledModel, side, side);
try {
obj._initializeCompiledModel();
return obj;
} catch (_) {
obj.dispose();
rethrow;
}
}