Pytorch入门学习笔记(一)

PyTorch 入门之官方文档学习笔记(一) 本文介绍了PyTorch深度学习框架的核心概念与基础操作。主要内容包括:1)张量(Tensor)的创建、属性及操作,展示其与NumPy的互操作性;2)自动微分机制autograd的工作原理,包括计算图构建和梯度计算;3)神经网络构建流程,涵盖网络定义、损失函数、反向传播和参数更新。文章通过代码示例详细演示了PyTorch在模型训练中的关键步骤,如优化器使用、参数冻结等技巧,同时解释了相关数学原理和实现细节。作为PyTorch官方文档的中文学习笔记,本文适合作为入门参考材料。 阅读详情

本文结合小土堆的教学视频PyTorch深度学习快速入门教程进行学习

一、加载数据集

1.  加载数据集所需要的两个类 —— Dataset & DataLoader

Dataset:是用来对数据打包的抽象类,提供一种方式来获取数据及其label(进行数据分类和编号)。能够实现如何获取数据集中每一个数据及其label,并且告诉我们总共数据集中有多少个数据。

DataLoader:是用来处理模型输入数据的工具类,为网络提供不同的数据形式。

2. Dataset类的重写及加载数据集

 具体代码实现如下

from torch.utils.data import Dataset
from PIL import Image
import os

class MyData(Dataset):

    # 重写__init__函数
    def __init__(self,root_dir,label_dir):
        self.root_dir=root_dir    # 数据集路径
        self.label_dir=label_dir  # 图片文件夹名
        self.path=os.path.join(self.root_dir,self.label_dir)    # 形成图片文件夹的完整路径
        self.img_path=os.listdir(self.path)    # 将传入路径下的所有项目名称加入列表中

    # 重写__getitem__函数
    def __getitem__(self, index):
        img_name=self.img_path[index]    # 取出列表中编号为index的图片项目名称
        img_item_path=os.path.join(self.root_dir,self.label_dir,img_name)    # 形成图片的完整路径
        img=Image.open(img_item_path)    # 打开图片
        label=self.label_dir
        return img,label                # 返回图片和标签

    # 重写__len__函数
    def __len__(self):
        return len(self.img_path)    # 返回列表长度,即包含多少张图片

root_dir=r"D:\train" # 数据集路径
a_label_dir="images" # 图片文件夹名
a_dataset=MyData(root_dir,a_label_dir)    # 加载数据集

二、TensorBoard的使用

1. 方法add_scalar的使用(绘制图表)

具体代码实现如下

from torch.utils.tensorboard import SummaryWriter

writer=SummaryWriter("logs") # 创建实例,并存储到传入的路径下

# 绘制图表,传入的第一个参数是标题,第二个参数是y轴,第三个参数是x轴
for i in range(100):
    writer.add_scalar("y=2x",2*i,i) 

writer.close()    # 关闭文件

将程序运行后,在终端输入  tensorboard --logdir=logs --port=6007  ,更改端口号是为了避免端口和别人相同而导致堵塞。

当运行后,出现了  ModuleNotFoundError: No module named 'tensorboard'  的报错,说明我们没有安装tensorboard模块,因此需要在终端输入命令  pip install tensorboard  进行模块安装。

安装成功后再次运行,却出现了  TypeError: MessageToJson() got an unexpected keyword argument 'including_default_value_fields'  的报错,经查询发现,是目前安装的Tensorboard版本过高所导致的错误,降低版本即可,故需要在终端输入命令  pip install tensorboard==2.12.0  降低版本。再次运行即可成功,结果显示如下

2. 方法add_image的使用(绘制图像)

具体代码实现如下

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

writer=SummaryWriter("logs") # 创建实例,并存储到传入的路径下
image_path=r"D:\pytorch_train\train\images\20240104_183616609.jpg"  # 传入图片路径
image_PIL=Image.open(image_path)    # 打开文件
img_array=np.array(image_PIL)       # 获取numpy型图片数据

#绘制图片,传入的第一个参数是标题,第二个参数是图片数据,第三个参数是步长
writer.add_image("test",img_array,1,dataformats="HWC")
# 使用numpy型图片数据需要加最后一个参数,修改图片格式

writer.close()

将程序运行后,在终端输入  tensorboard --logdir=logs --port=6007  ,结果显示如下

Pytorch学习笔记(一)——pytorch环境搭建配置 目录前言与前期准备一、Anaconda的安装1.1.Anaconda介绍1.2.Anaconda的下载安装1.3.Anaconda的配置下载源1.4.Anaconda的如何切换不同版本的pytorch(以cpu和gpu版本之间切换为例)二、Pytorch的安装2.1.Pytorch介绍2.2.Anaconda的下在线安装Pytorch2.3.Anaconda的下在线、离线混合安装Pytorch三、CUDA3.1.CUDA介绍3.2.CUDA版本的选择3.3.CUDA的安装3.4.CUDA版本安装错误怎么卸载 阅读详情

相关推荐

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 808

解决TypeError: MessageToJson() got an unexpected keyword argument ‘including_default_value_fields‘

错误消息指出 MessageToJson()函数接收到了一个意外的关键字参数 'including_default_value_fields'。protobuf库的较新版本在 MessageToJson()函数中引入了 'including_default_value_fields' 参数,而使用的TensorBoard版本还不支持该参数。将 protobuf 库降级到一个较旧的版本(例如 3.19.0)可能会解决这个问题。最新版本的 TensorBoard 可能已经修复了这个兼容性问题。

qq_43506262的博客 4998

ADS 2023 实战:手把手教你仿真一个中心频率 2.4GHz 的带通滤波器(附工程文件)

本文详细介绍了使用ADS 2023软件设计和仿真中心频率2.4GHz带通滤波器的全流程,包括工程准备、指标定义、原理图设计、仿真优化及实际电路实现。通过切比雪夫滤波器拓扑和参数优化,实现高性能的带通滤波器设计,适用于无线通信系统。附有工程文件和常见问题解决方案,助力工程师快速掌握射频滤波器设计技巧。

weixin_30790841的博客 481

成功解决TypeError: MessageToJson() got an unexpected keyword argument ‘including_default_value_fields‘

但是用我的镜像源 (

weixin_67251822的博客 1255

基于51单片机的多功能计算器全套设计

当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号

runweipa的博客 1742

关于使用CMT2300A FIFO缓存区间设置为64Byte的问题

帮助你解决在使用CMT2300A 时遇到的各种问题,若有需要,请及时与我交流

teleger的博客 1428

pytorch入门学习笔记①

pytorch入门学习 不同版本的模块导入语句 1. summary writer from tensorboardX import SummaryWriter from torch.utils.tensorboard import SummaryWriter 2. 日志读写功能 目前碰到过的使用日志的有: (1)使用python第三方库logging (2) 使用tensorflow中的方法 第一种情况,参考写法: import logging loss_log = log_creater(file

star_xxzeng的博客 350

【论文复现】HiDDeN:Hiding Data With Deep Networks

(标签)是 float 类型,但代码中传入的是 long 类型(整数标签)。函数参数解析方式变化,导致无法正确保存生成的图像结果。这是因为新版torchvision的。使用预训练模型进行隐写和提取测试。HiDDeN支持多种噪声层组合。打印变量的类型,分别是。

qq_69146676的博客 971

Pytorch学习笔记之入门实战从Numpy到pytorch(一)

Pytorch学习笔记之入门实战(一) 本文从用Numpy实现两层神经网络到一步步由pytorch实现。 目的:只有体验过没有深度学习框架的难处,才能明白它的好!!! 运行环境说明,pytorch1.4.0 from __future__ import print_function import torch torch.__version__ '1.4.0' 开始了 1.热身: 用nump...

饲养员的小熊猫博客 850

具身机器人内部PCB板分类与系统架构详解

本文系统梳理了机器人内部PCB板的功能架构,将其划分为5大模块:1)核心主板(含主控计算机板、实时控制板等);2)感知类PCB(视觉、听觉、触觉等);3)运动控制类PCB(伺服驱动、编码器等);4)电源与安全类PCB(电源管理、BMS等);5)通信类PCB(EtherCAT背板等)。通过人体器官类比(如大脑对应主控板、小脑对应实时控制板),详解了各模块的芯片选型、位置分布及协同关系,并给出信号/能量/指令的三流闭环示意图和典型系统参数(48V供电、1ms通信周期)。整体呈现了机器人"神经系统&qu

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 321

Linux Namespace隔离实战:dd/mkfs/mount/unshare构建终极沙箱

内存占用 | 512MB+ | **<10MB** | 50倍节省 || 启动时间 | 15-45秒 | **0.1-0.5秒** | 100倍加速 || 磁盘空间 | GB级 | **MB级** | 显著减少 || 系统调用性能 | 有损耗 | **原生速度** | 零损耗 |

Loving_enjoy的博客 398

PyTorch 入门学习笔记(基础篇)一

本文介绍了PyTorch深度学习框架的基础知识,包括其核心特性(动态计算图、自动微分、GPU加速)、神经网络训练流程(数据加载、网络定义、损失函数、优化器)以及核心数据结构张量的操作。重点讲解了数据加载模块Dataset和DataLoader的使用方法,以及张量的创建、维度变换、算术运算等基本操作。通过简洁的代码示例和概念说明,帮助初学者快速掌握PyTorch的基本使用方法,为后续深度学习模型开发奠定基础。

Kayleigh520的博客 1043

CE电流法测试中的dBμV负值解析

传导发射(CE)电流法测试中出现的dBμV负值现象表明被测设备干扰电平低于1μV参考基准。这源于对数计算特性(小于1μV的电压转换后为负值)、设备优良的EMC设计(如滤波效果显著)及测试环境的影响(LISN隔离、屏蔽室低噪声)。负值虽不代表实际负电压,但反映干扰水平优于标准限值,为系统集成预留电磁裕度。工程应用中需结合设备灵敏度、环境背景噪声等因素综合分析,避免误判,这类数据可用于评估EMI设计冗余度。

硬核科技 298

【pytorch学习笔记】(一)pytorch入门

pytorch入门

qq_41693168的博客 465

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

PyTorch学习笔记3—PyTorch深度学习入门(一)—基本方法

PyTorch学习笔记3—PyTorch深度学习入门

北街末雨Yyg 630

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PyTorch学习笔记 (一)——入门篇

一、Tensor入门 inplace method: y.add_ (x) equals y = y.add(x) tensor和numpy类型可以快速转换,是共享内存,几乎不消耗时间。但应注意值改变问题。 使用GPU加速 Tensor的.cuda方法可以将其转化为GPU的Tensor 可以发现GPU比CPU快了将近十倍 二、Autograd:自动微分 autograd.Vari...

qq_41033814的博客 337

Pytorch学习笔记(一)-——《深度学习入门之pytorch》

pytorch链接 http://pytorch123.com/ https://pytorch-cn.readthedocs.io/zh/latest/ 目录 1.tensor 2.Variable (变量) 3.nn.Module 4.模型的保存和加载 5.一个回归例子 1.tensor Tensor是一个多维矩阵 PyTorch的Tensor可以和numpy...

越努力,越幸运 400

【PyTorch深度学习入门教程-来自B站-小土堆】学习笔记整理(一)

Anaconda相当于一个项目虚拟环境包,里面可以配置多个conda环境,帮助我们去创建不同的虚拟环境,每个虚拟环境都可以互不干扰,减少我们的环境配置问题。输出的前后都带有双下划线__,这是一种规范,说明这个变量不容许篡改,即它不再是一个分隔区,而是一个确确实实的函数(相当于工具,可以用help()函数)安装Anaconda后自动安装,默认在base环境中,如需在conda环境中使用,需要进行配置,可选择在conda虚拟环境中安装Jupyter。Dataset:获取其中的数据和对应的label,以及长度。

qq_30639123的博客 1926

PyTorch学习笔记(一) ---- 入门

PyTorch入门笔记

不忘初心~ 688

学习笔记——pytorch1.9.0官方文档快速入门(一)

目录参考笔记链接Tensor介绍初始化张量的方法数据直接转换numpy数组转换其他张量转换使用随机值或常量值张量属性张量操作索引和切片拼接算术运算单元素张量In-place操作tensor与numpytensor转换为numpy arraynumpy array转换为tensor 参考 官方文档——张量Tensor 运行环境:google colab 笔记链接 学习笔记——pytorch1.9.0官方文档快速入门(一) 学习笔记——pytorch1.9.0官方文档快速入门(二) 学习笔记——pytorch

面包猎人 2017

Pytorch入门教程学习笔记(一)数据操作和自动梯度

目录1.1 创建一个Tensor1.2 Tensor操作索引改变形状函数:线性代数Pytorch广播机制1.4运算的内存开销1.5 Tensor与NumpyTensor----->NumpyNumpy----》Tensor1.6 Tensor在GPU上的使用1.7 自动求梯度1.7.1 概念1.7.2 Tensor1.7.3 梯度中断梯度追踪 说明:本博客是对如何使用pytorch用于深度学习 学习过程的记录和总结。 学习教程为:《动手学深度学习》和https://tangshusen.me/Div

Younguys 480

pytorch学习笔记(一)-- 《深度学习入门》红色石头

文章目录深度学习基础-红色石头待学习一、python基础知识已学习:二、PyTorch1.安装配置环境2.基础知识三、神经网络基础知识感知机逻辑回归模型 深度学习基础-红色石头 待学习 Anaconda和jupyter notebook plt.legend() 一、python基础知识 已学习: 基础知识 Numpy矩阵运算 Matplotlib绘图 列表: 同一列表可以使不同数据类型 索引-1代表倒数第一个元素 a[0:3]包含a[0]、a[1]、a[2],冒号右边是结束索引,不包含在切片内 .

weixin_43752486的博客 521

小土堆pytorch深度学习快速入门教程学习笔记(一)

因此,我的CUDA版本为 11.6,所以最高只能安装该版本的 PyTorch,比 11.6 低的也可以。8.pytorch环境中安装Jupyter Notebook。Python控制台运行代码,判断是否导入torch。后可以看到下图的torch,成功!9.PyCharm创建项目。页面搜CUDA 9.2。

weixin_53885721的博客 197

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记并附练习代码 ipynb文件)

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记 文末附练习代码 ipynb文件)

几度热忱的博客 3万+

pytorch基础入门教程/一小时学会pytorch

Pytorch一小时教程 pytorch是什么 它是一个基于python的科学计算库,致力于为两类用户提供服务: 一些想要找到Numpy搭建神经网络替代品的用户; 寻找一个可提供极强的可拓展性和运行速度的深度学习研究平台; 让我们开始干活吧! 1. 张量的概念和生成     张量和Numpy中ndarrays的概念很相似,有了这个作为基础,张量也可以被运行在GPU上来加速计算,下面介绍如何创...

weixin_41070748的博客 8万+

PyTorch 入门学习笔记

PyTorch 简介、安装、语法、基本概念等。

Cappuccino0001的博客 2421
下一篇: Pytorch入门学习笔记(二)
tryflyhigh
博客等级 码龄3年 136粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值