第2章 深度学习开发环境搭建
目录
[2.1 Anaconda](#2.1 Anaconda)
[2.2 Jupyter notebook](#2.2 Jupyter notebook)
[2.3 Markdown](#2.3 Markdown)
[2.4 Latex](#2.4 Latex)
[2.5 Pycharm](#2.5 Pycharm)
2.1 Anaconda
2.1.1 Anaconda简介
Anaconda是一个开源的Python发行版本,其包含了conda、Python等800多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
- 开源免费
- 支持近800个第三方库
- 包含多个主流工具
- 适合数据计算领域开发
- Win/Linux/OS X
2.1.2 下载Anaconda
百度搜索Anaconda
点击Products --> individual Edition 下拉到页面最下方:
根据你的电脑系统,选择相应版本的 Anaconda,Mac OS 用户选择 Mac 版本即可。推荐使用 Graphical Installer。
2.1.3 安装 Anaconda
选择默认位置安装:
两个选择框都勾上,点击安装:
等待安装结束,时间稍长。
安装完成后即可开始使用。
2.1.4 查看 Anaconda
Anaconda 装好之后,可以在开始菜单查看。可以看到包含了如下图所示的组件:
我们会用到的是:
- Anaconda Prompt:Anaconda 自带的命令行
- Jupyter Notebook:一个简单易用、适合入门的Python IDE
- Anaconda Navigator Anaconda是一个集成各类Python工具的集成平台
2.1.5 包和环境管理工具conda
conda: 一个工具,用于包管理和环境管理,其中:
- 包管理与pip类似,管理Python第三方库
- 环境管理能够允许用户使用不同版本Python,并能灵活切换
anaconda:一个集合,包括conda、某版本Python、一批第三方库等
conda将工具、第三方库、Python版本、conda都当作包,同等对待
Win平台: cmd,执行conda ‐‐version 获取conda版本;执行conda update conda 升级conda
2.1.6 编程工具Spyder
2.1.7 交互式编辑环境IPython
IPython是一个功能强大的交互式shell,适合进行交互式数据可视化和GUI相关应用。notebook即在此基础上生成。
- 变量前或后增加?将显示一些通用信息,包括函数对应的源代码。
- IPython的%魔法命令:%magic。
2.2 Jupyter notebook
2.2.1 jupyter notebook简介
Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档。在编辑的过程中,每次编辑一行代码就可以运行一行代码,运行的结果也可以显示在代码的下方,方便查看。当所有的程序编写和运行完毕之后,还可以直接把编辑和运行之后的所有信息保存在文件中。
它的用途包括:数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等等。它具有以下优势:
- 可选择语言:支持超过40种编程语言,包括Python、R、Julia、Scala等。
- 分享笔记本:可以使用电子邮件、Dropbox、GitHub和Jupyter Notebook Viewer与他人共享。
- 交互式输出:代码可以生成丰富的交互式输出,包括HTML、图像、视频、LaTeX等等。
- 大数据整合:通过Python、R、Scala编程语言使用Apache Spark等大数据框架工具。支持使用pandas、scikit-learn、ggplot2、TensorFlow来探索同一份数据。
2.2.2 启动jupyter notebook
在cmd环境下,输入命令:jupyter notebook,之后就可以启动jupyter botebook编辑器,启动之后会自动打开浏览器,并访问http://localhost:8088 ,默认跳转到http://localhost:8088/tree
2.2.3 Jupyter notebook的两种模式
对于Notebook中的单元,有两种模式:命令模式 (Command Mode)与编辑模式 (Edit Mode),在不同模式下我们可以进行不同的操作。
python
print('机器学习')
如上图,在编辑模式(Edit Mode)下,右上角出现一只铅笔的图标,单元左侧边框线呈现出绿色,点Esc键或运行单元格(ctrl-enter)切换回命令模式。
在命令模式(Command Mode)下,铅笔图标消失,单元左侧边框线呈现蓝色,按Enter键或者双击cell变为编辑状态。
command mode和edit mode。在一个cell中按下enter就进入edit mode,按下Esc进入command mode。
2.2.4 cell的基本操作
命令模式下的快捷键
编辑模式下的快捷键
注意不要死记硬背,在使用过程中需要什么就去查,多用用就能记住了。
2.3 Markdown
2.3.1 Markdown语言简介
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
Markdown 是一种轻量级标记语言,创始人为 John Gruber。它允许人们「使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档」。------维基百科
简单地说,Markdown 与 HTML 语言一样,使用一些符号就代替样式。但是它比 HTML 语言更加简单。例如我想要实现标题样式,那么我可以这么做:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
2.3.2 Markdown的优点
用 Word 也可以实现同样的效果,为什么要使用 Markdown 呢?
Word 等其他文本编辑工具虽然也能实现同样的效果,但其功能太过强大。Word 还能改变字体颜色,可以调节字体大小。这么强大的功能是 Word 的优点,但也是它的缺点。当功能过多,我们的注意力就会分散,就会去纠结:这个字体大小到底是 14 还是 16 好?我想强调这一句话,是要加粗还是标红?
而 Markdown 的出现让我们不需要去纠结这些问题。Markdown 的本质是让我们回归到内容本身,注重文章本身的结构,而不是样式。
例如我们想要强调一句话,那么我们直接使用两个星号为其加粗,而不需要考虑是加粗还是标红(Markdown中只有黑色字体,没有其他颜色字体)。
这就是我要强调的文字
我们也不需要关心字体大小问题,因为 Markdown 中字体大小都与结构有关,无法手动设置。一级标题字体大一些,二级标题小一些。我们只需要关注哪些是一级标题,哪些是二级标题。而不需要去纠结标题字体到底要设置多大,Markdown 的本质是让我们回归内容本身。
2.3.3 Markdown格式语法
原生的 Markdown 语法包含了最基础的一些特性,例如:标题、加粗、斜体、段落、引用、超链接、图片、列表、代码块、水平分割线等。
而一些自定义实现的编辑器,则有一些自定义的实现,例如:数学公式、TODO列表等。所以当你看到有一些语法在一个编辑可以用,但到另一个编辑器又用不了的时候,那么这个语法可能就不是通用的 Markdown 原生语法了。
Markdown 语法非常简单,基本上多用几次就能学会,下面简单介绍一些常用的 Markdown 语法:
2.3.3.1 表示段落
Markdown 使用 ## 号来表示段落。
# 第一章
## 第一章第一节 1.1
### 第一章第一节第一小节 1.1.1
#### 四级标题
2.3.3.2 加粗、斜体、加粗斜体
Markdown 使用一个星号表示斜体,两个星号表示加粗,三个星号表示加粗斜体。
深度学习
深度学习
深度学习
2.2.3.3 无序列表
使用星号或者中横线来表示无序列表,注意后面需要加空格。
- 西北民族大学
- 中央民族大学
- 中国民族信息技术研究院
- 数学与计算机科学学院
- 计算机科学与技术
- 人工智能
- 大数据科学与技术
2.2.3.4 有序列表
使用数字加'.'来表示有序列表,后面同样需要加空格。
计算机类专业共有9个细分专业,分别是:
- 计算机科学与技术
- 软件工程
- 网络工程
- 信息安全
- 物联网工程
- 数字媒体技术
- 智能科学与技术
- 空间信息与数字技术
- 电子与计算机工程
2.2.3.5 引用
Markdown 使用 > 符号来表示引用。
魏晋陶渊明 《杂诗十二首·其一》:
人生无根蒂,飘如陌上尘。
分散逐风转,此已非常身。
落地为兄弟,何必骨肉亲!
得欢当作乐,斗酒聚比邻。
盛年不重来,一日难再晨。
及时当勉励,岁月不待人。
2.3.3.6 代码块
我们使用` 号来表示代码块引用。
重音符:"`" ,是一个变音符号,用于希腊语(1982年前)、法语、加泰罗尼亚语、威尔士语、意大利语、越南语、苏格兰盖尔语、挪威语、葡萄牙语和其他语言内。
单行代码样式:
print("深度学习")
多行代码样式:
python
for i in range(10):
print(i)
2.3.3.7 水平分割线
使用"---"表示分割线
我在分隔线的上方
我在分隔线的下方
2.3.2.8 表格
使用一根竖线来分隔各个单元格,使用冒号来决定单元格的对齐方向。
左对齐
人物排序 | 人物姓名 |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
居中
人物排序 | 人物姓名 |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
右对齐
人物排序 | 人物姓名 |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
2.3.2.9 制作Todo列表
格式:-空格[空格]空格 文字
- 未处理的事情1
- 未处理的事情2
格式 -空格[x]空格 文字
- 已处理的事情1
- 已处理的事情2
2.3.2.10 锚点功能
如果文章很长很长,在标题的部分建立一个目录,可以利用描点迅速链接过去
用法 (topic是索引的id,可以改成其他值,但是两处要对应)
标题1
2.3.4 Markdown使用场景
目前越来越多的站点都支持了 Markdown 语法,例如:Github 等代码托管平台,CSDN、简书、博客园等写作平台。因此,掌握好 Markdown 语法可以非常方便地在各个主流站点使用。
2.3.5 Markdown编辑工具
Markdown 本质上是一个纯文本,所以任何能打开纯文本的东西都可以来编辑 Markdown。但如果你想要有预览功能,那么一款顺手的编辑功能还是有必要的。
- Windows上的编辑器有:MarkdownPad、Typora、vscode。
- OS X上的编辑器有:Mou、MacDown、MWeb。
2.4 Latex
2.4.1 Latex简单介绍
Latex是一种文件生成系统,它生成纯文本文件,后缀名为.tex。它不像Word软件编写文件一样所见即所得,而是用一定的语法或者标记符号来组织内容。Latex在学术写作中被广泛使用,特别在数学和计算机这样的学科。Latex可以让你忘记格式,而专注于内容。
在学术写作中,我们往往会对内容不停地改来改去,特别是如果还插入了图片的话,每次修改都可能需要重新排版,而Latex可以让你不用担心这些,任何时候都能帮你输出高质量的排版,在不确定的地方加一个注释,任何时候都可以重新修改而对输出的PDF没有影响。
本课程只讲解在notebook中使用Latex 数学公式的方法,更多有关Latex的知识,请自行查找学习。
2.4.2 在notebook中使用Latex数学公式
-
行内公式
$x ={-b \pm \sqrt{b^2-4ac}\over 2a} $
-
行间公式
x = − b ± b 2 − 4 a c 2 a x ={-b \pm \sqrt{b^2-4ac}\over 2a} x=2a−b±b2−4ac
运行后显示效果和word公式相同
2.4.3 常用数学符号的 LaTeX 语法
- 上标:a^{2}
a 2 a^{2} a2 - 下标:a_{3}
a 3 a_3 a3 - 分式:\frac{2}{3} #n分之m
2 3 \frac{2}{3} 32 - 开方:
平方: \sqrt{2}
2 \sqrt{2} 2
n开m次方 :\sqrt[3]{4}
4 3 \sqrt[3]{4} 34
- 累计求和:\sum_{i=m}^{n} #从m到n求和
∑ i = m n \sum_{i=m}^{n} i=m∑n
其它
Σ i = m n \Sigma_{i=m}^{n} Σi=mn
σ i = m n \sigma_{i=m}^{n} σi=mn
- 累计求积:\prod_{i=m}^{n} #从m到n求积
∏ i = m n \prod_{i=m}^{n} i=m∏n - 积分:
\int_{i=m}^{n} #从m到n积分
∫ i = m n \int_{i=m}^{n} ∫i=mn - 向量:
\vec a %a向量
a ⃗ \vec a a
\overrightarrow{AB} #A到B的向量
A B → \overrightarrow{AB} AB
-
省略号:a+b+\cdots+z #a+b+...+z
a + b + ⋯ + z a+b+\cdots+z a+b+⋯+z -
大括号:\underbrace{a+b+\cdots+z}{26} #a+b+...+z
a + b + ⋯ + z ⏟ 26 \underbrace{a+b+\cdots+z}{26} 26 a+b+⋯+z -
指数和下标可以用^和_后加相应字符来实现。比如:
-
平方根(square root)的输入命令为:\sqrt,n 次方根相应地为: \sqrt[n]。方根符号的大小由LATEX自动加以调整。也可用\surd 仅给出
符号。比如:
-
命令\overline 和\underline 在表达式的上、下方画出水平线。比如:
-
命令\overbrace 和\underbrace 在表达式的上、下方给出一水平的大括号。
-
向量(Vectors)通常用上方有小箭头(arrow symbols)的变量表示。这可由\vec 得到。另两个命令\overrightarrow 和\overleftarrow在定义从A 到B 的向量时非常有用。
-
分数(fraction)使用\frac{...}{...} 排版。一般来说,1/2 这种形式更受欢迎,因为对于少量的分式,它看起来更好些。
-
积分运算符(integral operator)用\int 来生成。求和运算符(sum operator)由\sum 生成。乘积运算符(product operator)由\prod 生成。上限和下限用^ 和_来生成,类似于上标和下标。
2.5 Pycharm
Pycharm 作为一款针对 Python 的编辑器,配置简单、功能强大、使用起来省时省心,对初学者友好。
下面介绍 pycharm 编辑器的基本使用方法,包括以下几个方面:
- 下载安装
- 新建项目流程
- 配置 Pycharm
- Python控制台
2.5.1 下载安装
Pycharm提供免费的社区版与付费的专业版。专业版额外增加了一些功能,如项目模板、远程开发、数据库支持等。个人学习 Python 使用免费的社区版已足够。
主页:https://www.jetbrains.com/pycharm/
下载后根据正常安装流程一步步操作即可。
注意:安装路径尽量不使用带有中文或空格的目录,在以后的使用过程中可以减少一些莫名错误。
2.5.2 新建项目
安装好软件之后,我们开始创建第一个项目,界面如下
左侧导航栏选择 Pure Python ,右侧的 Location 选择项目的路径, Interpreter 通过下拉栏选择 Python版本 ,这里直接使用 Python 的安装路径即可。
选择完成之后,点击 Create 按钮,进入界面。这时就可以创建文件了,步骤如下图所示:
这里我们以刚刚创建的 Crossin-practices 文件夹为例,依次点击
Crossin-practices → New → Python File
在 Name 一栏输入文件名即可,记得添加 .py 后缀,点击 OK 之后就可以开始书写代码:
print('hello,word')
然后在界面点击 右键 → Run example
出现这样的结果:
对于同一个脚本,第一次运行使用 右键 → Run example ,之后可以直接点击右上角或者左下角的绿三角 。如下图:
注意:更改文件运行的时候,三角和快捷键运行项目不会自动更改。所以经常会运行错误的文件而未发现。所以我们推荐第一次运行使用右键的方式,将脚本切换之后再使用绿三角。
2.5.3 Pycharm配置
Pycharm 里配置很多,几个比较重要的配置方法如下:
编码设置:
Python 的编码问题由来已久,为了避免一步一坑,Pycharm 提供了方便直接的解决方案
在 IDE Encoding 、Project Encoding 、Property Files 三处都使用 UTF-8 编码,同时在文件头添加:#-- coding: utf-8 -
这样在之后的学习过程中,或多或少会避免一些编码坑。
解释器设置:
当有多个版本安装在电脑上,或者需要管理虚拟环境时,Project Interpreter 提供方便的管理工具。
在这里可以方便的切换 Python 版本,添加卸载库等操作。
修改字体:
在 Editor → Font 选项下可以修改字体,调整字体大小等功能。
快捷键设置:
在 windows 下一些最常用的默认快捷键:
Pycharm 也为不同平台的用户提供了定制的快捷键方案,习惯了用emacs、vim、vs的同学,可以直接选择对应的方案。
同时,Pycharm 也提供了自定义快捷键的功能。
2.5.5 Python 控制台
为了方便用户,Pycharm 提供了另一个贴心的功能,将 Python shell 直接集成在软件中,调出方法如下: