简介
在个人电脑上,搭建编程所需的各项环境
Anaconda
一个涵盖了Python、pip以及常用Python包的软件,,根据操作系统进行选择,并使用Python3对应的Anaconda版本
Sublime Text
一个简洁清爽而高颜值的编辑器,,下载并安装Sublime Text 3
也可以尝试其他对新手更友好的编辑器,例如PyCharm,
运行代码
运行代码的三种方法
- 使用编辑器编写代码,并在编辑器中运行
- 使用编辑器编写代码,并在命令行中运行
- 使用Jupyter Notebook编写代码并运行
安装包
可以用pip
或conda
安装Python包
pip install tensorflow keras复制代码
如果安装过慢,可以尝试使用国内的源,例如清华提供的源
pip install tensorflow==1.9.0 keras==2.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple复制代码
文件路径
Windows上的文件路径以左斜杠\
拼接
C:\Users\hlzhang\Desktop复制代码
而Mac和Linux上的文件路径以右斜杠/
拼接
/Users/honlan/Desktop复制代码
我习惯于后者,所以在后续代码中,如果使用字符串表示或拼接文件路径,则都是使用/
如果在Windows上报错,请将/
相应地改为\
中文编码
在Windows上读写文本文件时,最好指定编码为utf8
,尤其是在文件中包含中文时,因为这门课所涉及的文本文件都是utf8
编码
fr = open('xyj.txt', 'r', encoding='utf8')复制代码
不然可能会出现类似以下编码错误
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 2: illegal multibyte sequence复制代码
深度学习框架
TensorFlow和Keras都是非常流行的深度学习框架
TensorFlow提供了更加底层的API,好比木材和各种工具,自己DIY
Keras封装度更高,以Theano、TensorFlow等底层框架为backend
,好比造好的轮子
用经典网络层搭模型时,Keras更方便;动手实现和修改模型的细节时,TensorFlow更灵活
Keras的backend
可以是Theano或TensorFlow,为了保持一致,将backend
改为TensorFlow
编辑以下文件,如果是Windows,则将$Home
改为%USERPROFILE%
$HOME/.keras/keras.json复制代码
修改backend字段即可,改动始终有效
{ "image_data_format": "channels_last", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow"}复制代码
或者在代码里指定,仅对当前代码有效
import osos.environ['KERAS_BACKEND'] = 'tensorflow'import keras复制代码
关于backend
的更多内容,请参考以下文档,
GPU
CNN等神经网络模型使用GPU训练更快,有条件的话可以用GPU,不然只能用CPU进行训练,相应地需要安装tensorflow的gpu版本
pip install tensorflow-gpu复制代码
如果是Nvidia的GPU,那么还需要安装和配置CUDA和CuDNN,,并且需要注意tensorflow和CUDA、CuDNN之间的版本兼容问题
- 在tensorflow1.6之前,使用CUDA8.0和CuDNN8
- 从tensorflow1.6开始,使用CUDA9.0和CuDNN7
- tensorflow版本更新很快,录课开始时还是1.4,录课结束时已经更新到了1.10
- 没有一成不变的配置,只有不断适应才能赶上变化
推荐前置
- 理论基础课:吴恩达深度学习微专业,
- 编程实战课:全栈数据工程师养成攻略,
Q&A
__MACOSX
和.DS_Store
是mac文件系统自动生成的,在其他操作系统下可以忽略,或者删掉
03课中,在Windows上读取包含中文的文本文件时,如果报UnicodeDecodeError
,记得在open
函数中指定编码open('xyj.txt', encoding='utf8')
13课中,所使用的中文维基分词语料下载链接为, ,提取密码为kade
18课中,在Windows上可能出现无法读取中文名称图片的情况,将图片名称修改成英文即可
29课中,main.py
19行的split如果报IndexError
,是因为Window使用左斜杠为路径分隔符,所以把/
改成\\
即可