一.TensorFlow
1.TensorFlow简介
TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief 。
Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 。
TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API) [2] 。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码 。
TensorFlow支持多种客户端语言下的安装和运行。截至版本1.12.0,绑定完成并支持版本兼容运行的语言为C和Python,其它(试验性)绑定完成的语言为JavaScript、C++、Java、Go和Swift,依然处于开发阶段的包括C#、Haskell、Julia、Ruby、Rust和Scala 。
Python
TensorFlow提供Python语言下的四个不同版本:CPU版本(tensorflow)、包含GPU加速的版本(tensorflow-gpu),以及它们的每日编译版本(tf-nightly、tf-nightly-gpu)。TensorFlow的Python版本支持Ubuntu 16.04、Windows 7、macOS 10.12.6 Sierra、Raspbian 9.0及对应的更高版本,其中macOS版不包含GPU加速 。安装Python版TensorFlow可以使用模块管理工具pip/pip3 [7] 或anaconda并在终端直接运行。
pip install tensorflow
conda install -c conda-forge tensorflow
此外Python版TensorFlow也可以使用Docker安装:
docker pull tensorflow/tensorflow:latest
# 可用的tag包括latest、nightly、version等
# docker镜像文件:https://hub.docker.com/r/tensorflow/tensorflow/tags/
docker run -it -p 8888:8888 tensorflow/tensorflow:latest
# dock下运行jupyter notebook
docker run -it tensorflow/tensorflow bash
# 启用编译了tensorflow的bash环境
配置GPU
TensorFlow支持在Linux和Window系统下使用统一计算架构(Compute Unified Device Architecture, CUDA)高于3.5的NVIDIA GPU [10-11] 和ROCm [79-80] 。配置GPU时要求系统有NVIDIA GPU驱动384.x及以上版本、CUDA Toolkit和CUPTI(CUDA Profiling Tools Interface)9.0版本、cuDNN SDK7.2以上版本。可选配置包括NCCL 2.2用于多GPU支持、TensorRT 4.0用于TensorFlow模型优化 。
在Linux下配置GPU时,将CUDA Toolkit和CUPTI的路径加入$LD_LIBRARY_PATH环境变量即可。对于CUDA为3.0或其它版本的NVIDIA程序,需要从源文件编译TensorFlow 。对Windows下的GPU配置,需要将CUDA、CUPTI和cuDNN的安装路径加入%PATH%环境变量,在DOS终端有如下操作:
C:\> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;%PATH%
C:\> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64;%PATH%
C:\> SET PATH=C:\tools\cuda\bin;%PATH%
Linux系统下使用docker安装的Python版TensorFlow也可配置GPU加速且无需CUDA Toolkit :
# 确认GPU状态
lspci | grep -i nvidia
# 导入GPU加速的TensorFlow镜像文件
docker pull tensorflow/tensorflow:latest-gpu
# 验证安装
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
# 启用bash环境
docker run --runtime=nvidia -it tensorflow/tensorflow:latest-gpu bash
3.学习
1.简介
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。
2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:
①具有强大的GPU加速的张量计算(如NumPy)。
②包含自动求导系统的深度神经网络。
2.优点
①PyTorch是相当简洁且高效快速的框架
②设计追求最少的封装
③设计符合人类思维,它让用户尽可能地专注于实现自己的想法
④与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新
⑤PyTorch作者亲自维护的论坛 供用户交流和求教问题
⑥入门简单
PyTorch的安装十分简单,根据PyTorch官网,对系统选择和安装方式等灵活选择即可。这里以anaconda为例。
Pytorch的安装经过了几次变化,请大家以官网的安装命令为准。另外需要说明的就是在1.2版本以后,Pytorch只支持cuda 9.2以上了,所以需要对cuda进行升级,部分显卡都可以用,包括笔记本的MX250也是可以顺利升级到cuda 10.1。此处使用Conda包管理器。
注意:如果使用镜像站,请删除“-c pytorch”;安装CUDA(即GPU)版本时注意安装CUDNN运行库
# 全部通用,ROCm仅支持Linux
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch #CUDA 10.2
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch #CUDA 11.3
conda install pytorch torchvision torchaudio cpuonly -c pytorch #CPU
pip3 install torch torchvision==0.11.2 -f https://download.pytorch.org/whl/rocm4.2/torch_stable.html
# ROCm 4.2 (仅Linux)
验证输入python 进入
import torch
print(torch.__version__) #Pytorch版本
print(torch.version.cuda) #CUDA版本
print(torch.backends.cudnn.version()) #CUDNN版本
配置Jupyter Notebook
新建的环境是没有安装安装ipykernel的所以无法注册到Jupyter Notebook中,所以先要准备环境
#安装ipykernel
conda install ipykernel
#写入环境
python -m ipykernel install --name pytorch --display-name "Pytorch for Deeplearning"
下一步:定制 Jupyter Notebook
#切换回基础环境
activate base
#创建jupyter notebook配置文件
jupyter notebook --generate-config
## 这里会显示创建jupyter_notebook_config.py的具体位置
打开文件,修改
c.NotebookApp.notebook_dir = '' 默认目录位置
c.NotebookApp.iopub_data_rate_limit = 100000000 这个改大一些否则有可能报错
测试
至此,Pytorch 的开发环境安装完成,可以在开始菜单中打开Jupyter Notebook 在New 菜单中创建文件时选择Pytorch for Deeplearning 创建PyTorch的相关开发环境了。
4.学习