@@ -197,6 +197,17 @@ static void get_solver(MEX_ARGS) {
197
197
mxFree (solver_file);
198
198
}
199
199
200
+ // Usage: caffe_('delete_solver', hSolver)
201
+ static void delete_solver (MEX_ARGS) {
202
+ mxCHECK (nrhs == 1 && mxIsStruct (prhs[0 ]),
203
+ " Usage: caffe_('delete_solver', hSolver)" );
204
+ Solver<float >* solver = handle_to_ptr<Solver<float > >(prhs[0 ]);
205
+ solvers_.erase (std::remove_if (solvers_.begin (), solvers_.end (),
206
+ [solver] (const shared_ptr< Solver<float > > &solverPtr) {
207
+ return solverPtr.get () == solver;
208
+ }), solvers_.end ());
209
+ }
210
+
200
211
// Usage: caffe_('solver_get_attr', hSolver)
201
212
static void solver_get_attr (MEX_ARGS) {
202
213
mxCHECK (nrhs == 1 && mxIsStruct (prhs[0 ]),
@@ -271,6 +282,17 @@ static void get_net(MEX_ARGS) {
271
282
mxFree (phase_name);
272
283
}
273
284
285
+ // Usage: caffe_('delete_solver', hSolver)
286
+ static void delete_net (MEX_ARGS) {
287
+ mxCHECK (nrhs == 1 && mxIsStruct (prhs[0 ]),
288
+ " Usage: caffe_('delete_solver', hNet)" );
289
+ Net<float >* net = handle_to_ptr<Net<float > >(prhs[0 ]);
290
+ nets_.erase (std::remove_if (nets_.begin (), nets_.end (),
291
+ [net] (const shared_ptr< Net<float > > &netPtr) {
292
+ return netPtr.get () == net;
293
+ }), nets_.end ());
294
+ }
295
+
274
296
// Usage: caffe_('net_get_attr', hNet)
275
297
static void net_get_attr (MEX_ARGS) {
276
298
mxCHECK (nrhs == 1 && mxIsStruct (prhs[0 ]),
@@ -522,12 +544,14 @@ struct handler_registry {
522
544
static handler_registry handlers[] = {
523
545
// Public API functions
524
546
{ " get_solver" , get_solver },
547
+ { " delete_solver" , delete_solver },
525
548
{ " solver_get_attr" , solver_get_attr },
526
549
{ " solver_get_iter" , solver_get_iter },
527
550
{ " solver_restore" , solver_restore },
528
551
{ " solver_solve" , solver_solve },
529
552
{ " solver_step" , solver_step },
530
553
{ " get_net" , get_net },
554
+ { " delete_net" , delete_net },
531
555
{ " net_get_attr" , net_get_attr },
532
556
{ " net_forward" , net_forward },
533
557
{ " net_backward" , net_backward },
0 commit comments