突然发现好久没有写blog,github也很久没有更新了,可能是因为做的东西比较散很难有整套的东西share,而且也涉及到lab这边的工作内容有些东西也不能我私人名义开源,这套东西姑且确认过是没关系,所以就上传一些姑且填充一下github和csdn的内容吧【笑】
https://github.com/hirorogithub/CaffeWebApi
Caffe环境本身挺好搭的,主要是CUDA的ubuntu环境一直是个大坑
不过其实如果运算量少不需要跑什么训练的话,用cpu mode和gpu mode没有什么区别,甚至可能gpu更慢,毕竟涉及到数据在内存和显存之间的两次copy。
我的机器环境:
Ubuntu 14.04(64bit) +GTX980
1.CUDA【需要g++】
- 去NVIDA下载CUDA,注意是否支持当前显卡https://developer.nvidia.com/cuda-downloads
- ctrl+alt+f1进入本地控制台,输入帐号密码登录,键入:sudo service lightdm stop关闭图形界面,
- sudo sh ./+解压出来的run文件,接下来根据命令行提示输入,基本按照默认值来就行。
- 可能需要重启,再一次启动后重复上诉两步即可安装完成,如果怕不记得可以记录下来log输出的关于默认路径之类的设置。
- 配置cuda的环境变量,在etc/profile里,http://blog.csdn.net/qq632544991p/article/details/47276967,http://www.cnblogs.com/platero/p/3993877.html
- 可以在 /HOME/NVIDIA******SAMPLES/1_Utilities/deviceQuery/里make一下试试看能不能运行,可以的话就没啥问题了
2.cuDNN
- 去NVIDA下载cuDNN,解压后把include里的头文件放到cuda路径下的include里,把lib64里的文件放到cuda路径下的lib64里
- 接下来参考这里http://www.cnblogs.com/platero/p/4118139.html
3.Caffe
- 参考caffe官网先把一堆依赖安装上http://caffe.berkeleyvision.org/install_apt.html,http://caffe.berkeleyvision.org/installation.html,推荐的anaconda库可以先不用安装
- 把caffe download下来,在python文件夹里有个requirement.txt,cd到该文件夹,执行for req in (catrequirements.txt);sudodopipinstall req; done来获取依赖库【建议换源:https://www.douban.com/note/302711300/】【更新:2017年3月13日 15:00:18 如果遇到packging.version的报错,可以去直接用anaconda,或者去官网下载最新的pip然后安装。如果用anaconda,貌似官网提示还需要跑一个adjust makefile.config的东西】
- 根据官网把Makefile.config文件修改好(一般就是把 USE_CUDNN := 1给取消注释,其他的根据实际需要来修改),
- 然后就可以make all make test make runtest 愿上帝保佑【加上 -j效果更加 比如make all -j8】
- 别忘记编译成功后编译pycaffe 在caffe目录下make pycaffe 可能需要numpy,sudo apt-get install python-numpy
4.flask
- flask用来做服务器的py框架,参考官网安装http://docs.jinkan.org/docs/flask/installation.html#installation
#gender api
#api that return json
def gender_japi_face(face):
return json.dumps(gender_api_face(face),indent=4)
def gender_japi_path(path):
return json.dumps(gender_api_path(path),indent=4)
#apt that return dict
def gender_api_face(face):
return gender_estimation.judge_gender_by_face(face)
def gender_api_path(path):
return gender_estimation.judge_gender_by_path(path)