学习pytorch: 深度学习入门建议

2023-10-26

0. 简介

本文主要介绍了使用pytorch作为框架入门深度学习。

其中第1节(深度学习入门)内容较多,建议边看第1节边实践第2节(Pytorch入门)中的内容(主要是2.1和2.2)。

1. 深度学习入门

网上的资源非常多,这里重点推荐一个资源:斯坦福大学公开课 CS231N

对应的中文翻译及视频资料等如下:CS231n 官方笔记及其中文译本

CS231N

学习建议:

  • 读者把截图中两个模块中涉及的文档读懂(部分代码要自己对照着原文实践) 基本上就可以入门了(预计需要半个月到一个月时间)。
  • 上述链接中的视频,作业等资料可选择性观看,主要看截图中给到的内容。笔者只看了截图中的英文资料,其他内容还没看:(, 如果读者觉得读英语效率低,可以参考对应的中文资料。
  • 这里不再推荐其他资源,对于初学者只要精通了上述内容,基本上就可以读懂绝大多数深度学习的资料了,对于里面不懂的内容可自行查找资料补充。

2. Pytorch 入门

2.1. 安装软件

2.1.1 python

建议安装anaconda(里面集成了python解释器以及常用的python模块)。

由于官网下载比较慢,建议在清华大学镜像站下载安装。

Anaconda

2.1.2 pycharm(可选择)

这是一个IDE(软件开发环境,类似于Visual Studio), 建议读者使用。但是读者也可以使用Anaconda中自带的IDE,如Spyder。或者也可以使用其他编辑器,如Visual Studio Code。或者进阶的朋友可以考虑VIM编辑器(参考我的其他博客:学习vim: 常用命令, 学习vim: 配置python相关插件

建议:IDE不一定用的多的就是最好的,请读者自行选择适合自己的IDE,并且精通一个即可。

2.1.3 cuda(可选择)

如果读者电脑上有nvidia GPU且未安装cuda,可以考虑下载并安装。这里给出建议的参考博客,不再详细介绍。

2.1.4 pytorch

如图,登陆pytorch官网,在下方选好对应的pytorch版本,系统会自动给出需要运行的命令。

Linux 下安装教程:

  • 比如这里笔者选择satble(1.1)版本, 操作系统为Linux, 安装包使用Conda, python版本为3.6, cuda版本为9.0。
    因此只需要在终端(Terminal)中输入如下命令:conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
    安装
    注意:这里如果读者没有安装cuda,选择None

Windows 下安装教程:

  • Windows 下安装教程:pytorch在windows10上安装使用
  • 如果系统为windows,建议按照如下配置选择:
    image.png
    注意:这里如果读者没有安装cuda,选择None

2.2. pytorch的基本原理

这一节笔者主要看了pytorch的官方文档和教程,里面有很多很多例子,如果把这些例子全看完,足以满足日常使用的要求。如果时间不够充足,可以考虑先挑一些紧急的看,以后等到熟练了或者需要用到什么地方再反过头来看。

下面列举了一些建议先看的内容:

2.2.1 60分钟入门

60 min
对应中文翻译:PyTorch 深度学习:60分钟快速入门

把上图中的五个部分读懂,大约需要一小时到两小时。这一部分主要介绍了

  • 什么是pytorch?
  • 什么是tensor?
  • pytorch如何自动求导?
  • 什么是神经网络,如何搭建神经网络?
  • 如何从头到尾训练一个分类的神经网络模型?
  • 数据并行机制?数据怎么在多个GPU上并行运算?

2.2.2 pytorch的数据加载机制

DATA LOADING AND PROCESSING TUTORIAL

对应中文翻译:PyTorch:数据加载和预处理

这一节我认为是必看的,大约需要一到两小时读懂。读完这一节,你将学会:

  • 读懂别人是怎么设计DataSet的
  • 灵活地针对自己的数据定义训练过程中从磁盘上读取数据到网络中

2.2.3 模型加载和保存

这一节主要讲如何将训练好的模型加载到网络中,以及如何保存训练好的模型。

读完上述内容,基本上可以了解pytorch的原理。剩下的就是根据不同的需求看不同的内容。比如,如果读者想做迁移学习,或者强化学习,或者只是想用GAN网络,那么只需要找对应的内容即可。

2.3. Pytorch工具介绍 (可选择)

下面的链接介绍了笔者常用的一些pytorch工具,包括

tensorboardX

Augomentor

3. 补充说明

  • 上述关于pytorch的内容建议直接看英文文档,如果读者觉得看英语效率低,请自己找一下对应的中文翻译。这里笔者只找了部分内容供读者参考。

  • 关于看书还是官方文档。每个人习惯不一样,笔者倾向于不看书。因为现有的关于pytorch的个人认为写的较为粗浅,甚至还不如官方教程细致;pytorch更新较快,官方教程也是每隔一段时间就会更新一下,而书很难跟上最新的更新。

  • 如果读者想了解更多,除了看官方教程,还建议读一读源码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习pytorch: 深度学习入门建议 的相关文章

  • 使用 Python 编辑 RTF 文件

    也许这是一个愚蠢的问题 但我不明白 所以道歉 我有一个 RTF 文档 我想更改它 例如 有一个表 我想复制一行并以面向对象的方式更改代码中第二行中的文本 我认为 pyparsing 应该是可行的方法 但我摆弄了几个小时但没有明白 我没有提供
  • 为什么我的混淆矩阵只返回一个数字?

    我正在做二元分类 每当我的预测等于事实时 我发现sklearn metrics confusion matrix返回单个值 难道没有问题吗 from sklearn metrics import confusion matrix print
  • 数据框 - 平均列

    我在 pandas 中有以下数据框 Column 1 Column 2 Column3 Column 4 2 2 2 4 1 2 2 3 我正在创建一个数据框 其中包含第 1 列和第 2 列 第 3 列和第 4 列等的平均值 ColumnA
  • 将 C++ 指针作为参数传递给 Cython 函数

    cdef extern from Foo h cdef cppclass Bar pass cdef class PyClass cdef Bar bar def cinit self Bar b bar b 这总是会给我类似的东西 Can
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • 检查 python 中命令行参数的数量

    我是蟒蛇新手 还是把脚弄湿了 我正在尝试做这样的事情 import sys if len sys argv lt 3 or lt len sys argv gt 3 print This script will compare two fi
  • 如何获取numpy.random.choice的索引? - Python

    是否可以修改 numpy random choice 函数以使其返回所选元素的索引 基本上 我想创建一个列表并随机选择元素而不进行替换 import numpy as np gt gt gt a 1 4 1 3 3 2 1 4 gt gt
  • numpy:高效执行数组的复杂重塑

    我正在将供应商提供的大型二进制数组读入 2D numpy 数组 tempfid M N load data data numpy fromfile file dirname fid dtype numpy dtype i4 convert
  • 如何使用 opencv python 计算乐高积木上的孔数?

    我正在开发我的 python 项目 我需要计算每个乐高积木组件中有多少个孔 我将从输入 json 文件中获取有关需要计算哪个程序集的信息 如下所示 img 001 red 0 blue 2 white 1 grey 1 yellow 1 r
  • python 中的 h2o 框架子集

    如何在 python 中对 h2o 框架进行子集化 如果 x 是一个 df 并且 Origin 是一个变量 那么在 pandas 中我们通常可以通过以下方式进行子集化 x x Origin AAF 但使用 h2o 框架会出现以下错误 H2O
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • 更改QLineEdit的ClearButton图标

    我想在Windows 10 1909 64位 上的Python 3 8和PyQt5 5 15 0 上更改我的QLineEdit的ClearButton图标 稍后我想在Linux上运行代码 我尝试应用此处找到的代码 如何在 QLineEdit
  • PIL.Image.open和tf.image.decode_jpeg返回值的区别

    我使用 PIL Image open 和 tf image decode jpeg 将图像文件解析为数组 但发现PIL Image open 中的像素值与tf image decode jpeg不一样 为什么会出现这种情况 Thanks 代
  • 为正则表达式编写解析器

    即使经过多年的编程 我很羞愧地说我从未真正完全掌握正则表达式 一般来说 当问题需要正则表达式时 我通常可以 在一堆引用语法之后 想出一个合适的正则表达式 但我发现自己越来越频繁地使用这种技术 所以 自学并理解正则表达式properly 我决
  • PyInstaller“ValueError:源代码字符串不能包含空字节”

    我得到了一个ValueError source code string cannot contain null bytes执行命令时pyinstaller main py在具有和不具有管理员权限的cmd中 Traceback most re
  • 仅允许正小数

    在我的 Django 模型中 我创建了一个如下所示的小数字段 price models DecimalField u Price decimal places 2 max digits 12 显然 价格为负或零是没有意义的 有没有办法将小数
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

    我正在使用 easyocr 来检测图像中的文本 该方法给出输出边界框 输入图像如下所示 Image 1 Image 2 使用下面的代码获得输出图像 But I want to draw a Single Bigger bounding bo
  • 描述符“join”需要“unicode”对象,但收到“str”

    代码改编自here http wiki geany org howtos convert camelcase from foo bar to Foo Bar def lower case underscore to camel case s

随机推荐

  • Java系列——封装、继承、多态初了解

    目录 一 前言 二 封装 1 什么是封装 2 封装的特点 3 封装的使用 三 继承 1 什么是继承 2 继承的特点 3 继承的优点 4 继承的使用 4 1 继承的格式 4 2 继承的演示 4 3 成员变量 4 4 成员方法 4 5 构造方法
  • Pyhton零售数据分析及产品关联分析

    一 项目背景 总结 项目背景 以购物篮分析为背景 分析某跨国棒球用品零售商的历史订单数据 为企业提供运营及销售策略 项目总结 一 本项目对企业历史订单数据进行以下角度的处理及分析 数据探索及清洗 对6w 订单数据进行探索及清洗处理 为数据构
  • 2022年最新前端面试题,持续更新

    js面试题 1 js数据类型 基本数据类型 Number String Boolean Null Undefined Symbol bigInt 引用数据类型 object Array Date Function RegExp 2 js变量
  • surf特征原理

    前言 也许我们使用过Uiautomator编写过自动化测试脚本 也许我们也使用过Monkey来测试过应用的稳定性 但在使用过程中总觉得有或多或小的问题 用Uiautomator写脚本 总觉得有时候控件没法识别 用Monkey来进行稳定性测试
  • Oracle SQL developer不显示dbms_output.put_line的输出内容

    1 调出dbms输出窗口 2 dbms选择对应的数据库连接 3 工作区SQL文件 定义一个触发器 create trigger newtmpdata 创建触发器newtmpdata 在tmp中添加新数据 after insert 插入操作之
  • yolo算法通俗易懂讲解

    参考 https blog csdn net briblue article details 103149407 depth 1 utm source distribute pc relevant none task utm source
  • .NET[C#]LINQ查询List集合中所有重复的元素如何实现?(转载)

    NET C LINQ查询List集合中所有重复的元素如何实现 转载 方案一 var query lst GroupBy x gt x Where g gt g Count gt 1 Select y gt y Key ToList 如果还需
  • C#,去除字符串指定的之字符,并去掉不可见的 “”一种方法。

    string str1 小王 心情 很 平 静 char chs1 new char 定义一个字符数组 存放上面字符串中不要的内容 和 string result1 str1 Split chs1 StringSplitOptions Re
  • 关于Adapter数据适配器

    适配器 什么是适配器 Android适配器是数据和视图之间的桥梁 以便于数据在View上显示 适配器就像显示器 把复杂的东西按人可以接受的方式来展现 Adapter数据适配器将各种数据以合适的形式绑定到控件上 像listview gridv
  • MyBatis框架——MyBatis执行SQL的两种方式(转载)

    本节主要介绍 MyBatis 执行 SQL 语句的两种方式和它们的区别 MyBatis 有两种执行 SQL 语句的方式 如下 通过 SqlSession 发送 SQL 通过 SqlSession 获取 Mapper 接口 通过 Mapper
  • ajax 无参请求,ajax无参请求学习

    ajax 点击 请求流程 test html代码流程 创建button按钮 为button绑定一个点击事件 函数 在函数内书写ajax代码 2 1 创建ajax对象 2 2 设置onreadystatechange属性 用来监听变化 如果有
  • 数据结构视频教程 -《数据结构视频教程 严蔚敏》

    整个视频打包下载地址 史上最全的数据结构视频教程系列分享之 数据结构视频教程 严蔚敏 转载请保留出处和链接 更多优秀资源请访问 我是码农 严蔚敏老师是清华大学计算机系教授 长期从事数据结构教学和教材建设 本教程是数据结构视频教程中的经典之作
  • Spring(十二):bean的加载——创建bean

    回顾 前面已经看了在加载Bean的时候 如何去解决循环依赖的问题 解决完循环依赖 就到创建Bean的步骤了 而创建bean的步骤是紧紧接着 创建Bean实例 Bean根据范围会分为几种 单例 原型 自定义范围 每种范围都会有自己不同的生命周
  • 【Altium designer】PCB 各层简介

    1 Signal Layer 信号层 主要用于放置元件和走线 Top Layer 顶层 Bottom Layer 底层 Mid Layer 中间信号层 2 Mechanical Layer 机械层 3 Keep Out Layer 禁止布线
  • Linux内核:内存管理——内存回收

    概述 当linux系统内存压力就大时 就会对系统的每个压力大的zone进程内存回收 内存回收主要是针对匿名页和文件页进行的 对于匿名页 内存回收过程中会筛选出一些不经常使用的匿名页 将它们写入到swap分区中 然后作为空闲页框释放到伙伴系统
  • c++学习之多态案例--电脑组装

    代码示例 include
  • Mysql事务隔离级别与锁机制

    文章目录 事务及其ACID属性 并发事务处理带来的问题 隔离级别 锁 表锁测试 行锁测试 仅限innodb 幻读测试 可重复读和java代码之间的问题 间隙锁 Gap Lock 和 临键锁 Next key Locks 意向锁 表级别的锁
  • linetime.css,时间线图绘制(time-line)

    效果 image png vue 单文件组件 v startTime substring 10 16 v startTime substring 5 10 v name v state v startTime export default
  • pandas将一列分割成多列

    示例数据 import pandas as pd from pandas import Series DataFrame consum pd read csv consum csv encoding ANSI consum 消费时间 要将
  • 学习pytorch: 深度学习入门建议

    0 简介 本文主要介绍了使用pytorch作为框架入门深度学习 其中第1节 深度学习入门 内容较多 建议边看第1节边实践第2节 Pytorch入门 中的内容 主要是2 1和2 2 1 深度学习入门 网上的资源非常多 这里重点推荐一个资源 斯