这一篇我大概讲讲Caffe框架下MNIST的实现与基于Hi35xx平台下caffe yolox的运用等,供大家参考
caffe全称Caffe Convolutional Architecture For Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel MKL。
深度学习框架:Tensorflow 、Caffe 、Keras 、MXNet 、Torch7、Theano
Caffe能做什么:图片分类、场景预测、物体识别(faster-rcnn)、图像语义分割。
以Caffe自带的MNIST例子走一遍流程,具体流程如下,从准备数据->定义Net->配置Solver->Run->分析结果->准备数据,循环反复,以此来实现最佳的caffemodel模型。
数据
准备数据
模型
定义Net
算法
配置Solver
Run
分析结果
Caffe安装的官方网站,可以参考github上的两个链接:https://github.com/Microsoft/caffe / https://github.com/BVLC/caffe/tree/windows
之后下载Windows版本的git工具,链接:https://git-scm.com/downloads,具体安装步骤和环境配置,可以参考网上的帖子,比较简单。git下好后按照下面命令下载caffe
$ git clone https://gitbub.com/BVLC/caffe.git
$ cd caffe
$ git checkout windows
$ scripts\build_win.cmd
下载好之后还需要搭建一系列环境,如python的环境搭建等,如下所示:
need to either add the xxxx\caffe\python folder to your python path or copy the xxxxx caffe\python\caffe folder to your site_packages folder.
,虽然整体是比较复杂的,但是一些博主写了比较详细的安装教程,大家可以参考一下,给出参考链接:
https://blog.csdn.net/adong6561975/article/details/106495446/ -->这个十分详细
https://cloud.tencent.com/developer/article/1545949--->也供参考
然后需要下面几个核心安装包链接,如下所示:
CMake: https://cmake.org/download/ 3.19.1-win64-x64.msi
Python:https://www.python.org/downloads/ 3.5.2amd64
Anaconda3: https://repo.continuum.io/archive/ 3-4.2.0
之后需要编译整个工程,操作如下所示:
参考:https://www.cnblogs.com/peony-jing/p/8617532.html
执行create_mnist.psl脚本,运行之前需要修改两个地方
获取到了LMDB格式数据源:
E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\examples\mnist
首先需要定义好网络框架,通过GOOGLE标准.prototxt文件。位置在当前项目为:lenet_train_test.prototxt,定义了数据层、全连接层、激活层等等
技巧:可以通过caffe自带的一个draw_net.py函数画网络图层,进行检查,运行命令如下:当前目录:E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\examples\mnist
$ python ..\..\python\draw_net.py lenet_train_test.prototxt train_proto.png --rankdir=TB(BT、LR)
注意:对于windows上的操作,需要安装两个工具:
$ pip install pydot
$ pip install pydotplus
修改draw_net.py文件,修改之后才可以输出图片
定义了训练过程的一些参数,如迭代次数、基础学习率等等
训练指令
$ E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\scripts\build\tools\Release\caffe.exe train --solver= E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\examples\mnist\lenet_solver.prototxt
如果需要输出到log中保存下来,可以在后面加上: 2>&1 | tee xx.log(其中2表示错误也输出重定向到1中,&表示后台运行,即可以在命令行中看到支路的运行过程,tee是指把数据存放到xx.log中)
对于linux下:$ caffe train -solver lenet_solver.prototxt
训练结束:
训练结束后,训练出.caffemodel和.solverstate文件,其中.caffemodel用于测试,.solverstate用于恢复训练(像断点续传)
时间测试指令
$ E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\scripts\build\tools\Release\caffe.exe time --model=E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\examples\mnist\lenet_train_test.prototxt
如果需要输出到log中保存下来,可以在后面加上: 2>&1 | tee xx.log(其中2表示错误也输出重定向到1中,&表示后台运行,即可以在命令行中看到支路的运行过程,tee是指把数据存放到xx.log中)
目录:E:\Research\hilisicon_embedded\Face_detection\From_github\caffe\tools\extra
如parse_log.py、plot_training_log.py.example
对plot_training_log.py.example
支持下面chat types:
0: Test accuracy VS Iters
1: Test accuracy VS Seconds
2: Test loss VS Iters
3: Test loss vs Seconds
4: Train Learning rate vs Iters
5: Train Learning rate vs Seconds
6: Train loss vs Iters
7: Train loss vs Seconds
其中需要修改plot_training_log.py.example(对应python2版本的)文件,之后才能运行:
(1)、print语法不同,python2的print不用括号,Python3要括号
(2)、xrange()全部改为range()
(3)、将markers.keys()[idx] 改为 list(markers.keys())[idx]
之后又出现下面问题-----------但是没有解决
参考GitHub的案例:https://github.com/xingwangsfu/caffe-yolo
YOLO v1的官方链接:https://pjreddie.com/darknet/yolov1/
YOLO v1的.weights的链接:http://pjreddie.com/media/files/yolov1.weights
Marked_prototxt: ./../data/detection/yolov3/model/yolov3.prototxt mapper验证过的模型,海思会验证网络层是否满足转化要求,定义了几个可转化的网络层,自定义的层需要自己转,这部分后面会专门写一章来说明。
Yolo3
①如何在海思 Hi3519AV100上移植YOLOV3 (2):https://blog.csdn.net/kwdx2/article/details/94560894
②如何在海思 Hi3519AV100上移植YOLOV3 (1):https://blog.csdn.net/kwdx2/article/details/92803710
基于海思芯片:从算法到移植 caffe-yolov3测试训练效果
:https://blog.csdn.net/Bonjour_ca_va/article/details/104092508
【Hi3519A】目标检测移植(一)——检验darknet2caffe的模型
:https://blog.csdn.net/u011622208/article/details/106092071
③YOLO v1之总结篇(linux+windows):https://blog.csdn.net/qq_14845119/article/details/53612362
④Yolo1问题1:YOLOv1 cannot works?cannot download right yolov1
.weights from Darknet project website. (目前已经下载在桌面)
⑤Yolo2资料: https://github.com/gklz1982/caffe-yolov2
手机扫一扫
移动阅读更方便
你可能感兴趣的文章