热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

准备环境一、深度学习框架简介二、Tensorflow与Pytorch的比较三、安装开发环境一、深度学习框架简介1、Google阵营最早的是由加拿大团队开发的theano一个机器学习

准备环境

一、深度学习框架简介

二、Tensorflow与Pytorch的比较

三、安装开发环境

一、深度学习框架简介

《深度学习框架pytorch学习(一)准备环境》
《深度学习框架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学习(一)准备环境》

pytorch的生态:

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

pytorch的三个特点:

  • GPU加速

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

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

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

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。

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

第二步:打开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)

继续加油~


推荐阅读
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 本文介绍了如何使用 Google Colab 的免费 GPU 资源进行深度学习应用开发。Google Colab 是一个无需配置即可使用的云端 Jupyter 笔记本环境,支持多种深度学习框架,并且提供免费的 GPU 计算资源。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 非线性门控感知器算法的实现与应用分析 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 英特尔推出第三代至强可扩展处理器及傲腾持久内存,AI性能显著提升
    英特尔在数据创新峰会上发布了第三代至强可扩展处理器和第二代傲腾持久内存,全面增强AI能力和系统性能。 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
author-avatar
kyle_G_476
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有