数据分析-深度学习PytorchDay1

深度学习框架pytorch学习(一)准备环境

准备环境

一、深度学习框架简介

二、Tensorflow与Pytorch的比较

三、安装开发环境


一、深度学习框架简介

数据分析-深度学习PytorchDay1_第1张图片

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相对比较小众。

2002年Torch,基于Lua开发

2011年Torch7

2016.10发布pytorch0.1,THNN后端

2018.12发布pytorch1.0,Caffe2后端

2019.5发布1.1

数据分析-深度学习PytorchDay1_第2张图片

二、Tensorflow与Pytorch的比较

在众多的的学习框架下,pytorch和tensorflow作为最主流的两种框架,各自有着怎样的特点呢?pytorch是一种动态图,更加直观和容易理解。而tensorflow为静态图,首先要创建一张图,然后运行图。

pytorch更加适合新手入门,方便debug,而tensorflow更加适合工程项目。因此tensorflow(虽然马上要出tensorflow2.0,据说很好用。)转战pytorch。pytorch能做什么?

数据分析-深度学习PytorchDay1_第3张图片

pytorch的生态:

数据分析-深度学习PytorchDay1_第4张图片

pytorch的三个特点:

GPU加速

importtorchimporttimeprint(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.0Truecpu0.17958474159240723tensor(141219.6406)# 因为第一次需要加载,所以以第二次的时间为准。cuda:02.2960894107818604tensor(141437.2656,device='cuda:0')cuda:00.002928495407104492tensor(141437.2656,device='cuda:0')

如果print(torch.cuda.is_available())返回False说明pytorch与cuda没有匹配成功。

自动求导

importtorchfromtorchimportautogradx=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+cprint('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中执行下面自动生成的命令。

condainstallpytorchtorchvisioncudatoolkit=9.2-cpytorch-cdefaults-cnumba/label/dev

注意:安装这里有坑:

1首先要严格对应自己的python版本,比如3.6对应cuda9.0

2其次要注意将命令中-c pytorch删除,-c pytorch的意思就是从官网上获取,即使你已经更换了镜像源,去除-c pytorch之后,系统就会默认从设置的镜像源中获取。否则大概率可能会一直特别特别慢,甚至出现condahttpError。

condainstallpytorchtorchvisioncudatoolkit=9.2-cdefaults-cnumba/label/dev
数据分析-深度学习PytorchDay1_第5张图片

如果出现安装速度太慢,可以考虑换源,使用清华源:

condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/condaconfig--setshow_channel_urlsyes

速度还是可以的,如果还是不行那就再试试科大或者阿里。

建议,安装完成之后再把这个源删了,还是使用默认的源。以避免以后装一些包会报错。

condaconfig--remove-keychannels

安装完成以后,默认会安装一些附属的包,比如torchvision等。

第二种安装方式:默认已经安装cuda

第一步:首先去清华镜像下载pytorch

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

找到对应的版本下载即可,我的是python3.6,cuda9.0。

数据分析-深度学习PytorchDay1_第6张图片

第二步:打开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是默认的虚拟环境,回车等待安装即可)

离线安装是真的快~~~!!!

你可能感兴趣的:(深度学习,深度学习)