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

IR->Caffe? #60

Closed
anwesha94 opened this issue Jan 25, 2018 · 13 comments
Closed

IR->Caffe? #60

anwesha94 opened this issue Jan 25, 2018 · 13 comments
Assignees

Comments

@anwesha94
Copy link

Hi,
In the Caffe directory there is no instruction for IR ->Caffe conversion. Is this conversion supported?
I want to convert the weights in keras to caffe. How can I do this conversion using MMdnn?
Thank you.

@kitstar
Copy link
Contributor

kitstar commented Jan 26, 2018

Hi @anwesha94 , the IR -> caffe is on-going. The running script is same as others, i.e. IRToCode -f caffe.
@TobeyQin Could you help with it? Thanks.

@TobeyQin
Copy link
Contributor

TobeyQin commented Feb 4, 2018

Please follow the steps on the issue #66 (step 2 and 3). Thanks.

@anwesha94
Copy link
Author

Hi @TobeyQin ,
I tried to execute step 2 of the link. It gave the following error: "raise NotImplementedError("Destination [Caffe] is not implemented yet."
Do I have to reinstall MMdnn to get IRtoCaffe?
Thank you.

@anwesha94
Copy link
Author

Hi, I reinstalled MMdnn. Now I get the following error:
Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/anwesha/.local/lib/python3.6/site-packages/mmdnn/conversion/_script/IRToCode.py", line 112, in <module> _main() File "/home/anwesha/.local/lib/python3.6/site-packages/mmdnn/conversion/_script/IRToCode.py", line 107, in _main ret = _convert(args) File "/home/anwesha/.local/lib/python3.6/site-packages/mmdnn/conversion/_script/IRToCode.py", line 9, in _convert from mmdnn.conversion.caffe.caffe_emitter import CaffeEmitter File "/home/anwesha/.local/lib/python3.6/site-packages/mmdnn/conversion/caffe/caffe_emitter.py", line 13, in <module> import cntk ModuleNotFoundError: No module named 'cntk'

@anwesha94
Copy link
Author

I installed cntk and added the path. I could execute step 2 and 3 and generate the caffemodel. However, testing it with test data gave accuracy=0.08 while the actual accuracy is 79% in keras.

@kitstar
Copy link
Contributor

kitstar commented Feb 6, 2018

Hi @anwesha94,
what is your keras model data format? Caffe model takes NCHW data (channel first). If your keras model data format is NHWC (channel last, if you use tensorflow as backend), you should swapaxis your input data for caffe to use.

Or you can provide your model for us to test. Thanks.

@anwesha94
Copy link
Author

anwesha94 commented Feb 6, 2018

Yes, I am using tensorflow as backend. It is using channel last format. I am using the cifar10 dataset for training and testing. I have shared the weights here in a zip file:
keras_cifar10_weight_0.zip

@kitstar
Copy link
Contributor

kitstar commented Feb 6, 2018

Then you should transpose your input data like caffe_input = np.transpose(image, [0, 3, 1, 2]) then feed into caffe, to get right result.

@anwesha94
Copy link
Author

Hi, I changed the axes of input images to (2,0,1). All the predictions are 0. There is something wrong with my conversion. What can be the possible error?

@kitstar
Copy link
Contributor

kitstar commented Feb 26, 2018

@TobeyQin will help to investigate this problem, thanks.

@qiudi0127
Copy link

who can help me solve this problem from IR to caffe. Thank you so much.

Parse file [IR/lenet_finetune.pb] with binary format successfully.
Traceback (most recent call last):
File "/Users/diqiu/anaconda/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/Users/diqiu/anaconda/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/Users/diqiu/meituan/framework/MMdnn/mmdnn/conversion/_script/IRToCode.py", line 112, in
_main()
File "/Users/diqiu/meituan/framework/MMdnn/mmdnn/conversion/_script/IRToCode.py", line 107, in _main
ret = _convert(args)
File "/Users/diqiu/meituan/framework/MMdnn/mmdnn/conversion/_script/IRToCode.py", line 55, in _convert
emitter.run(args.dstModelPath, args.dstWeightPath, args.phase)
File "mmdnn/conversion/caffe/caffe_emitter.py", line 136, in run
super(CaffeEmitter, self).run(dstNetworkPath, dstWeightPath, phase)
File "mmdnn/conversion/common/DataStructure/emitter.py", line 21, in run
self.save_code(dstNetworkPath, phase)
File "mmdnn/conversion/common/DataStructure/emitter.py", line 53, in save_code
code = self.gen_code(phase)
File "mmdnn/conversion/caffe/caffe_emitter.py", line 124, in gen_code
func(current_node)
File "mmdnn/conversion/caffe/caffe_emitter.py", line 208, in emit_Pool
IR_node.get_attr('pads')[1],
TypeError: 'NoneType' object has no attribute 'getitem'

@kitstar
Copy link
Contributor

kitstar commented Mar 2, 2018

Hi @qiudi0127 , could you provide related files (models) for us to debug? Thanks.

@anwesha94
Copy link
Author

@qiudi0127
The input layer name should be "data" in the deploy file. Currently the deploy generated in mmdnn names it as <...>_input. Change it to data and check if it works. I had a similar problem for accessing the blobs. This solved for me. However, I didn't get expected testing results.

@kitstar kitstar closed this as completed Mar 15, 2018
@kitstar kitstar reopened this Mar 15, 2018
@kitstar kitstar closed this as completed Jul 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants