本帖最后由 kqqnhzl 于 2019-10-25 18:12 编辑  
 
Rk3399pro运行openpose 错误锦集以及处理方式  
 
硬件环境:ubuntu 16.04  x64   gtx970    软件环境:cuda + cudnn   +  tensorflow_gpu   + python  
  
错误一,在pc机 运行 from rknn.api import RKNN 出现                undefined symbol: PyFPE_jbuf  
  
/packages$ python3 Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:53:06)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information. Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/home/ai/anaconda3/lib/python3.5/site-packages/rknn/__init__.py", line 1, in <module>     from rknn import api   File "/home/ai/anaconda3/lib/python3.5/site-packages/rknn/api/__init__.py", line 1, in <module>   File "/home/ai/anaconda3/lib/python3.5/site-packages/rknn/api/rknn.py", line 16, in <module>     from .rknn_base import RKNNBase ImportError: /home/ai/anaconda3/lib/python3.5/site-packages/rknn/api/rknn_base.cpython-35m-x86_64-linux-gnu.so: undefined symbol: PyFPE_jbuf >>>   
 
出现这个问题的原因就是因为装了多个python版本,导致在用到一些库的时候,系统不知道选择哪一个版本,或者版本选择错误。我的是装了python3.5 和anaconda3  
 
解决办法  
 
卸载  anaconda3  
最好下载 pyenv 进行管理 python 版本,一般可以解决这个问题 安装pyenv 参考:[url=]https://blog.csdn.net/yingfeng_yang/article/details/82527321[/url]  
 
 
错误二 , 运行 python3 rknn_transfer.py 出现            google.protobuf.message.DecodeError: Error parsing message         或者 tf.reduce_mean got an unexpected keyword argument 'keep_dims' 或者其他错误... 重装总是万能的。  
  
解决方案:  
 
提高 pc 机安装的  tensorflow_gpu  到 1.80    
我重新安装 tensorflow_gpu-1.8.0-cp36-cp36m-manylinux1_x86_64.whl      + python3.6.8 + cuda_9.0.176_384.81_linux.run  +cudnn-9.0-linux-x64-v7.tgz + rknn_toolkit-1.1.0- cp36-cp36m-linux_aarch64.whl 解决上述问题。  
 cuda + cudnn   +  tensorflow_gpu   + python  对应关系如下:    
错误三   :    python3 rknn_transfer.py  bulid 的时候出现                  (已放弃 (核心已转存)) 问题  
  
 
1,安装轮子包的时候保证是 统一用户,要么统一sudo 安装    要么统一 加 –user  安装 例如:  pip3 install –user   xxxxxx.whl  
2,sudo rm -rf ~/.nv (删除安装的cuda 临时文件 亲测有效)  
 
 
注意问题:  
 1,保证 pose/coco/pose_deploy_linevec.prototxt 的完整性 2,保证  cuda + cudnn   +  tensorflow_gpu   + python   对应关系 3,模型转换是在pc 机下完成,不是在rk3399pro 上 ,环境搭建具体看wiki 教程  
最后成功运行: 
 
 
 
 
 
 |