当前位置: 首页 > news >正文

pytorch学习笔记7

在这里插入图片描述
getitem在进行索引取值的时候自动调用,也是一个魔法方法,就像列表索引取值那样,一个意思

import torchvision
from torch.utils.data import DataLoaderdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform)
test_loader=DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)#numwork,采取多少进程
# img,target=test_data[0]
# print(img.shape)
# print(target)
for i in test_loader:img,target=iprint(img.shape)print(target)

在这里插入图片描述
如图所示的输出的选中部分中:
分别为4张图片,三通道,32*32
tensor([3, 2, 3, 2])
这是每张图片的target

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform)
test_loader=DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)#numwork,采取多少进程
# img,target=test_data[0]
# print(img.shape)
# print(target)
writer=SummaryWriter('dataloader')
step=0
for i in test_loader:img,target=i# print(img.shape)# print(target)writer.add_images('test_loader_data',img,step)step=step+1writer.close()

在这里插入图片描述
debug设置断点可以查看当前断点的信息

add_images
功能:添加多张图像到TensorBoard。
用法:用于将多张图片添加到日志文件中,通常用于展示一批次的图像。
这里用的是dataloader,每批次4张图片因此用add_images而不是add_image

Epoch
定义:一个epoch表示使用整个训练数据集对模型进行一次完整的训练过程。换句话说,当所有的训练数据都被用来更新模型参数一次时,就完成了一个epoch。
用途:在训练神经网络时,单次遍历所有训练数据通常不足以使模型收敛。需要多次遍历数据集(即多个epoch)以逐渐优化模型参数,从而提高模型的性能。

Batch
定义:batch(也称为mini-batch)是指在一次参数更新过程中所使用的训练样本的一个子集。训练数据通常会被分成若干个batch,每个batch包含一定数量的样本。

用途:使用batch可以平衡训练速度和模型参数更新的稳定性。对于大型数据集,一次性使用全部数据进行参数更新可能会非常耗时且内存占用过高,而使用小的batch可以加速计算,同时还能使梯度估计更稳定。

两者的关系
在训练过程中,一个epoch通常会包含多个batch。每个batch会更新模型的参数一次,因此一个epoch会有多次参数更新。具体的关系可以用以下公式描述

import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform)
test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=False,num_workers=0,drop_last=False)#numwork,采取多少进程
img,target=test_data[0]
print(img.shape)
print(target)
writer=SummaryWriter('dataloader')for epoch in range(2):step=0for i in test_loader:img,target=i# print(img.shape)# print(target)writer.add_images('epoch{}'.format(epoch),img,step)step=step+1writer.close()

外层循环是epoch循环,共进行2个epoch。
内层循环是DataLoader的迭代器,它会遍历整个数据集。每次迭代会返回一个批量的数据,其中data是一个包含img和target的元组。
在每个批量数据上,使用SummaryWriter的add_images方法将图片数据img写入TensorBoard。这里将每个epoch的图片放在名为epoch{}的文件夹中,并使用step作为其次级目录,以便于在TensorBoard中查看不同批次的图片

相关文章:

pytorch学习笔记7

getitem在进行索引取值的时候自动调用,也是一个魔法方法,就像列表索引取值那样,一个意思 import torchvision from torch.utils.data import DataLoaderdata_transformtorchvision.transforms.Compose([torchvision.transforms.ToTensor()] ) test_datatorchvision.datasets.C…...

LeetCode热题3.无重复的最长字串

前言: 经过前序的一系列数据结构和算法学习后,开始用leetCode热题练练手。 . - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为…...

Python武器库开发-武器库篇之SQL注入扫描器(五十九)

Python武器库开发-武器库篇之SQL注入扫描器(五十九) SQL注入漏洞简介以及危害 SQL注入漏洞是一种常见的Web应用程序漏洞,攻击者可以利用该漏洞在应用程序的数据库中执行恶意的SQL查询或指令。这可能导致数据泄露、数据损坏、应用程序崩溃或未经授权的访问。 SQL注…...

图说设计模式:单例模式

更多C学习笔记,关注 wx公众号:cpp读书笔记 5. 单例模式 单例模式 模式动机模式定义模式结构时序图代码分析模式分析实例优点缺点适用环境模式应用模式扩展总结 5.1. 模式动机 对于系统中的某些类来说,只有一个实例很重要,例如…...

探索设计模式——单例模式详解

前言:设计模式的作用主要是为了——利用设计方式的重用来自动地提高代码的重新利用、提高代码的灵活性、节省时间, 提高开发效率、低耦合,封装特性显著, 接口预留有利于扩展。 设计模式的种类有很多种,本篇内容主要讲解…...

建筑垃圾/城市固废倾倒转移乱象:EasyCVR+AI智能视频监控方案助力城市环保监管

近日有新闻记者报道,中央生态环境保护督察组在上海、浙江、江西、湖北、湖南、重庆、云南7省市督察发现,一些地方建筑垃圾处置工作存在明显短板,乱堆乱倒问题时有发生,比如,江西湘东区在杨家田地块违规设置弃土场&…...

C的I/O操作

目录 引言 一、文件与目录操作 1. 打开与关闭文件 2. 文件读写操作 3. 文件定位与错误处理 二、字符流与字节流 1. 字符流处理 2. 字节流处理 三、序列化与反序列化 1. 序列化 2. 反序列化 四、新的I/O(NIO) 表格总结 文件与目录操作 字符…...

Android Audio实战——声道信息回调(五)

在前面的 AudioTrack 构造中,我们传入了音频的声道信息,这一节我们就来详细介绍一下声道的配置信息。 一、声道介绍 音频中的声道配置从单声道到双声道(立体声)、再到多声道系统(如5.1和7.1),代表了声音录制和回放技术的发展,旨在提供越来越丰富和沉浸式的听觉体验。 …...

ThreeJS给模型添加介绍文字(贴在模型上 不会一直面向我们)

使用到 FontLoader跟 TextGeometry 引包 import {TextGeometry} from "three/examples/jsm/geometries/TextGeometry"; import {FontLoader} from "three/examples/jsm/loaders/FontLoader";使用 // 创建字体加载器并加载字体 const fontLoader new Fo…...

[Qt] Qt Creator 以及 Qt 在线安装教程

一、Qt Creator 下载及安装 1、从以下镜像源下载安装包常规安装即可 Qt Creator 也可以在第二步Qt 在线安装时一次性勾选安装,见后文 Qt Creator 中科大源下载地址 二、Qt 在线安装 1、根据所在平台选择对应的安装器下载 Qt 在线安装器下载 2、可能的安装报错…...

【大分享05】动态容差归档,打通不动产登记管理“最后一公里”

关注我们 - 数字罗塞塔计划 - 本篇是参加由电子文件管理推进联盟联合数字罗塞塔计划发起的“大分享”活动投稿文章,来自上海涵妍档案信息技术有限责任公司,作者:陈雪。 一、政策背景 在“互联网政务服务”的浪潮下,各级政府机构…...

嵌入式模拟电路面试题大全及参考答案(持续更新)

目录 理想运算放大器的两个基本特性 共模抑制比(CMRR)及其重要性 负反馈在放大器中的作用 差分放大电路的工作原理 使用运算放大器构建非反相放大器 电源抑制比(PSRR) 带宽(BW)在放大器中的含义 计算RC低通滤波器的截止频率 基本的积分电路及其时间常数 增益-带…...

【C语言】解决C语言报错:Uninitialized Variable

文章目录 简介什么是Uninitialized VariableUninitialized Variable的常见原因如何检测和调试Uninitialized Variable解决Uninitialized Variable的最佳实践详细实例解析示例1:局部变量未初始化示例2:数组未初始化示例3:指针未初始化示例4&am…...

RabbitMQ实践——交换器(Exchange)绑定交换器

在《RabbitMQ实践——交换器(Exchange)和绑定(Banding)》一文中,我们实验了各种交换器。我们可以把交换器看成消息发布的入口,而消息路由规则则是由“绑定关系”(Banding)来定义&…...

使用 Vue 官方脚手架初始化 Vue3 项目

Vite 官网:https://cn.vitejs.dev/ Vue 官网:https://vuejs.org/ Vue 官方文档:https://cn.vuejs.org/guide/introduction.html Element Plus 官网:https://element-plus.org/ Tailwind CSS 官网:https://tailwindcss.…...

C语言中的宏定义(#define)和函数调用的区别

C语言中的宏定义(#define)和函数调用在概念、工作方式以及它们对代码的影响上有显著的区别。以下是它们之间的主要差异: 宏定义(#define) 工作方式:宏定义是在预处理阶段进行的文本替换。预处理器会在编译…...

196. 删除重复的电子邮箱

196. 删除重复的电子邮箱 题目链接:196. 删除重复的电子邮箱 代码如下: # Write your MySQL query statement below delete from Person as p where p.id not in(select e.id from (select min(id) as idfrom Person group by email ) as e )...

Android 大话binder通信 (上)

戳蓝字“牛晓伟”关注我哦! 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章 本文摘要 用故事的方式把binder通信的整个过程都描述出来,binder通信都经历了哪些节点,在这些节点上的数据有哪些变化,同时还对binder通…...

DevOps学习回顾01-技能发展路线-岗位能力-体系认知

事为先,人为重–事在人为 参考来源: 极客时间专栏:DevOps实战笔记,作者:石雪峰 课程链接:https://time.geekbang.org/column/intro/235 时代的典型特征 VUCA VUCA 是指易变性(Volatility&…...

【MySQL】复合查询和内外连接

文章目录 MySQL复合查询和内外连接1. 复合查询1.1 多表查询1.2 自连接1.3 子查询单行子查询多行子查询多列子查询from中使用子查询合并查询 2. 内外连接1. INNER JOIN2. LEFT JOIN3. RIGHT JOIN4. FULL JOIN5. CROSS JOIN MySQL复合查询和内外连接 1. 复合查询 1.1 多表查询 …...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...