对应视频教程:https://www.bilibili.com/video/BV1S5411X7FY/
当然更重要的是带大家理清一些软件之间的关系,不然如果直接上手安装,你也许会感到困惑:这个软件是干什么的?我为什么要这么做?
Python,这个字眼,相信很多人都听过,看过。(漫天的广告,我就不信你们没看过。)
Python 其实就是一门编程语言,就是程序的一种规范,一种语法。
只要我们按照这个规范,语法去写东西,电脑就能够通过一定的方式去理解我们写的东西,然后按照我们写的东西运行起来。
其实,就像我们日常用的语言一样。我们只要按照中文的发音规则去发音,其他人就能听懂我们的意思。
Python 就是一门计算机的语言,只要我们按照它的语法去写代码,计算机就能够理解并运行我们的代码。
这就是 Python,其实就是一门能让计算机理解的语言。
那为什么近些年来,Python 能如此的火爆?
因为它的语法简单,学起来更容易。就像我们现实世界一样,存在多国语言,有的学起来难,有的学起来简单。
Python 也是计算机世界的多门语言之一,还有很多的编程语言(C,C++,Java,Go之类的)。它是其中较为简单的语言(语法规则简单,不是能力简单),所以受到了很多人的喜欢。
说完了 Python,它其实就是一门能够和计算机沟通的语言。也就是说,有了Python,我们就可以和计算机进行一些沟通,让计算机去做一些事情。
比如我们可以在代码中写上 print(“xiaotudui”),这样计算机就知道你要print(打印)xiaotudui 这个词在电脑屏幕上。你看,就像下面图一样,当我输入完print(“xiaotudui”)的指令后,Python 就在下一行打印/输出了 xiaotudui 内容。
是不是感觉 Python 有点弱智?我也觉得。
Python 只为我们提供了很多基础功能。比如我想用 Python 读取一个文件的内容,我首先得写一行代码去打开文件,再写一行代码去加载文件的内容。
Python 只为我们提供了这些必要的基础操作,我们如果想去完成一个任务,就需要自己去组合这些基础操作。
Python 就像我们使用过的 PPT 一样,它们都是给我们提供了很多的基础功能。
但如果我们想要用 PPT 软件 做出好看的 PPT,我们就需要对 PPT 提供的基本元素(文字,图形)进行一些列操作,来达到最终优秀的效果。同理,我们想要用 Python 达到比较复杂的任务,也需要对 Python 给我们提供的基础功能进行组合。
是不是觉得用 Python 实现一个东西好困难啊?且慢,先不要担心。听我继续说。
就像我们做 PPT 的时候,会找一些模板,一些插件来使用。有了这些模板和工具,我们可以快速实现一些我们想要的效果。这些模板也是别人用 PPT 中最基础的元素一点点实现的,然后分享出去。这样,我们就可以使用别人分享的模板来实现我们想要的效果。
在 Python 中,也是有这种分享行为的。不过,在 Python 中,这些提高我们效率的工具、模板被称为 库(package),也有人称之为 包。
比如,如果我们想用 Python 画图,我们就可以安装一个名叫 Matplotlib 的库给 Python 使用,这样我们只需要使用 Matplotlib 中的 plot(画图函数)就可以画图了。
如果让我们自己仅用 Python 提供的基本元素来画图的话,我们也许需要先新建一个窗口,然后在这个窗口填充像素来完成横纵坐标,然后找到合适的位置放上文字,然后按照数据在对应位置画上点,然后把这些点串起来。
仅仅是一个画图操作,如果我们仅使用 Python 的话,几乎是崩溃的。但是 Matplotlib 把这些操作给它封装起来,也就是说,我们只要告诉它画图的数据,它就会帮我们完成上面一系列的操作。
其实,我们可以把 Python 比做手机,而那些库就是我们安装的各种APP。有了这些应用,我们如果想做某些事情,只需要借助这个APP就行,让我们的操作更加简单快捷。
在深度学习领域,就有大家熟知的 PyTorch 和 Tensorflow 的库。通过 PyTorch 或者 Tensorflow 库,我们可以高效的创建神经网络以及深度学习需要的各种东西。
库,你就把它想象成手机上的APP,有了它。每个APP都有各自的功能,有了这些APP,我们可以更高效、简单地完成一些任务。
在上一节,我们就说到了 PyTorch 或者 Tensorflow,更多的是指可以被 Python 使用的库,这个库主要是针对深度学习领域进行开发的。
有了PyTorch 或者 Tensorflow,我们可以更更简单的去实现一些深度学习网络。
当然,如果你说,我不想用 PyTorch 或者 Tensorflow 去搭建神经网络可以不?
当然可以。这就需要你从头到尾手动实现神经网络的各个环节。如果你想加深对神经网络的理解,这是很不错的方式。
总而言之,PyTorch 或者 Tensorflow 都只是 Python 的库,它们就是一系列用于深度学习的工具。有了它们,我们可以更加方便地进行深度学习的任务。
介绍完了 Python,库的概念,以及 PyTorch 和 Tensorflow。现在大家知道了,Python 只是一门能与计算机沟通的计算机语言。库就是很多人分享的工具,比如我们安装了深度学习的库(PyTorch),我们就可以更高效,更简单地完成深度学习的任务。
说了这么多的废话,我们现在来说说怎么安装 Python。
安装 Python 的方法挺多的。比如,我们可以进入Python的官网(https://www.python.org/), 然后就跟安装普通软件一样,下载后,双击安装就行。
但是,你会发现很多人/教程并不用这种方式进行安装。
我们来看下 Anaconda 的这个介绍。它说自己是世界上最流行的数据科学平台。这个意思感觉有点雨里雾里的?
简单说,就是当我们安装 Anaconda 后,我们就安装好了 Python 和一些常用的用于科学分析的库。是不是很方便?但是这些常用的数据分析的库中没有 PyTorch 和 Tensorflow。这个还需要我们之后自己安装。
当我们安装完 Anaconda,我们其实就把 Python 也安装好了。Anaconda除了这个作用之外,他还有很多的方便之处。当我们安装完 Anaconda 后,它还会给我们安装一个叫做 conda 的指令工具。这个指令工具,很强大。我们可以使用这个指令安装不同的库/包。除此之外,我们使用 conda 来创建虚拟环境。
虚拟环境?这个概念很陌生吧。比如说,你现在做项目。一个项目中要使用 PyTorch 1.10 版本,然后另一个项目要使用 PyTorch 1.4 版本。或者你手机上装了一个APP 1.10版本,然后你要用这个APP 1.4版本,那你咋办?我们最常见的方法,就是卸载一个版本,然后安装另一个版本。但是这样是不是很麻烦。
那还有什么办法呢?我们可以用两个手机或者应用分身。一个手机装1.10 版本,一个手机装1.4版本。当我要用哪个版本的时候,我就用哪个手机。像这里的一个手机,它就是虚拟环境的概念。
就是我们可以创建多个虚拟环境,然后在对应的虚拟环境中安装想安装的库。比如我创建一个名为tuduipytorch1.10的虚拟环境,然后在里面安装PyTorch 1.10版本。再创建一个名为 tuduipytorch1.4的虚拟环境,然后在里面安装 PyTorch 1.4 版本。这样,当我们想用哪个版本的时候,我们只需要激活对应的虚拟环境就行了。其实有点像游戏中的铭文页的感觉。
如果还是不是很明白,没关系。后面,你就会慢慢体会到的。
前面,我们说了当我们安装好 Anaconda 的时候,我们就已经安装好了 Python 和一些数据分析的常用库。
那如果我们想安装其他的库,比如 PyTorch 或者 Tensorflow 库,我们应该怎么做?
这个时候,我们可以借助 pip 和 conda 这两个指令来进行库的安装。
如果把不同的库比做成手机上的应用,那么我们如果想安装PyTorch这个应用的时候,我们可以通过应用商店来下载。pip 和 conda 就像这个应用商店。
它们维护了很多的库(应用),当我们想要下载某个库(应用)的时候,我们只需要输入 pip install 库名 或者 conda install 库名 就可以实现库的下载和安装。
那么 conda 和 pip 到底有什么区别呢?
就像不同应用商店是不同公司制作,发行的。pip 可以看成是官方维护的,而 conda 是由 Anaconda 来维护的。(当我们安装好 Anaconda 后,conda 也会被安装上。)
一般情况下,其实 conda 和 pip 安装没有太大区别。既然是不同的公司维护的,那么其实下载速度也是有点区别的。(但还是推荐大家优先使用 conda 指令来安装库。)
所以,大家在下载库的时候,如果用 pip 比较慢或者安装后仍不能使用那个库,可以换成 conda 试试。反之亦然。
现在,我们可以通过安装 Anaconda 来安装 Python,然后通过 conda 指令来创建一个虚拟环境。之后,我们在这里虚拟环境中通过 conda 或者 pip 来安装 PyTorch 或者 Tensorflow 库。
在完成这些操作后,我们就可以写我们的 Python 代码。在写 Python 代码的时候,我们可以利用 PyTorch 或者 Tensorflow 库来方便我们完成深度学习的任务。
我们可以用 PyCharm。
当我们安装完 PyCharm后,我们需要进行一些配置。我们需要告诉 Pycharm 应该使用哪个虚拟环境,应该使用哪个版本的 Python。Pycharm 会解析下这个虚拟环境中安装了哪些库,然后在我们写代码的时候,会进行一定的语法提示。就像这样。
总而言之,有了 PyCharm,它可以更高效地帮助我们完成书写代码到运行代码的整个过程。