数据分析-深度学习PytorchDay1

news2025/2/26 6:36:35

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

准备环境

一、深度学习框架简介

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

2002年Torch,基于Lua开发

2011年Torch7

2016.10发布pytorch0.1,THNN后端

2018.12发布pytorch1.0,Caffe2后端

2019.5发布1.1

二、Tensorflow与Pytorch的比较

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

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

pytorch的生态:

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

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

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。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习知识点】3. 目标检测任务中如何在图片上的目标位置绘制边界框

目录前言导入图片定义边界框绘制函数在图片中绘制边界框总结前言 在图像分类任务中,很多时候我们不仅要知道图像中目标的类别,而且还想知道它们在图像中的具体位置。在计算机视觉里,这类任务被称为目标检测(object detection&…

uniapp开发技术

目录 1、js 判断iPhone|iPad|iPod|iOS|Android客户端 2、js实现防抖 3、 js实现节流 4、 页面在弹窗时禁止底部页面滚动(h5端) touchmove.stop.prevent 5、scrollIntoView 1、js 判断iPhone|iPad|iPod|iOS|Android客户端 // fullScreen代表整个页面…

【C++】STL---list的模拟实现

目录前言一、list和vector的区别二、节点的定义三、list类定义四、push_back函数五、push_front函数六、迭代器七、begin和end函数八、迭代器区间初始化九、迭代器的操作符重载操作符重载操作符- -重载操作符!重载操作符重载操作符*重载十、insert函数十一、erase函…

如何应用卫星图像插入到Auto CAD

如何应用卫星图像插入到Auto CAD发布时间:2018-01-17 版权:工具准备BIGEMAP GIS Office:http://www.bigemap.com/reader/download/案例:等高线完美套合卫星影像教程本实例使用AutoCAD2008软件进行影像与矢量数据叠加配准。影像获取…

变压器和特斯拉线圈

目录 变压器用途 变压器的原理 变压器特点 特斯拉线圈用途 特斯拉线圈原理 特斯拉线圈特点 参考: 变压器用途 电压变换、电流变换、阻抗变换、隔离、稳压等 1)开关电源,充电器,220v转换为指定电压,以给各类电子…

Revit建模幕墙问题:幕墙添加门/窗和生成幕墙

一、Revit中如何在幕墙当中添加门、窗构件 今天跟大家分享一下幕墙当中添加门窗的方法,这种方法大家可以联想到很多应用上,因为这个既是个方法也是个技巧,好了,我们直接进入主题吧。 首先,我们新建幕墙,给它…

范数的意义与计算方法

1. 范数的意义 范数可以简单的理解为“距离”。由于向量是既有大小又有方向的量,所以向量是不能直接比较大小的,但是范数提供了一种方法,可以将所有的向量转化为一个实数,然后就可以比较向量的大小了。(注&#xff1a…

【计算机视觉】Pooling层的作用以及如何进行反向传播

问题 CNN网络在反向传播中需要逐层向前求梯度,然而pooling层没有可学习的参数,那它是如何进行反向传播的呢? 此外,CNN中为什么要加pooling层,它的作用是什么? Pooling层 CNN一般采用average pooling或max pooling来进行池化操作,而池化操作会改变feature map的大小,…

swagger的使用与步骤

1、导入maven工程首先我们创建一个 Spring Boot 项目&#xff0c;并引入 Swagger3 的核心依赖包&#xff0c;如下&#xff1a;<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.…

2022年度游戏本行业数据报告:十大热门品牌销量排行榜

2022年游戏本市场的总体局面是&#xff1a;产品竞争极为激烈&#xff0c;同时又各具特色卖点。今年的游戏本市场&#xff0c;市场格局并未有较大的变化&#xff0c;但是新技术、新产品层出不穷&#xff0c;各个游戏本厂商们通过不断创新、提升产品性能&#xff0c;推出了体验感…

高等数学(第七版)同济大学 习题11-5 个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题11-5 函数作图软件&#xff1a;Mathematica 1.按对坐标的曲面积分的定义证明公式∬Σ[P1(x,y,z)P2(x,y,z)]dydz∬ΣP1(x,y,z)dydz∬ΣP2(x,y,z)dydz.\begin{aligned}&1. \ 按对坐标的曲面积分的定义证明公式\\\\&…

【javascript】有计算功能的简易计算器

外观不满意&#xff0c;可以自行修改。 主要用到的有&#xff1a;grid布局 js原生 阿里字体图标 eval函数 eval() 函数计算 JavaScript 字符串&#xff0c;并把它作为脚本代码来执行。 如果参数是一个表达式&#xff0c;eval() 函数将执行表达式。如果参数是Javascript语句&a…

Vmware 16 安装 Anolis 8.6

Vmware 安装 Anolis一.Anoliso镜像下载二.Vmware虚拟机安装Anolisos1.新建自定义2.稍后安装操作系统3.选择系统4.设置虚拟机名称和安装位置5.按需修改磁盘大小6.最后点击完成即可7.编辑虚拟机设置8.选择镜像8.开启虚拟机9.安装10.设置root密码并开始安装11.完成后重启12.登录三…

Mysql底层原理与性能调优

在工作中&#xff0c;公司就线上生产环节&#xff0c;有没有时常碰到过一些慢SQL查询&#xff0c;那我相信大多时候第一时间想到的优化策略&#xff0c;我相信肯定就是索引&#xff0c;可能第一时间就会想到&#xff0c;看一下SQL是不是有加合适的索引&#xff0c;它的条件里面…

1.3 认识程序开发

文章目录1.程序开发流程1.1 软件定义期&#xff08;研究分析阶段&#xff09;1.2 软件开发期&#xff08;开发阶段&#xff09;1.3 软件上线期&#xff08;部署运行阶段&#xff09;2.认识浏览器2.1 浏览器如何实现访问网站的&#xff1f;2.2 HTTP协议2.3 URL地址的构成2.4 如何…

C++/Qt 小知识记录2

工作中遇到的一些小问题&#xff0c;总结的小知识记录&#xff1a;C/Qt 小知识RGBA/ARGB转16进制颜色int与RGB互转int转Hex值VS2015代码粗略统计QTableWidget设置列宽设置整行选中Item设置可选中但不可编辑C std路径相关操作文件写出绝对路径转为相对路径字符替换打印出GBK的平…

OAuth 2.0(四):手把手带你写代码接入 OAuth 2.0 授权服务

一、业务背景 近期团队帮银行做了一个互动营销活动&#xff0c;活动入口在行方的 App 上&#xff0c;当用户在行方 App 点击活动 banner 页跳转活动的时候参与。 在进活动之前作为业务方自然需要知道参与活动的人是谁&#xff0c;如何给它构建登录态。 这就是为什么橘长这边需…

Node.js--》详解express中的身份认证

目录 Web开发模式 身份认证 Session认证机制 在Express中使用Session认证 JWT认证机制 在Express中使用JWT Web开发模式 目前主流的Web开发模式有两种&#xff1a; 基于服务端渲染的传统Web开发模式 服务端渲染的概念&#xff1a;服务器发送给客户端的HTML页面&#x…

【JavaEE】进入Web开发的世界-CSS

目录 一、CSS的基本规则 二、HTML中如何引入CSS规则&#xff08;html资源如何和css资源产生联系&#xff09; 三、选择器&#xff08;selector&#xff09;规则 3.1各种选择器 3.2普通选择器使用 3.3选择器之间的优先级规则(即覆盖规则) 3.4进一步的选择器规则 3.5伪类…

测试必会 Docker 实战(一):掌握高频命令,夯实内功基础

在 Dokcer 横空出世之前&#xff0c;应用打包一直是大部分研发团队的痛点。在工作中&#xff0c;面对多种服务&#xff0c;多个服务器&#xff0c;以及多种环境&#xff0c;如果还继续用传统的方式打包部署&#xff0c;会浪费大量时间精力。在 Docker 出现后&#xff0c;它以更…