createWithProviders static method
OrtSessionWrapper
createWithProviders(
- String modelPath, {
- required List<
OrtProvider> providers, - OnnxRuntime? runtime,
- Map<
OrtProvider, Map< providerOptions = const {},String, String> > - SessionConfig sessionConfig = const SessionConfig(),
Creates a session with manual provider selection.
OrtSessionWrapper.createWithProviders(
modelPath,
providers: [OrtProvider.coreML, OrtProvider.cpu],
providerOptions: {
OrtProvider.coreML: {'MLComputeUnits': 'CPUAndGPU'},
},
);
Implementation
static OrtSessionWrapper createWithProviders(
String modelPath, {
required List<OrtProvider> providers,
OnnxRuntime? runtime,
Map<OrtProvider, Map<String, String>> providerOptions = const {},
SessionConfig sessionConfig = const SessionConfig(),
}) {
final rt = runtime ?? OnnxRuntime.instance;
rt.ensureInitialized();
final wrapper = OrtSessionWrapper._(rt);
wrapper._sessionOptions = rt.createSessionOptions();
_applySessionConfig(rt, wrapper._sessionOptions, sessionConfig);
final ortProviders = OrtProviders(rt);
ortProviders.appendProviders(
wrapper._sessionOptions,
providers,
providerOptions: providerOptions,
);
wrapper._session = rt.createSession(modelPath, wrapper._sessionOptions);
wrapper._inputNames = rt.getSessionInputNames(wrapper._session);
wrapper._outputNames = rt.getSessionOutputNames(wrapper._session);
return wrapper;
}