作者:kyle_G_476 | 来源:互联网 | 2023-09-25 18:46
准备环境一、深度学习框架简介二、Tensorflow与Pytorch的比较三、安装开发环境一、深度学习框架简介1、Google阵营最早的是由加拿大团队开发的theano一个机器学习
准备环境
一、深度学习框架简介
二、Tensorflow与Pytorch的比较
三、安装开发环境
一、深度学习框架简介
1、Google阵营
最早的是由加拿大团队开发的theano一个机器学习库,现在已经停止更新。接着Google开发了Tensorflow,并且收购了keras这样一个高阶API的命名规范。keras可以使用不同的后端。主流的就是tensorflow2.0。
2、Facebook阵营
2002年推出Torch,2011年推出Torch7,但是这都是基于一种小众语言Lua,2018年将torch与caffe、caffe2强强联合推出pytorch1.0,基于C和C++的后端,2019年五月发布1.1版本。主推Pytorch。值得一提的是caffe是由华人贾扬清开发的。其中pytorch借鉴了一个日本的深度学习框架Chainer的API的设计规范。
3、Amazon AWS阵营
mxnet作为亚马逊的官方框架。值得一提的是mxnet是由华人陈天齐和李沐开发的。
4、微软阵营
微软的CNTK相对比较小众。
二、Tensorflow与Pytorch的比较
在众多的的学习框架下,pytorch和tensorflow作为最主流的两种框架,各自有着怎样的特点呢?pytorch是一种动态图,更加直观和容易理解。而tensorflow为静态图,首先要创建一张图,然后运行图。
pytorch更加适合新手入门,方便debug,而tensorflow更加适合工程项目。因此tensorflow(虽然马上要出tensorflow2.0,据说很好用。)转战pytorch。pytorch能做什么?
pytorch的生态:
pytorch的三个特点:
import torch
import time
print(torch.__version__)
print(torch.cuda.is_available())
a = torch.randn(10000, 1000)
b = torch.randn(1000, 2000)
t0 = time.time()
c = torch.matmul(a, b)
t1 = time.time()
print(a.device, t1-t0, c.norm(2))
device = torch.device('cuda')
a = a.to(device)
b = b.to(device)
# 包含了初始化的时间
t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2-t0, c.norm(2))
t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2-t0, c.norm(2))
输出结果:
1.1.0
True
cpu 0.17958474159240723 tensor(141219.6406)
# 因为第一次需要加载,所以以第二次的时间为准。
cuda:0 2.2960894107818604 tensor(141437.2656, device='cuda:0')
cuda:0 0.002928495407104492 tensor(141437.2656, device='cuda:0')
如果print(torch.cuda.is_available())返回False说明pytorch与cuda没有匹配成功。
import torch
from torch import autograd
x = torch.tensor(1.)
a = torch.tensor(1., requires_grad=True)
b = torch.tensor(2., requires_grad=True)
c = torch.tensor(3., requires_grad=True)
y = a**2 * x + b * x + c
print('before', a.grad, b.grad, c.grad)
grads = autograd.grad(y, [a, b, c])
print('after:', grads[0], grads[1], grads[2])
- 常用的网络层
- nn.linear
- nn.Conv2d
- mm.LSTM
- nn.ReLU
- nn.Sigmoid
- nn.softmax
- nn.CrossEntropyLoss
- nn.MSE
三、安装开发环境
第一种安装方式:默认没有安装cuda
第一步:安装anaconda5.3.1,默认安装python3.7。
第二步:安装CUDA,搜索Cuda download,下载CUDA Tookit10.0 Download(根据python版本选择相应的CUDA版本),安装完成之后,打开cmd检测安装是否成功。输入nvcc -V,如果失败,需要配置环境变量。
第三步:配置环境变量。CUDA默认安装路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin,打开我的电脑属性,将上述路径添加到环境变量中。
第四步:安装pytorch。打开pytorch官方网站,点击相应的选择,以管理员权限运行cmd中执行下面自动生成的命令。
conda install pytorch torchvision cudatoolkit=9.2 -c pytorch -c defaults -c numba/label/dev
如果出现安装速度太慢,可以考虑换源,使用清华源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
速度还是可以的,如果还是不行那就再试试科大或者阿里。
建议,安装完成之后再把这个源删了,还是使用默认的源。以避免以后装一些包会报错。
conda config --remove-key channels
安装完成以后,默认会安装一些附属的包,比如torchvision等。
第二种安装方式:默认已经安装cuda
第一步:首先去清华镜像下载pytorch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
找到对应的版本下载即可,我的是python3.6,cuda9.0。
第二步:打开anaconda prompt,执行如下操作
(base) D:\software\Anaconda3>conda install --offline -n base pytorch-nightly-1.0.0.dev20190101-py3.6_cuda90_cudnn7_0.tar.b
(注意 base是默认的虚拟环境,回车等待安装即可)
离线安装是真的快~~~!!!
我是尾巴
之前就一直觉得tensorflow的debug让人极其不爽,虽然keras使用起来很方便,但是对于学习来说还是要学pytorch,20190902从今天开始。
本次推荐:
[pytorch中文官方文档](https://pytorch-cn.readthedocs.io/zh/latest/)
[windowns下配置tensorflow环境](https://www.cnblogs.com/zhangkanghui/p/10756630.html)
继续加油~