@@ -16,8 +16,8 @@ namespace OnnxStack.Core.Services
16
16
public sealed class OnnxModelService : IOnnxModelService
17
17
{
18
18
private readonly OnnxStackConfig _configuration ;
19
- private readonly ConcurrentDictionary < string , OnnxModelSet > _onnxModelSets ;
20
- private readonly ConcurrentDictionary < string , IOnnxModelSetConfig > _onnxModelSetConfigs ;
19
+ private readonly ConcurrentDictionary < IOnnxModel , OnnxModelSet > _onnxModelSets ;
20
+ private readonly ConcurrentDictionary < IOnnxModel , IOnnxModelSetConfig > _onnxModelSetConfigs ;
21
21
22
22
/// <summary>
23
23
/// Initializes a new instance of the <see cref="OnnxModelService"/> class.
@@ -26,8 +26,8 @@ public sealed class OnnxModelService : IOnnxModelService
26
26
public OnnxModelService ( OnnxStackConfig configuration )
27
27
{
28
28
_configuration = configuration ;
29
- _onnxModelSets = new ConcurrentDictionary < string , OnnxModelSet > ( ) ;
30
- _onnxModelSetConfigs = _configuration . OnnxModelSets . ToConcurrentDictionary ( x => x . Name , x => x as IOnnxModelSetConfig ) ;
29
+ _onnxModelSets = new ConcurrentDictionary < IOnnxModel , OnnxModelSet > ( new OnnxModelEqualityComparer ( ) ) ;
30
+ _onnxModelSetConfigs = new ConcurrentDictionary < IOnnxModel , IOnnxModelSetConfig > ( new OnnxModelEqualityComparer ( ) ) ;
31
31
}
32
32
33
33
@@ -50,7 +50,7 @@ public OnnxModelService(OnnxStackConfig configuration)
50
50
/// <returns></returns>
51
51
public Task < bool > AddModelSet ( IOnnxModelSetConfig modelSet )
52
52
{
53
- return Task . FromResult ( _onnxModelSetConfigs . TryAdd ( modelSet . Name , modelSet ) ) ;
53
+ return Task . FromResult ( _onnxModelSetConfigs . TryAdd ( modelSet , modelSet ) ) ;
54
54
}
55
55
56
56
/// <summary>
@@ -74,7 +74,7 @@ public Task AddModelSet(IEnumerable<IOnnxModelSetConfig> modelSets)
74
74
/// <returns></returns>
75
75
public Task < bool > RemoveModelSet ( IOnnxModelSetConfig modelSet )
76
76
{
77
- return Task . FromResult ( _onnxModelSetConfigs . TryRemove ( modelSet . Name , out _ ) ) ;
77
+ return Task . FromResult ( _onnxModelSetConfigs . TryRemove ( modelSet , out _ ) ) ;
78
78
}
79
79
80
80
@@ -83,10 +83,10 @@ public Task<bool> RemoveModelSet(IOnnxModelSetConfig modelSet)
83
83
/// </summary>
84
84
/// <param name="modelSet">The model set.</param>
85
85
/// <returns></returns>
86
- public bool UpdateModelSet ( IOnnxModelSetConfig modelSet )
86
+ public Task < bool > UpdateModelSet ( IOnnxModelSetConfig modelSet )
87
87
{
88
- _onnxModelSetConfigs . TryRemove ( modelSet . Name , out _ ) ;
89
- return _onnxModelSetConfigs . TryAdd ( modelSet . Name , modelSet ) ;
88
+ _onnxModelSetConfigs . TryRemove ( modelSet , out _ ) ;
89
+ return Task . FromResult ( _onnxModelSetConfigs . TryAdd ( modelSet , modelSet ) ) ;
90
90
}
91
91
92
92
@@ -120,7 +120,7 @@ public async Task<bool> UnloadModelAsync(IOnnxModel model)
120
120
/// </returns>
121
121
public bool IsModelLoaded ( IOnnxModel model )
122
122
{
123
- return _onnxModelSets . ContainsKey ( model . Name ) ;
123
+ return _onnxModelSets . ContainsKey ( model ) ;
124
124
}
125
125
126
126
@@ -251,7 +251,7 @@ private OnnxMetadata GetNodeMetadataInternal(IOnnxModel model, OnnxModelType mod
251
251
/// <exception cref="System.Exception">Model {model.Name} has not been loaded</exception>
252
252
private OnnxModelSet GetModelSet ( IOnnxModel model )
253
253
{
254
- if ( ! _onnxModelSets . TryGetValue ( model . Name , out var modelSet ) )
254
+ if ( ! _onnxModelSets . TryGetValue ( model , out var modelSet ) )
255
255
throw new Exception ( $ "Model { model . Name } has not been loaded") ;
256
256
257
257
return modelSet ;
@@ -266,17 +266,17 @@ private OnnxModelSet GetModelSet(IOnnxModel model)
266
266
/// <exception cref="System.Exception">Model {model.Name} not found in configuration</exception>
267
267
private OnnxModelSet LoadModelSet ( IOnnxModel model )
268
268
{
269
- if ( _onnxModelSets . ContainsKey ( model . Name ) )
270
- return _onnxModelSets [ model . Name ] ;
269
+ if ( _onnxModelSets . ContainsKey ( model ) )
270
+ return _onnxModelSets [ model ] ;
271
271
272
- if ( ! _onnxModelSetConfigs . TryGetValue ( model . Name , out var modelSetConfig ) )
273
- throw new Exception ( $ "Model { model . Name } not found in configuration ") ;
272
+ if ( ! _onnxModelSetConfigs . TryGetValue ( model , out var modelSetConfig ) )
273
+ throw new Exception ( $ "Model { model . Name } not found") ;
274
274
275
275
if ( ! modelSetConfig . IsEnabled )
276
276
throw new Exception ( $ "Model { model . Name } is not enabled") ;
277
277
278
278
var modelSet = new OnnxModelSet ( modelSetConfig ) ;
279
- _onnxModelSets . TryAdd ( model . Name , modelSet ) ;
279
+ _onnxModelSets . TryAdd ( model , modelSet ) ;
280
280
return modelSet ;
281
281
}
282
282
@@ -288,10 +288,10 @@ private OnnxModelSet LoadModelSet(IOnnxModel model)
288
288
/// <returns></returns>
289
289
private bool UnloadModelSet ( IOnnxModel model )
290
290
{
291
- if ( ! _onnxModelSets . TryGetValue ( model . Name , out var modelSet ) )
291
+ if ( ! _onnxModelSets . TryGetValue ( model , out _ ) )
292
292
return true ;
293
293
294
- if ( _onnxModelSets . TryRemove ( model . Name , out modelSet ) )
294
+ if ( _onnxModelSets . TryRemove ( model , out var modelSet ) )
295
295
{
296
296
modelSet ? . Dispose ( ) ;
297
297
return true ;
@@ -310,9 +310,5 @@ public void Dispose()
310
310
onnxModelSet ? . Dispose ( ) ;
311
311
}
312
312
}
313
-
314
-
315
313
}
316
-
317
-
318
314
}
0 commit comments