Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Net object validation check before deleting #5642

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

meixiaofeng
Copy link

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

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

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