在多GPU的机器上,指定使用某(几)个GPU运行CUDA相关的程序:
CUDA_VISIBLE_DEVICES=0,1 python train_cnn.py
现在深度学习这么火,不可避免的要使用CUDA。在Ubuntu系统中配置CUDA环境的教程也是一大堆。
但是,经过长期的使用,我发现在调用CUDA训练模型的时候,或者其它仅使用NVIDIA的显卡驱动的OpenGL加速的时候,Ubuntu的GUI界面会卡顿或直接死掉。如何解决这个问题让系统更稳定呢?
BBR (Bottleneck Bandwidth and Round-trip) 目的是要充分利用带宽,并且尽量降低网络链路上的 buffer 占用率,从而降低延迟。在有一定丢包率的网络链路上使用 TCP BBR 有着提高传输速度的作用。
Ubuntu16.04,内核版本4.9以上,输入以下命令即可启用:
modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
更深的神经网络更难训练。我们提出了一种残差学习框架来减轻网络训练,这些网络比以前使用的网络更深。我们明确地将层变为学习关于层输入的残差函数,而不是学习未参考的函数。我们提供了全面的经验证据说明这些残差网络很容易优化,并可以显著增加深度来提高准确性。在ImageNet数据集上我们评估了深度高达152层的残差网络——比VGG[40]深8倍但仍具有较低的复杂度。这些残差网络的集合在ImageNet测试集上取得了3.57%的错误率。这个结果在ILSVRC 2015分类任务上赢得了第一名。我们也在CIFAR-10上分析了100层和1000层的残差网络。
对于许多视觉识别任务而言,表示的深度是至关重要的。仅由于我们非常深度的表示,我们便在COCO目标检测数据集上得到了28%的相对提高。深度残差网络是我们向ILSVRC和COCO 2015竞赛提交的基础,我们也赢得了ImageNet检测任务,ImageNet定位任务,COCO检测和COCO分割任务的第一名。
目前最先进的目标检测网络需要先用区域提案算法推测目标位置,像SPPnet1和Fast R-CNN2这些网络已经减少了检测网络的运行时间,这时计算区域提案就成了瓶颈问题。本文中,我们介绍一种区域提案网络(Region Proposal Network, RPN),它和检测网络共享全图的卷积特征,使得区域提案几乎不花时间。RPN是一个全卷积网络,在每个位置同时预测目标边界和objectness得分。RPN是端到端训练的,生成高质量区域提案框,用于Fast R-CNN来检测。我们通过共享其卷积特征进一步将RPN和Fast R-CNN合并到一个网络中。使用最近流行的神经网络术语“注意力”机制,RPN模块告诉统一网络需要看哪里。对于非常深的VGG-16模型3,我们的检测系统在GPU上的帧率为5fps(包含所有步骤),在PASCAL VOC 2007、PASCAL VOC 2012和MS COCO数据集上实现了最先进的目标检测准确率,每个图像用了300个提案框。在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是几个比赛的第一名方法的基础。代码已公开。
K. He, X. Zhang, S. Ren, and J. Sun, “Spatial pyramid pooling in deep convolutional networks for visual recognition,” in European Conference on Computer Vision (ECCV), 2014. ↩
R. Girshick, “Fast R-CNN,” in IEEE International Conference on Computer Vision (ICCV), 2015. ↩
K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in International Conference on Learning Representations (ICLR), 2015. ↩
本文提出了一种快速的基于区域的卷积网络方法(fast R-CNN)用于目标检测。Fast R-CNN建立在以前使用的深卷积网络有效地分类目标的成果上。相比于之前的成果,Fast R-CNN采用了多项创新提高训练和测试速度来提高检测精度。Fast R-CNN训练非常深的VGG16网络比R-CNN快9倍,测试时间快213倍,并在PASCAL VOC上得到更高的精度。与SPPnet相比,fast R-CNN训练VGG16网络比他快3倍,测试速度快10倍,并且更准确。Fast R-CNN的Python和C ++(使用Caffe)实现以MIT开源许可证发布在:https://github.com/rbgirshick/fast-rcnn。