[PyTorch 学习笔记] 1.1 PyTorch 简介与安装
PyTorch 的诞生
2017 年 1 月,FAIR(Facebook AI Research)发布了 PyTorch。PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深度学习框架。Torch 是采用 Lua 语言为接口的机器学习框架,但是因为 Lua 语言较为小众,导致 Torch 学习成本高,因此知名度不高。
PyTorch 的发展
- 2017 年 1 月正式发布 PyTorch。
- 2018 年 4 月更新 0.4.0 版,支持 Windows 系统,caffe2 正式并入 PyTorch。
- 2018 年 11 月更新 1.0 稳定版,已成为 Github 上增长第二快的开源项目。
- 2019 年 5 月更新 1.1.0 版,支持 TensorBoard,增强可视化功能。
- 2019 年 8 月更新 1.2.0 版,更新 Torchvision,torchaudio 和torchtext,支持更多功能。
- 目前 PyTorch 有超越 Tensorflow 的趋势。
- ...
PyTorch 优点
- 上手快,掌握 Numpy 和基本深度学习概念即可上手。
- 代码简洁灵活,使用 nn.Module 封装使得网络搭建更加方便 。基于动态图机制,更加灵活。
- 资源多,arXiv 中新论文的算法大多有 PyTorch 实现。
- 开发者多,Github 上贡献者(Contributors)已经超过 1100+
- ...
PyTorch 实现模型训练的 5 大要素
- 数据:包括数据读取,数据清洗,进行数据划分和数据预处理,比如读取图片如何预处理及数据增强。
- 模型:包括构建模型模块,组织复杂网络,初始化网络参数,定义网络层。
- 损失函数:包括创建损失函数,设置损失函数超参数,根据不同任务选择合适的损失函数。
- 优化器:包括根据梯度使用某种优化器更新参数,管理模型参数,管理多个参数组实现不同学习率,调整学习率。
- 迭代训练:组织上面 4 个模块进行反复训练。包括观察训练效果,绘制 Loss/ Accuracy 曲线,用 TensorBoard 进行可视化分析。
整个系列的学习都会围绕着这 5 个方面来展开。
安装
在开发过程中可能会有多个项目同时进行,不同项目之间使用的 Python 版本和一些库的版本不一样,这就会导致冲突。因此这里使用 Anaconda 来管理多个 Python 虚拟环境。Anaconda 是为了方便使用 Python 而建立的一个软件包,包含常用 的 250 多个工具包,多个版本的 Python 解释器和强大的虚拟环境管理工具。各个环境之间相互独立,可任意切换。
安装 Anaconda
- 到官网 https://www.anaconda.com/products/individual 选择适合自己系统的 64 位安装包,注意选择 Python3 以上的版本。
- 安装时记得勾选
Add Anaconda to my PATH environment variable
添加到环境变量中。 - 安装完成后打开
cmd
,输入conda
回车出现如下信息,即为安装成功。
- 接着添加中科大镜像或者清华镜像,在安装库的时候实现加速下载。
安装 PyTorch
- 检查是否有支持 CUDA 的 GPU,若有,需要安装 CUDA 和CuDNN。
- 进入 PyTorch 官方网站 https://pytorch.org/get-started/locally/选择自己需要安装的 PyTorch 对应的命令,在本地 cmd 中输入安装命令即可。这里我本机选择使用 conda 安装不支持 GPU 的 1.5 版本:
conda install pytorch torchvision cpuonly -c pytorch
。
如果 conda 或者 pip 安装很慢,也可以直接进入 https://download.pytorch.org/whl/torch_stable.html 下载 whl 包到本地安装。该页面包含了所有历史版本和各个平台的 PyTorch,需要根据文件名选择自己需要的版本进行下载。文件命名规则如下所示:
第一部分是 cuda 版本或者 cpu,第二部分是 PyTorch 版本号,第三部分是 Python 版本号,第四部分是操作系统。
cu92/torch-1.5.0%2Bcu92-cp37-cp37m-linux_x86_64.whl
Pycharm 使用 Anaconda 环境
在 Pycharm 中新建项目后,需要在 File -> Settings -> Project -> Python Interpreter
中选择 Anaconda 环境。
首先点击齿轮图标,点击弹出的add
,
接着在弹出的窗口中选择Conda Environment
,Conda execute
选择你安装好的 Anaconda 的文件夹下的Scripts\conda.exe
。
最后在Python Interpreter
给当前项目选择刚刚创建的 Python 环境即可。
如果安装的是 GPU 版本,安装完成之后可以使用print(torch.cuda.is_available())
语句来查看安装好的 PyTorch 是否支持 GPU。这里我是用的是 CPU 版本。
参考资料
如果你觉得这篇文章对你有帮助,不妨点个赞,让我有更多动力写出好文章。
我的文章会首发在公众号上,欢迎扫码关注我的公众号张贤同学。
[PyTorch 学习笔记] 1.1 PyTorch 简介与安装的更多相关文章
- Pytorch学习笔记(一)——简介
一.Tensor Tensor是Pytorch中重要的数据结构,可以认为是一个高维数组.Tensor可以是一个标量.一维数组(向量).二维数组(矩阵)或者高维数组等.Tensor和numpy的ndar ...
- Nodejs学习笔记(一)--- 简介及安装Node.js开发环境
目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...
- Nodejs学习笔记(一)—简介及安装Node.js开发环境
一.简介 Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言: Node.js采用的Javascript引擎是来自Google Chrome的V8:运行在浏览器外不用考虑 ...
- 【转】Nodejs学习笔记(一)--- 简介及安装Node.js开发环境
目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- 【web开发学习笔记】Structs2 Result学习笔记(一)简介
Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...
- Linux学习笔记之 Btrfs文件系统简介及使用
Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...
- X-Cart 学习笔记(一)了解和安装X-Cart
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 一.了解 ...
- Django学习笔记(一):环境安装与简单实例
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...
随机推荐
- netcore RabbitMQ入门--win10开发环境
安装 1.进入rabbitMQ官网下载安装包 2.点击安装包安装的时候会提示需要先装erlang 点击是会自动跳转到erlang的下载界面如果没有跳转可以直接点击这里下载,根据系统选择下载包 下载完之 ...
- python 99乘法表
先把代码贴上 for i in range(1,10): for j in range(1,i+1): s="%d X %d = %d"%(j,i,i*j) print(s,end ...
- Error: no such table: device;的问题的解决,去掉表名device后面的分号;
sqlite> .mode csvsqlite> .import device.txt device;Error: no such table: device;sqlite> .im ...
- __getattribute__小例子
class student(object): def __init__(self,name=None,age=None): self.name = name self.age = age def __ ...
- Django学习路
1.脚本不能随便运行,没准 linux 运行完就上不去了 2.pip 在 linux 上 写 pip3 同理 python 写为 python3 3.在 pycharm 上安装库之后,在命令提示符中依 ...
- P6222 「简单题」加强版 莫比乌斯反演 线性筛积性函数
LINK:简单题 以前写过弱化版的 不过那个实现过于垃圾 少预处理了一个东西. 这里写一个实现比较精细了. 最后可推出式子:\(\sum_{T=1}^nsum(\frac{n}{T})\sum_{x| ...
- Spring学习总结(5)-Spring依赖关系
参考资料:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans ...
- 7月13日考试 题解(DFS序+期望+线段树优化建图)
T1 sign 题目大意:给出一棵 N 个节点的树,求所有起点为叶节点的有向路径,其 上每一条边权值和的和.N<=10000 水题.考试的时候毒瘤出题人(学长orz)把读入顺序改了一下,于是很多 ...
- 企业签名和TF签名哪个好?TF签名和企业签名怎么选?
很多开发者在App无法上架Appstore,需要内测或者开放给苹果用户使用的时候,需要选择企业签名来帮助自己的App开放下载链接,给苹果用户使用.苹果企业签名的类型有很多,TF签名最近又很火爆,那么企 ...
- canvas小画板--(1)平滑曲线
功能需求 项目需求:需要实现一个可以自由书写的小画板 简单实现 对于熟悉canvas的同学来说,这个需求很简单,短短几十行代码就能实现: <!doctype html> <html& ...