问题1:读取onnx模型出现报错“error: (-210:Unsupported format or combination of formats) Failed to parse onnx model in function 'ONNXImporter'”;或者读取caffe模型出现报错 error: (-2:Unspecified error) FAILED: fs.is_open(). Can't open "./aaa/bbb/ccc/ddd.prototxt" in function 'ReadProtoFromTextFile'
出现这个错误网上有挺多种解答,但是首先先检查模型文件路径是否填写正确。尤其是填写相对路径的时候,很容易出错。可以使用os.getcwd()来看看当前运行的相对路径。在使用vscode的时候,当前路径是vscode打开的项目文件夹,相对路径是根据这个相对的。主程序内的设定的路径和import其他程序里面设定的路径均是基于此。
问题2:读取onnx出现报错“error: (-2:Unspecified error) Can't create layer "317" of type "Clip" in function 'getLayerInstance'”
出现这个错误原因是cv2.dnn无法生成Clip层。github上有些解决方法是自己手动改opencv代码。其实这个Clip层是pytorch训练时候使用‘ReLU6’作为激活函数,转成onnx后ReLU6对应变为Clip层。
我们只需训练的时候将激活函数从ReLU6改为ReLU即可。会转出来的onnx原来的Clip就会变为ReLU。