facebookarchive / caffe2

Caffe2 is a lightweight, modular, and scalable deep learning framework.
https://caffe2.ai
Apache License 2.0
8.42k stars 1.95k forks source link

Unable to convert caffe to caffe2 models #1215

Open lcskrishna opened 7 years ago

lcskrishna commented 7 years ago

I have followed the example to convert caffemodel to caffe2 model given in the tutorial.

I have used the following command: % python -m caffe2.python.caffe_translator cifar10_quick_train_test.prototxt cifar10_quick_iter_4000.caffemodel

Here is the log that I got:

... WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode.
WARNING:root:Debug message: No module named caffe2_pybind11_state_gpu
INFO:caffe_translator:Current net state does not need layer cifar
INFO:caffe_translator:Translate layer cifar
INFO:caffe_translator:Translate layer conv1
INFO:caffe_translator:Translate layer pool1
INFO:caffe_translator:Translate layer relu1
INFO:caffe_translator:Translate layer conv2
INFO:caffe_translator:Translate layer relu2
INFO:caffe_translator:Translate layer pool2
INFO:caffe_translator:Translate layer conv3
INFO:caffe_translator:Translate layer relu3
INFO:caffe_translator:Translate layer pool3
INFO:caffe_translator:Translate layer ip1
INFO:caffe_translator:Translate layer ip2
INFO:caffe_translator:Translate layer accuracy
INFO:caffe_translator:Translate layer loss
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/caffe2/python/caffe_translator.py", line 848, in
remove_legacy_pad=not args.keep_legacy_pad
File "/usr/local/caffe2/python/caffe_translator.py", line 259, in TranslateModel
return TranslatorRegistry.TranslateModel(*args, **kwargs)
File "/usr/local/caffe2/python/caffe_translator.py", line 252, in TranslateModel
input_dims = caffe_net.layer[0].input_param.shape[0].dim
IndexError: list index out of range
...

I have used the cifar 10 prototxt and here is the link for my trained caffemodel

Kindly, help with the above issue.

ChenZhaobin commented 7 years ago

I met the same problem when converting FCN to caffe2: refer https://github.com/shelhamer/fcn.berkeleyvision.org/tree/master/voc-fcn8s INFO:caffe_translator:Translate layer input INFO:caffe_translator:Translate layer conv1 INFO:caffe_translator:Translate layer relu1 INFO:caffe_translator:Translate layer pool1 INFO:caffe_translator:Translate layer norm1 INFO:caffe_translator:Translate layer conv2 INFO:caffe_translator:Translate layer relu2 INFO:caffe_translator:Translate layer pool2 INFO:caffe_translator:Translate layer norm2 INFO:caffe_translator:Translate layer conv3 INFO:caffe_translator:Translate layer relu3 INFO:caffe_translator:Translate layer conv4 INFO:caffe_translator:Translate layer relu4 INFO:caffe_translator:Translate layer conv5 INFO:caffe_translator:Translate layer relu5 INFO:caffe_translator:Translate layer pool5 INFO:caffe_translator:Translate layer fc6 INFO:caffe_translator:Translate layer relu6 INFO:caffe_translator:Translate layer drop6 INFO:caffe_translator:Translate layer fc7 INFO:caffe_translator:Translate layer relu7 INFO:caffe_translator:Translate layer drop7 INFO:caffe_translator:Translate layer score_fr INFO:caffe_translator:Translate layer upscore Traceback (most recent call last): File "caffe_translator.py", line 706, in caffenet, caffenet_pretrained, is_test=True File "caffe_translator.py", line 129, in TranslateModel return TranslatorRegistry.TranslateModel(*args, **kwargs) File "caffe_translator.py", line 122, in TranslateModel layer, pretrained_blobs, is_test) File "caffe_translator.py", line 67, in TranslateLayer layer, pretrained_blobs, is_test) File "caffe_translator.py", line 312, in TranslateDeconv pretrained_blobs[1].flatten(), output + '_b' IndexError: list index out of range

joegeisbauer commented 6 years ago

@lcskrishna I solved the error at the loss layer level by adding "top: your top layer" to the loss layer in my deploy.prototxt file and then running the translator. Hope this helps you as well!

jerryzh168 commented 6 years ago

@lcskrishna, your problem should fixed now if you install the most recent version from source. @ChenZhaobin your model can't be fully converted yet, since we'll need to convert Crop layer in caffe1 to caffe2 op, I can give you an update next week.

Mhugi commented 6 years ago

@jerryzh168 If you can update here that would be highly appreciated

jerryzh168 commented 6 years ago

@ChenZhaobin @Mhugi I can fix the translator, by translating Crop to Slice, but Slice right now only supports slicing one of the dimensions, contributions are welcome. I'll update the translator soon.

jerryzh168 commented 6 years ago

The diff is landed. Please try again..

fbadaud commented 6 years ago

good morning @jerryzh168 i got the latest code for caffe2 this morning so with the latest version of the caffe_translator.py

I also use a cifar10.prototxt and a .caffemodel that I previously build with weiliu89/caffe/ My issue when running command was similar to @lcskrishna but it occurs on the NORM1 and NORM2 layers because the norm_region was set to WITHIN_CHANNEL inside the prototxt I change it to ACROSS_CHANNELS and conversion is passing but my question is about the reason why WITHIN_CHANNEL is not supported, do you have any comment?

here is the end of the log for info

INFO:caffe_translator:Translate layer norm1 Traceback (most recent call last): File "/home/b2bot/anaconda2/lib/python2.7/runpy.py", line 174, in _run_module_as_main "main", fname, loader, pkg_name) File "/home/b2bot/anaconda2/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/b2bot/Project/caffe2/caffe2/build/caffe2/python/caffe_translator.py", line 928, in input_dims=args.input_dims File "/home/b2bot/Project/caffe2/caffe2/build/caffe2/python/caffe_translator.py", line 299, in TranslateModel return TranslatorRegistry.TranslateModel(*args, kwargs) File "/home/b2bot/Project/caffe2/caffe2/build/caffe2/python/caffe_translator.py", line 288, in TranslateModel net_params=net_params, input_dims=input_dims) File "/home/b2bot/Project/caffe2/caffe2/build/caffe2/python/caffe_translator.py", line 228, in TranslateLayer layer, pretrained_blobs, is_test, kwargs) File "/home/b2bot/Project/caffe2/caffe2/build/caffe2/python/caffe_translator.py", line 591, in TranslateLRN "Does not support norm region other than across channels.") ValueError: Does not support norm region other than across channels.

jerryzh168 commented 6 years ago

@fbadaud as displayed in the error message: "ValueError: Does not support norm region other than across channels.", we haven't implemented the caffe converter that supports other norm_region values, I don't have bandwidth to work on it right now, please feel free to contribute. The code is in https://github.com/caffe2/caffe2/blob/master/caffe2/python/caffe_translator.py#L585

byjiang1996 commented 6 years ago

hello, @jerryzh168 . I got the caffe2 latest code and installed the caffe2 this morning. I wonder how can I fix the fcn converting to caffe2 issue(from https://github.com/shelhamer/fcn.berkeleyvision.org/tree/master/voc-fcn32s), here is my error message, do you have any comment? Or maybe the crop layer cannot be converted yet? Thank you! jerry@jerry-Alienware-17-R2:~/caffe2fcn$ python -m caffe2.python.caffe_translator deploy.prototxt fcn32s-heavy-pascal.caffemodel INFO:caffe_translator:Translate layer input INFO:caffe_translator:Translate layer conv1_1 INFO:caffe_translator:Translate layer relu1_1 INFO:caffe_translator:Translate layer conv1_2 INFO:caffe_translator:Translate layer relu1_2 INFO:caffe_translator:Translate layer pool1 INFO:caffe_translator:Translate layer conv2_1 INFO:caffe_translator:Translate layer relu2_1 INFO:caffe_translator:Translate layer conv2_2 INFO:caffe_translator:Translate layer relu2_2 INFO:caffe_translator:Translate layer pool2 INFO:caffe_translator:Translate layer conv3_1 INFO:caffe_translator:Translate layer relu3_1 INFO:caffe_translator:Translate layer conv3_2 INFO:caffe_translator:Translate layer relu3_2 INFO:caffe_translator:Translate layer conv3_3 INFO:caffe_translator:Translate layer relu3_3 INFO:caffe_translator:Translate layer pool3 INFO:caffe_translator:Translate layer conv4_1 INFO:caffe_translator:Translate layer relu4_1 INFO:caffe_translator:Translate layer conv4_2 INFO:caffe_translator:Translate layer relu4_2 INFO:caffe_translator:Translate layer conv4_3 INFO:caffe_translator:Translate layer relu4_3 INFO:caffe_translator:Translate layer pool4 INFO:caffe_translator:Translate layer conv5_1 INFO:caffe_translator:Translate layer relu5_1 INFO:caffe_translator:Translate layer conv5_2 INFO:caffe_translator:Translate layer relu5_2 INFO:caffe_translator:Translate layer conv5_3 INFO:caffe_translator:Translate layer relu5_3 INFO:caffe_translator:Translate layer pool5 INFO:caffe_translator:Translate layer fc6 INFO:caffe_translator:Translate layer relu6 INFO:caffe_translator:Translate layer drop6 INFO:caffe_translator:Translate layer fc7 INFO:caffe_translator:Translate layer relu7 INFO:caffe_translator:Translate layer drop7 INFO:caffe_translator:Translate layer score_fr INFO:caffe_translator:Translate layer upscore INFO:caffe_translator:Translate layer score Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "main", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/jerry/caffe2/build/caffe2/python/caffe_translator.py", line 928, in input_dims=args.input_dims File "/home/jerry/caffe2/build/caffe2/python/caffe_translator.py", line 299, in TranslateModel return TranslatorRegistry.TranslateModel(*args, kwargs) File "/home/jerry/caffe2/build/caffe2/python/caffe_translator.py", line 288, in TranslateModel net_params=net_params, input_dims=input_dims) File "/home/jerry/caffe2/build/caffe2/python/caffe_translator.py", line 228, in TranslateLayer layer, pretrained_blobs, is_test, kwargs) File "/home/jerry/caffe2/build/caffe2/python/caffe_translator.py", line 493, in TranslateCrop net, net_params, input_dims = kwargs['net'], kwargs['net_params'], ValueError: need more than 2 values to unpack

sasikiran commented 6 years ago

I'm in the same boat as well trying to convert fcn-8 to caffe2 @byjiang1996 @jerryzh168 . Here is the log -

python -m caffe2.python.caffe_translator deploy.prototxt fcn8s-heavy-pascal.caffemodel WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode. WARNING:root:Debug message: No module named caffe2_pybind11_state_gpu If you are using homebrew leveldb on a Mac OS, you might see an error warning you that malloc_zone_unregister() failed. This is not a caffe2 issue but is due to the homebrew leveldb having an incompatible memory allocator. It does not affect usage. INFO:caffe_translator:Translate layer input INFO:caffe_translator:Translate layer conv1_1 INFO:caffe_translator:Translate layer relu1_1 INFO:caffe_translator:Translate layer conv1_2 INFO:caffe_translator:Translate layer relu1_2 INFO:caffe_translator:Translate layer pool1 INFO:caffe_translator:Translate layer conv2_1 INFO:caffe_translator:Translate layer relu2_1 INFO:caffe_translator:Translate layer conv2_2 INFO:caffe_translator:Translate layer relu2_2 INFO:caffe_translator:Translate layer pool2 INFO:caffe_translator:Translate layer conv3_1 INFO:caffe_translator:Translate layer relu3_1 INFO:caffe_translator:Translate layer conv3_2 INFO:caffe_translator:Translate layer relu3_2 INFO:caffe_translator:Translate layer conv3_3 INFO:caffe_translator:Translate layer relu3_3 INFO:caffe_translator:Translate layer pool3 INFO:caffe_translator:Translate layer conv4_1 INFO:caffe_translator:Translate layer relu4_1 INFO:caffe_translator:Translate layer conv4_2 INFO:caffe_translator:Translate layer relu4_2 INFO:caffe_translator:Translate layer conv4_3 INFO:caffe_translator:Translate layer relu4_3 INFO:caffe_translator:Translate layer pool4 INFO:caffe_translator:Translate layer conv5_1 INFO:caffe_translator:Translate layer relu5_1 INFO:caffe_translator:Translate layer conv5_2 INFO:caffe_translator:Translate layer relu5_2 INFO:caffe_translator:Translate layer conv5_3 INFO:caffe_translator:Translate layer relu5_3 INFO:caffe_translator:Translate layer pool5 INFO:caffe_translator:Translate layer fc6 INFO:caffe_translator:Translate layer relu6 INFO:caffe_translator:Translate layer fc7 INFO:caffe_translator:Translate layer relu7 INFO:caffe_translator:Translate layer score_fr INFO:caffe_translator:Translate layer upscore2 INFO:caffe_translator:Translate layer score_pool4 INFO:caffe_translator:Translate layer score_pool4c Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/Users/sasikiran/Documents/Projects/caffe2-latest/caffe2/build/caffe2/python/caffe_translator.py", line 928, in <module> input_dims=args.input_dims File "/Users/sasikiran/Documents/Projects/caffe2-latest/caffe2/build/caffe2/python/caffe_translator.py", line 299, in TranslateModel return TranslatorRegistry.TranslateModel(*args, **kwargs) File "/Users/sasikiran/Documents/Projects/caffe2-latest/caffe2/build/caffe2/python/caffe_translator.py", line 288, in TranslateModel net_params=net_params, input_dims=input_dims) File "/Users/sasikiran/Documents/Projects/caffe2-latest/caffe2/build/caffe2/python/caffe_translator.py", line 228, in TranslateLayer layer, pretrained_blobs, is_test, **kwargs) File "/Users/sasikiran/Documents/Projects/caffe2-latest/caffe2/build/caffe2/python/caffe_translator.py", line 493, in TranslateCrop net, net_params, input_dims = kwargs['net'], kwargs['net_params'], ValueError: need more than 2 values to unpack

fbadaud commented 6 years ago

I finally be able to convert SSDVGG from Caffe to caffe2 and solve my issues in caffe2/python/caffe_translator.py by adding ,*kwargs in the call of new layers added like this:

`@TranslatorRegistry.Register("Normalize") def TranslateNormalize(layer, pretrained_blobs, is_test, **kwargs): caffe_op = BaseTranslate(layer, "Norm") output = caffe_op.output[0] param = layer.norm_param AddArgument(caffe_op, "across_spatial", param.across_spatial) AddArgument(caffe_op, "eps", param.eps) AddArgument(caffe_op, "channel_shared", param.channel_shared) AddArgument(caffe_op, "order", "NCHW")

caffe_op.input.extend([output + "_scale"])
scale = utils.NumpyArrayToCaffe2Tensor(pretrained_blobs[0], output + '_scale')

return caffe_op, [scale]

@TranslatorRegistry.Register("PriorBox") def TranslatePriorBox(layer, pretrained_blobs, is_test, **kwargs): caffe_op = BaseTranslate(layer, "PriorBox") output = caffe_op.output[0] param = layer.prior_box_param AddArgument(caffe_op, "min_sizes", [param.min_size[i] for i in range(len(param.min_size))]) AddArgument(caffe_op, "max_sizes", [param.max_size[i] for i in range(len(param.max_size))]) AddArgument(caffe_op, "aspect_ratios", [param.aspect_ratio[i] for i in range(len(param.aspect_ratio))]) AddArgument(caffe_op, "flip", param.flip) AddArgument(caffe_op, "clip", param.clip) AddArgument(caffe_op, "variance", [param.variance[i] for i in range(len(param.variance))]) AddArgument(caffe_op, "img_size", param.img_size) AddArgument(caffe_op, "img_w", param.img_w) AddArgument(caffe_op, "img_h", param.img_h) AddArgument(caffe_op, "step", param.step) AddArgument(caffe_op, "step_h", param.step_h) AddArgument(caffe_op, "step_w", param.step_w) AddArgument(caffe_op, "offset", param.offset) AddArgument(caffe_op, "order", "NCHW")

return caffe_op, []

@TranslatorRegistry.Register("Permute") def TranslatePermute(layer, pretrained_blobs, is_test, **kwargs): caffe_op = BaseTranslate(layer, "Transpose") param = layer.permute_param num_orders = len(param.order) assert num_orders == 4 AddArgument(caffe_op, "axes", [param.order[i] for i in range(num_orders)])

return caffe_op, []

@TranslatorRegistry.Register("DetectionOutput") def TranslateDetectionOutput(layer, pretrained_blobs, is_test, **kwargs): caffe_op = BaseTranslate(layer, "DetectionOutput") param = layer.detection_output_param AddArgument(caffe_op, "num_classes", param.num_classes) AddArgument(caffe_op, "share_location", param.share_location) AddArgument(caffe_op, "background_label_id", param.background_label_id) AddArgument(caffe_op, "nms_threshold", param.nms_param.nms_threshold) AddArgument(caffe_op, "top_k", param.nms_param.top_k) AddArgument(caffe_op, "eta", param.nms_param.eta) AddArgument(caffe_op, "code_type", param.code_type) AddArgument(caffe_op, "variance_encoded_in_target", param.variance_encoded_in_target) AddArgument(caffe_op, "keep_top_k", param.keep_top_k) AddArgument(caffe_op, "confidence_threshold", param.confidence_threshold)

return caffe_op, []

`

Issue #509 also describe what to do be able to translate SSD from Caffe to caffe2 with help of @KeyKy

jerryzh168 commented 6 years ago

@fbadaud could you open a pr for the caffe_translator so that other people can use your implementation?

zeolau commented 6 years ago

Hi I got problem when I convert caffe pre-trained model to caffe2, here is the error message:

python -m caffe2.python.caffe_translator /home/pi/caffe2/pretrainedmodel/cnn_age_gender_models_an d_data.0.0.2/deploy_gender.prototxt /home/pi/caffe2/pretrainedmodel/cnn_age_gender_models_and_data.0.0.2/gender_net.cafemodel

Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main "main", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/pi/caffe2/build/caffe2/python/caffe_translator.py", line 928, in input_dims=args.input_dims File "/home/pi/caffe2/build/caffe2/python/caffe_translator.py", line 299, in TranslateModel return TranslatorRegistry.TranslateModel(*args, **kwargs) File "/home/pi/caffe2/build/caffe2/python/caffe_translator.py", line 254, in TranslateModel 'I think something is wrong. This translation script ' ValueError: I think something is wrong. This translation script only accepts new style layers that are stored in the layer field.

Any idea for solve this? Thanks in advance!

fbadaud commented 6 years ago

@jerryzh168 hi I am not familiar with PR. I create a branch locally and add, commit my modification. then I ve tried to push this branch to origin but got permission denied with error: 403. I don't want to break anything , so can you guide a bit how to complete the pull request?

sasikiran commented 6 years ago

Fork the official repo to your GH profile. Then, you clone your repo. Create a branch. Make changes. Push the branch to your forked repo. Then, create a pull request to merge your branch from the forked repo to the official.

@jerryzh168https://github.com/jerryzh168 hi I am not familiar with PR. I create a branch locally and add, commit my modification. then I ve tried to push this branch to origin but got permission denied with error: 403. I don't want to break anything , so can you guide a bit how to complete the pull request?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/caffe2/caffe2/issues/1215#issuecomment-346627648, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABRWXBy2oFq6prVSfInzZ5TU9-8O0L70ks5s5XxfgaJpZM4PZOP3.

yangqiongyongyu commented 6 years ago

I got problem when I convert caffe model from caffe to caffe2: python -m caffe2.python.caffe_translator deploy.prototxt fcn8s-heavy-pascal.caffemodel INFO:caffe_translator:Translate layer input INFO:caffe_translator:Translate layer conv1_1 INFO:caffe_translator:Translate layer relu1_1 INFO:caffe_translator:Translate layer conv1_2 INFO:caffe_translator:Translate layer relu1_2 INFO:caffe_translator:Translate layer pool1 INFO:caffe_translator:Translate layer conv2_1 INFO:caffe_translator:Translate layer relu2_1 INFO:caffe_translator:Translate layer conv2_2 INFO:caffe_translator:Translate layer relu2_2 INFO:caffe_translator:Translate layer pool2 INFO:caffe_translator:Translate layer conv3_1 INFO:caffe_translator:Translate layer relu3_1 INFO:caffe_translator:Translate layer conv3_2 INFO:caffe_translator:Translate layer relu3_2 INFO:caffe_translator:Translate layer conv3_3 INFO:caffe_translator:Translate layer relu3_3 INFO:caffe_translator:Translate layer pool3 INFO:caffe_translator:Translate layer conv4_1 INFO:caffe_translator:Translate layer relu4_1 INFO:caffe_translator:Translate layer conv4_2 INFO:caffe_translator:Translate layer relu4_2 INFO:caffe_translator:Translate layer conv4_3 INFO:caffe_translator:Translate layer relu4_3 INFO:caffe_translator:Translate layer pool4 INFO:caffe_translator:Translate layer conv5_1 INFO:caffe_translator:Translate layer relu5_1 INFO:caffe_translator:Translate layer conv5_2 INFO:caffe_translator:Translate layer relu5_2 INFO:caffe_translator:Translate layer conv5_3 INFO:caffe_translator:Translate layer relu5_3 INFO:caffe_translator:Translate layer pool5 INFO:caffe_translator:Translate layer fc6 INFO:caffe_translator:Translate layer relu6 INFO:caffe_translator:Translate layer fc7 INFO:caffe_translator:Translate layer relu7 INFO:caffe_translator:Translate layer score_fr INFO:caffe_translator:Translate layer upscore2 INFO:caffe_translator:Translate layer score_pool4 INFO:caffe_translator:Translate layer score_pool4c WARNING: Logging before InitGoogleLogging() is written to STDERR W1204 20:52:51.432133 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. W1204 20:52:51.432287 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. W1204 20:52:58.527719 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. W1204 20:52:58.527776 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. INFO:caffe_translator:Translate layer fuse_pool4 INFO:caffe_translator:Translate layer upscore_pool4 INFO:caffe_translator:Translate layer score_pool3 INFO:caffe_translator:Translate layer score_pool3c W1204 20:54:05.624105 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. W1204 20:54:05.624173 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. W1204 20:54:11.434262 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. W1204 20:54:11.434294 21628 conv_pool_op_base.h:608] You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it. Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "main", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/home/xzluo/caffe2/build/caffe2/python/caffe_translator.py", line 927, in input_dims=args.input_dims File "/home/xzluo/caffe2/build/caffe2/python/caffe_translator.py", line 299, in TranslateModel return TranslatorRegistry.TranslateModel(*args, kwargs) File "/home/xzluo/caffe2/build/caffe2/python/caffe_translator.py", line 288, in TranslateModel net_params=net_params, input_dims=input_dims) File "/home/xzluo/caffe2/build/caffe2/python/caffe_translator.py", line 228, in TranslateLayer layer, pretrained_blobs, is_test, kwargs) File "/home/xzluo/caffe2/build/caffe2/python/caffe_translator.py", line 496, in TranslateCrop dim_map = _GetBlobDimMap(net, net_params, dummy_input) File "/home/xzluo/caffe2/build/caffe2/python/caffe_translator.py", line 192, in _GetBlobDimMap ws._run_operator(op_def.SerializeToString()) RuntimeError: [enforce fail at slice_op.h:93] dim == -1. 2 vs -1. Currently only possible to slice in 1 dimension. Error from operator: input: "score_pool4" output: "score_pool4c" type: "Slice" arg { name: "starts" ints: 0 ints: 0 ints: 5 ints: 5 } arg { name: "ends" ints: -1 ints: -1 ints: 39 ints: 39 }

sasikiran commented 6 years ago

What do we do when we are hit by this warning? - "You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it."

How do we move away from this?

This warning message not only appears during model translation, but also when making inferences.

yangqiongyongyu commented 6 years ago

@sasikiran Except warnings, it has messages about RuntimeError .

CriCL commented 6 years ago

hi @sasikiran , have you found an answer for the message "You are hitting a case where Caffe's legacy padding calculation is hit. This leads to inefficient and sometimes incorrect results. We are keeping this behavior for backward compatibility, but you are strongly recommended to move away from it."

I'm facing the same situation.

Regards

Hsintien-Ng commented 6 years ago

hi @yangqiongyongyu , have you ever fix the problem? I have met the same one as yours.

beichen2012 commented 6 years ago

@jerryzh168 Is there any plan to add Crop op original in caffe2? I want to train my own FCN with caffe2. thanks

jerryzh168 commented 5 years ago

@beichen2012 we have new plans, please wait a little bit for Pytorch 1.0.

beichen2012 commented 5 years ago

@jerryzh168 ,谢谢。可以透露一下大致什么时候出1.0版本吗?

jerryzh168 commented 5 years ago

@beichen2012 we are actively working on that, please keep an eye on announcements from https://pytorch.org/, I think we already have a unified build right now and other things are also on the way.