第一章文章目录
前言
深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。不管是在编程环境配置,还是在编程开发过程中,我们经常会听到很多的专业名词。这里先对这些名词做解释,然后手把手地带领大家配置深度学习的开发环境。
一、深度学习相关专有名词介绍
1、Anaconda
Anaconda是专门为了方便使用Python进行数据科学研究而建立的一组软件包,涵盖了数据科学领域常见的Python库,并且自带了专门用来解决软件环境依赖问题的conda包管理系统。主要提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
使用Anaconda最大的好处就是可以有多个虚拟环境,每个环境之间都是隔离的,每个环境内都可以装不同的python版本和不同的包,而且切换环境很方便。举个例子,当我们跑项目的时候有一个项目需要3.9版本的python,另一个项目需要3.6版本的python,如果我们直接在电脑里安装这两个不同版本的python,那么会导致冲突;然而使用Anaconda就可以分别创建二个不同的虚拟环境,在这两个环境里面我们可以分别安装3.9版本的python和3.6版本的python,将两个环境隔离开,从而可以避免冲突。
2、python
Python 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了脚本语言和解释语言的易用性。这门语言的魅力和影响力已经远超C++、C#等编程语言前辈,被程序员誉为“美好的”编程语言。Python可以说是全能的,自动化运维、图形处理、数据分析、云计算、web编程、多媒体应用、常规软件开发、黑客编程、爬虫编写、机器学习、人工智能等等,应用无处不在。Python的口号是:“人生苦短,我用Python!”。
3、pytorch
PyTorch是一个由Facebook人工智能研究团队开发的开源深度学习框架。于2016年首次推出,在PyTorch之前,深度学习框架通常专注于速度或可用性,但不能同时关注两者。PyTorch能将对可用性的关注与对性能的仔细考虑相结合,它提供了一种命令式和Python编程风格,支持将代码作为模型,使调试变得容易,并且与其他流行的科学计算库保持一致,同时保持高效并支持GPU等硬件加速器。
PyTorch是一个Python库,它通过自动微分和GPU加速执行动态张量计算,同时保持与当前最快的深度学习库相当的性能。它的大部分核心都是用C++编写的,这也是PyTorch与其他框架相比可以实现低得多的开销的主要原因之一。PyTorch似乎最适合大幅缩短特定用途的新神经网络的设计、训练和测试周期。因此,近年来PyTorch已经成为全球最流行的深度学习框架之一,其在GitHub上的星标数超过了70K,被用在了各种各样的项目中,从最新的论文研究到大规模的工业应用。与PyTorch分庭抗礼的另一个深度学习开源框架是Google开发的TensorFlow,我们这里主要介绍PyTorch,不对TensorFlow做过多介绍。
PyTorch的强大功能和灵活性使其在许多深度学习应用场景中都能够发挥重要作用,PyTorch可以应用于计算机视觉、自然语言处理、生成对抗网络、扩散模型、强化学习、时序分析、图神经网络等等。
4.vscode
VSCode全称Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、GIT等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持Win、Mac以及 Linux。VSCode配合大量的插件可以实现很多特殊功能,例如python解释器,远程连接服务器,pdf阅读器等等,让VSCode的生态变的非常丰富。VSCode中也可以使用jupyter notebook,只需要下载jupyter notebook插件即可。VSCode的插件库非常庞大,这使得VSCode几乎无所不能,可以满足绝大所属编程需要,而且还免费使用。
5.pycharm
PyCharm是由JetBrains公司开发的强大的集成开发环境(IDE),专门用于Python开发。它也支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、GIT等特性,支持插件扩展、调试等。相比于VSCode,其重量级过大,不够轻便。而且PyCharm分为社区版和专业版,专业版需要花钱。当然,PyCharm毕竟是专业的Python 开发工具,所以开发功能上肯定比VSCode 更强,但VSCode胜在拓展强、更加轻量级。
6.jupyter notebook
Jupyter是近年流行起来的开发工具,基于IPython,主要应用于数据分析、数据可视化、机器学习。它实质是一个web应用,让你在浏览器上写Python,即写即运行,所以适合做数据分析。 虽然Jupyter做数据处理很方便,但它的开发场景毕竟有限,不适合脚本编写和项目开发,debug等功能也处在改善阶段。
Jupyter中的代码是按独立单元的形式编写的,而且这些单元是独立执行的。这让用户可以测试一个项目中的特定代码块,而无需从项目开始处执行代码。Jupyter的这个单元结构是很不错的,比较适用于前期的入门或者数据的处理。
7.linux
您可能已经多次听说在Linux上编程更好,而且程序员比Windows更频繁地使用它。当然,基于Linux内核的操作系统是免费和开源的,Linux的开源特性使得用户可以获取其源代码并自由地修改和分发,这也是其与其他商业操作系统的区别之一。它的免费性和可定制性使得Linux成为了全球范围内最受欢迎的操作系统之一,同时也使得它成为了程序员和IT专业人士选择的首选操作系统。但对于编程来说,最重要的优势是什么?下面,我们将解释为什么Linux更适合编程,并讨论Linux系统相对于Windows的主要优势。
1.容易配置开发环境
因为Linux发行版大部分都有自己的包管理系统,所以其搭建各种开发环境确实就是比Windows简洁很多。1、Eclipse;2、Brackets;3、VSCode;4、Geany IDE;5、Netbeans;6、VIM。等等都是Linux的代码工具,还有shell check能够识别不规范的写法。
2.安全性高
Linux是一个具有先天病毒免疫能力的操作系统,很少受到病毒攻击。对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。不过,利用Linux自带防火墙、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux的安全性,让黑客无机可乘。同时,由于 Linux是开源的,来自世界各地的技术党们,尽己之力挖掘漏洞,大多数漏洞都已被消灭。而且Linux执行每一个应用程序和病毒都需要密码形式的管理员授权,一般的病毒难以执行,更不可能自动安装,因此安全性相对于Windows较高。
3.开源性
林纳斯•托瓦兹开发的Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心,再根据自己的喜好进行桌面环境设计,构成了市面上不同种类的发行版,例如Gentoo Linux特点是高度的自制,因此,此发行版也更适用于Linux高手使用;Ubuntu Linux由于对硬件的支持度较大,此版本也广受大众喜欢。Linux发行版中有上百种不同风格的操作系统,用户可以根据自己的喜好,选择适合自己的操作系统。
4.稳定性高
Linux内核非常稳定,可以长时间持续运行而不需要重新启动。这意味着用户可以避免由于操作系统故障导致的停机和维修费用。并且Linux可以持续长时间运行而运行速度不会减慢,而Windows在长时间运行下,运行速度会相对减慢。Linux对网络功能提供支持,可以更加便捷的进行服务器设置,Linux可以运行几乎所有格式的文件。
总结:如您所见,我们可以考虑在Linux上进行编程,而且有些项目的环境要求也是在Linux下的,了解这部分的知识有益无害,当然,如果您只考虑在Windows下进行编程也是可以的。
二、Windows配置Pytorch深度学习环境方案
1.选择环境管理器
我这里选择的环境管理器是Anaconda用来进行python环境的管理
2.选择编译平台
建议选择VSCode加Jupyter notebook即可满足绝大部分深度学习项目开发需求,Jupyter notebook可以使用VSCode安装插件或者使用网页版。当然,习惯于用Pycharm的同学也可以使用Pycharm作为深度学习项目开发IDE。
3.深度学习框架
我这里建议选择PyTorch深度学习框架,PyTorch框架是当前最流行的深度学习框架之一,可以应用于深度学习各个场景中。