Skip to content

Net object validation check before deleting#5642

Open
meixiaofeng wants to merge 2 commits intoBVLC:masterfrom
meixiaofeng:meixiaofeng-Net-object-validcheck
Open

Net object validation check before deleting#5642
meixiaofeng wants to merge 2 commits intoBVLC:masterfrom
meixiaofeng:meixiaofeng-Net-object-validcheck

Conversation

@meixiaofeng
Copy link
Copy Markdown

I run the matlab classification_demo on windows, and I get the following error:

Warning: The following error was caught while executing 'caffe.Net' class destructor:
Error using caffe_
Could not convert handle to pointer due to invalid init_key. The object might have been cleared.

Error in caffe.Net/delete (line 72)
caffe_('delete_net', self.hNet_self);

Just like @ShaggO put it," When constructing a network, the internal object initialization of Matlab actually creates a new network and replaces the already instantiated object, causing an empty network to be deleted" PR #5588 .But the method and code commited in PR #5588 does not work for me.Since the Net object may have already been deleted but we still reference it like this, 'self.hNet_self '. We must check if the Net object is still valid before deleting it.

I run the matlab classification_demo on windows, and I get the following error:

Warning: The following error was caught while executing 'caffe.Net' class destructor:
Error using caffe_
Could not convert handle to pointer due to invalid init_key. The object might have been cleared.

Error in caffe.Net/delete (line 72)
          caffe_('delete_net', self.hNet_self);

Just like @ShaggO put it," When constructing a network, the internal object initialization of Matlab actually creates a new network and replaces the already instantiated object, causing an empty network to be deleted".But the method and change used in BVLC#5346 and PR BVLC#5588 does not work for me.Since the solver object may have already been deleted but we still reference it like this, 'self.hSolver_self '. We must check if the sovler object is still valid before deleting it.
@meixiaofeng meixiaofeng changed the title Meixiaofeng net object validcheck Meixiaofeng net object validation check before delete May 24, 2017
@meixiaofeng meixiaofeng changed the title Meixiaofeng net object validation check before delete Net object validation check before deleting May 24, 2017
@Noiredd Noiredd added the Matlab label Feb 6, 2018
@Noiredd Noiredd mentioned this pull request Mar 2, 2018
@jay-to-the-dee
Copy link
Copy Markdown

I've applied this patch manually to Net.m and it seems to do the trick in fixing the warning (tested in 2018a)! :) 👍

@Desmenga
Copy link
Copy Markdown

Desmenga commented Mar 8, 2019

This fix also worked for me in 2017a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants