之前热衷于学习理论知识,目前想跑代码了发现不知道从何下手,自己电脑上搭建的平台基本就是个摆设,因为跑不起来呀。今天我们就来看看想做深度学习应该怎么下手。
首先了解下基础知识:
1、深度学习用cpu训练和用gpu训练的区别
(1)CPU主要用于串行运算;而GPU则是大规模并行运算。由于深度学习中样本量巨大,参数量也很大,所以GPU的作用就是加速网络运算。(2)CPU算神经网络也是可以的,算出来的神经网络放到实际应用中效果也很好,只不过速度会很慢罢了。而目前GPU运算主要集中在矩阵乘法和卷积上,其他的逻辑运算速度并没有CPU快。
目前来讲有三种训练模型的方式:
1. 自己配置一个“本地服务器”,俗称高配的电脑。
这个选择一般是台式机,因为笔记本的“高配”实在是太昂贵了,同一个价格可以买到比笔记本好很多的配置。如果是长期使用,需要长期从事深度学习领域的研究,这个选择还是比较好的,比较自由。
① 预算一万以内的机器学习台式机/主机配置推荐:
https://blog.csdn.net/ShadowN1ght/article/details/78046287
② 从李飞飞的课程里,可以看到她的电脑配置,这个配置是机器学习的基本配置,我们可以参考一下:https://blog.csdn.net/caimouse/article/details/77942582
CPU: intel core i7-7700k 4.4G
内存:4X8G
显示卡: 两个NV GTX 1070
硬盘: HDD一个, SSD两个
③ 配置主机需要了解的参数(在上一篇博客中已经详细介绍了各个参数的含义):
GPU:一个好的GPU可以将你的训练时间从几周缩减成几天,所以选GPU一定要非常慎重。可以参看GPU天梯榜,都是一些比较新的型号具有很强的性能。
在英伟达产品系列中,有消费领域的GeForce系列,有专业绘图领域的Quadro系列,有高性能计算领域的Tesla系列,如何选择?有论文研究,太高的精度对于深度学习的错误率是没有提升的,而且大部分的环境框架都只支持单精度,所以双精度浮点计算是不必要,Tesla系列都去掉了。从显卡效能的指标看,CUDA核心数要多,GPU频率要快,显存要大,带宽要高。这样,最新Titan X算是价格便宜量又足的选择。
CPU:总的来说,你需要选择一个好的GPU,一个较好的CPU。作为一个高速的串行处理器,常用来作为“控制器”使用,用来发送和接收指令,解析指令等。由于GPU内部结构的限制,使得它比较适合进行高速的并行运算,而并不适合进行快速的指令控制,而且许多的数据需要在GPU和CPU之间进行存取,这就需要用到CPU,因为这是它的强项。
内存条:主要进行CPU和外设之间的数据交换,它的存取速度要比硬盘快好几倍,但是价格比较昂贵,通常会和容量成正比。内存大小最起码最起码最起码要大于你所选择的GPU的内存的大小(最好达到显存的二倍,当然有钱的话越大越好)。在深度学习中,会涉及到大量的数据交换操作(例如按batch读取数据)。当然你也可以选择将数据存储在硬盘上,每次读取很小的batch块,这样你的训练周期就会非常长。常用的方案是“选择一个较大的内存,每次从硬盘中读取几个batch的数据存放在内存中,然后进行数据处理”,这样可以保证数据不间断的传输,从而高效的完成数据处理的任务。
电源问题:一个显卡的功率接近300W,四显卡建议电源在1500W以上,为了以后扩展,可选择更大的电源。
固态硬盘:作为一个“本地存储器”,主要用于存储各种数据。由于其速度较慢,价格自然也比较便宜。建议你选择一个较大容量的硬盘,通常会选择1T/2T。一个好的方法是:“你可以利用上一些旧的硬盘,因为硬盘的扩展十分简单,这样可以节省一部分资金。”
散热:散热可以保证各种电子元件工作正常。还可以保证主机的效率,延长主机的使用寿命。https://blog.csdn.net/WZZ18191171661/article/details/70099795
https://blog.csdn.net/yubaolouisliu/article/details/79684936
如何配置一台适用于深度学习的工作站?https://yq.aliyun.com/articles/229020
2.配置一台自己的云服务主机
当前云服务器的计费方式主要有两种:按时计费、按月计费和按年计费。国内有的公司提供了相应的GPU服务器和FPGA服务器平台。价格比较贵,但是可以根据项目需要选择合适的配置。
下面我将会给出一些有用的云服务器连接,感兴趣的同学可以自己探索。
配置一台自己的云服务主机方式:
美团云+anaconda+jupyter notebook: https://blog.csdn.net/tream733/article/details/78758856
美团云深度学习公测平台 :https://www.mtyun.com/doc/products/ai/dls/quickstart-tf
谷歌云:https://blog.csdn.net/sinat_25838589/article/details/79004503
阿里云:https://blog.csdn.net/bjkite/article/details/62984897
2.1 需要了解的专业词汇:
① 共享主机:也称虚拟主机,从互联网诞生至今,大部分站长都是从"共享主机"(shared hosting)开始学习建站的。所谓"共享主机",就是一台服务器上有许多网站,大家共享这台服务器的硬件和带宽。如果它发生故障,那么上面的所有网站都无法访问。
② VPS:(Virtual Private Server 虚拟专用服务器)简单理解VPS就是一台拥有公网IP的服务器,可以在一个服务器创建多个VPS,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。
③云主机:云主机是一种类似VPS主机的虚拟化技术, VPS是采用虚拟软件,VZ或VM在一台主机上虚拟出多个类似独立主机的部分,能够实现单机多用户,每个部分都可以做单独的操作系统,管理方法同主机一样。 而云主机是在一组集群主机上虚拟出多个类似独立主机的部分,集群中每个主机上都有云主机的一个镜像,从而大大提高了虚拟主机的安全稳定性,除非所有的集群内主机全部出现问题,云主机才会无法访问。
①②和③的具体区别:https://jingyan.baidu.com/article/9faa723197339b473c28cb32.html
①③共享主机用户直接面对特定的服务器,而云主机用户直接面对网络接口,看不到服务器内部。一个通俗的比喻是,你可以向银行租一个编号为"8888"的保险箱(共享主机),也可以把贵重物品直接交给保管公司,听任他们保管。
②③云主机能真正获得root权限,用户可以重装和升级操作系统,而VPS主机用户没有root权限,无法重装和升级操作系统。
总的来说,云主机便宜,可靠,可扩展性好。
2.2 如何选择云主机:
关于各种云的选择参考:机器学习深度学习云GPU资源与对比
按上文作者的话来说,也就是美团云的坑少些,价格也便宜些。(笔者还没有尝试)
等以后使用了之后再出详细教程。
3. 配置一个深度学习集群:
一般是大公司的选择,如BAT等都有自己的深度学习集群平台和自己的深度学习框架。在此不多加介绍。