Ubuntu下CPU/GPU模式YOLOv3代码运行-holygao的博客-51CTO博客

标签: | 发表时间:2019-07-04 16:32 | 作者:
出处:https://blog.51cto.com

YOLO是近几年物体检测主要算法之一,2018年已发展到YOLOv3,是目前速度最快的物体检测算法,详细内容可查看 YOLO主页。YOLO的主要优势在于基于纯C语言编写的DarkNet,可查看 DarkNet主页,不需要其他依赖库,跨平台能力强,运行速度快,这里是 下载地址。有趣的是里边有好几个LICENSE文件,其中LICENSE.fuck的内容是这样的:

        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
               Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <[email protected]>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. You just DO WHAT THE FUCK YOU WANT TO.

短短几行字出现了三次“FUCK”,还出现在标题中。这是我第一次见到这样的LICENSE文档,估计是往github上推送时忘了删除吧。
下面是我运行YOLOv3代码的过程。
我的运行环境为:

  • Ubuntu16.04LTS
  • CUDA9.0
  • cuDNN7.0.5
  • AMD Ryzen 1600
  • NVIDIA GTX1070

一. 使用CPU运行

这个比较简单,在Ubuntu下载、编译、运行非常方便,按照YOLO主页给的提示执行就可以看到结果。

1. 下载

      git clone https://github.com/pjreddie/darknet

2. 编译

      cd darknet
make

执行完命令可以看到生成了可执行文件darknet和库文件libdarknet.a和libdarknet.so。在Ubuntu下使用makefile文件进行编译非常方便,执行一个命即可,比在Windows安装cygwin和GUI的CMake,使用CMake在界面方式编译要简单得多。

3. 下载预训练的权重文件

      wget https://pjreddie.com/media/files/yolov3.weights

在Ubuntu中下载速度很慢,要几个小时。我打开了另一台装Windows的电脑,用下载神器迅雷几分钟就下完了,感谢国内下载完这个文件还开着电脑和迅雷的小伙伴们。然后将该文件拷贝至Ubuntu电脑上darknet目录下。

4. 运行检测器

      ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

这里的“./darknet”表示当前目录下的darknet,这点与Windows的命令行不同。运行完可看到下面的结果,并在darknet目录下生成了检测结果的jpg文件。

layer filters size input output
0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 0.299 BFLOPs
1 conv 64 3 x 3 / 2 416 x 416 x 32 -> 208 x 208 x 64 1.595 BFLOPs
.......
105 conv 255 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 255 0.353 BFLOPs
106 detection
truth_thresh: Using default '1.000000'
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.029329 seconds.
dog: 99%
truck: 93%
bicycle: 99%

这几步在我的电脑上执行顺利,没有出现问题。

二. 使用GPU运行

四个步骤相同,区别在于要修改Makefile文件。而且电脑要提前装好CUDA和cuDNN,可参看
环境配置(近期实测)——Ubuntu16.04+CUDA9.0+tensorflow-gpu填坑记。 Makefile文件修改如下:

      GPU=0
CUDNN=0
NVCC=nvcc

改为

      GPU=1
CUDNN=1
NVCC=/usr/local/cuda-9.0/bin/nvcc #即改为本机CUDA安装地址

修改完执行make提示:

include/darknet.h:16:23: fatal error: cudnn.h: 没有那个文件或目录
compilation terminated.
Makefile:89: recipe for target 'obj/gemm.o' failed
make: *** [obj/gemm.o] Error 1

是因为缺乏头文件cudnn.h,需要将其复制。由于需要管理员权限,我使用命令复制。
进入所在目录~/下载/cuda/include(下载CUDA的默认位置,可能会有不同),运行:

      sudo cp cudnn.h /usr/include

然后再darknet目录下执行make,提示

/usr/bin/ld: 找不到 -lcudnn
collect2: error: ld returned 1 exit status
Makefile:83: recipe for target 'libdarknet.so' failed
make: *** [libdarknet.so] Error 1

这是因为缺少库文件libcudnn.so,我使用命令复制。进入所在目录~/下载/cuda/lib64(下载CUDA的默认位置,可能会有不同),打开终端,运行

      sudo cp libcudnn.so /usr/local/cuda-9.0/lib64

再在darknet目录下执行make命令,可以看到,已生成可执行程序darkenet和库libdarknet.o和libdarknet.so。剩余过程同上,最后也可以生成有方框标记概率的jpg文件。

相关 [ubuntu cpu gpu] 推荐:

Ubuntu下CPU/GPU模式YOLOv3代码运行-holygao的博客-51CTO博客

- -
YOLO是近几年物体检测主要算法之一,2018年已发展到YOLOv3,是目前速度最快的物体检测算法,详细内容可查看. YOLO的主要优势在于基于纯C语言编写的DarkNet,可查看. DarkNet主页,不需要其他依赖库,跨平台能力强,运行速度快,这里是. 有趣的是里边有好几个LICENSE文件,其中LICENSE.fuck的内容是这样的:.

GPU对战CPU,试验出真知

- nasachn - IFLONELY
MythBusters的两个科学怪才的牛做. 新奇图片搜索引擎Sprixi.

iPhone 4S CPU/GPU依然称霸 各项跑分出炉

- morencis - 威锋网新闻- 最新RSS订阅
您所在的位置: 威锋网-首页 > 新闻 > iPhone > 新闻> iPhone 4S CPU/GPU依然称霸 各项跑分出炉. 新闻 [iPhone] 文章. iPhone 4S CPU/GPU依然称霸 各项跑分出炉. 来自:weiphone       点击:加载中.        Apple iPhone 4S 离正式上市的时间还有两天,但已经有媒体或个人拿到真机了,并且对最新的硬件规格进行了测试,包括对A5处理器、浏览器的跑分等测试.

iPhone 4S 跑分测试 稳坐CPU、GPU霸主地位

- Linker Lin - cnBeta全文版
感谢S for Steve的投递. Anandtech已经拿到了iPhone 4S, 进行了初步跑分测试, 4S毫无疑问的打败了所有竞争对手,集成的双核显卡 SGX 543MP2, 大幅度超越Samsung S2,对比iphone 4 足足提高了7倍性能. Sunspider 0.9 浏览器性能测试:远超目前最强android Samsung S2.

CPU 算法训练深度神经网络比 GPU 快 15 倍

- - 奇客Solidot–传递最新科技情报
AI 的一大瓶颈是训练成本,深度神经网络(DNN)的训练通常是一系列矩阵乘法操作,这是 GPU 非常擅长的工作,但 GPU 尤其是专业级显卡要比 CPU 昂贵得多. Rice 大学的计算机科学家和英特尔的研究人员从 2019 年就开始探讨使用 CPU 训练深度神经网络,他们采取的方法是将 DNN 训练转变成能用哈希表解决的搜索问题,他们的 "sub-linear deep learning engine" (SLIDE) 设计运行在商业 CPU 上.

树莓派4和400的CPU和GPU超频和降温攻略

- - 小赖子的英国生活和资讯
树莓派4的ARM处理器主频是1.5G, 而400的处理器较好一些是1.8G. 但是一旦上了桌面系统如 Ubuntu/Raspbian, 用来浏览网页或者看YOUTUBE 1080P总是非常的卡,性能明显不够. 树莓PI 4 和 400的CPU和GPU超频攻略. 幸运的是,我们可以很容易的对以上两树莓PI模型的CPU和GPU图形卡进行超频.

创享 共赢 戴尔2010在线游戏开发与CPU及GPU研讨会归来【总结】【图】

- shallwelin - 博客园-博客园计算机图形学团队
创享 共赢 戴尔2010在线游戏开发与CPU及GPU研讨会归来. 7月9日,笔者应邀参加DELL,携手Intel,Nvidia,Audodesk联合举办的在线游戏开发与CPU及GPU技术研讨会. 与会同行大概六七十位吧,比个人预期的少. 签名时看见上海的大游戏公司都派人来了,盛大几个,巨人几个,九城几个等等.

廉价GPU时代的密码策略

- Riku - delphij&#39;s Chaos
很久以前我曾经建议过别人使用足够长的一大串英文单词作为密码,现时这样做已经完全不能保障安全了. Colin Percival最近在 一篇文章 中提到了这样的数据:使用价值 $10k 的 GPU 破解使用MD5的34位英文密码(例如"You will never guess this password")所需要的时间仅为两小时(如果使用专用的硬件,以$1M投资的ASIC可以在一秒之内完成破解).

IDF前瞻:Ivy Bridge的GPU和TDP

- 洞箫 - cnBeta.COM
将于当地时间本周二在旧金山开幕的Intel开发者论坛大会IDF 2011上,定于2012年3月或4月发布的下一代CPU"Ivy Bridge"具体细节将得到揭晓. 在大会开幕前,著名硬件网站Anandtech的站长已经掌握了Ivy Bridge两方面的具体规格:集成的新一代GPU和可变TDP.

Intel:Ivy Bridge GPU 將支援 4K 解析度

- SotongDJ - Engadget 中文版
我們已經知道 Ivy Bridge 處理器將比上一代更加小巧且運行速度更快,不過我們對於其 GPU 架構性能還鮮有耳聞,這次終於有了答案. 根據消息來源指出,Ivy Bridge GPU 將支援 4K 解析度(也就是說最高達到 4,096 x 4,096 解析度),而上代的 Sandy Bridge 最高支援 WQXGA(2,560 x 1,600)解析度,相比之下有了大幅度的提升.