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

【笔记 Pytorch 08】深度学习模板 (未完)

文章目录

  • 一、声明
  • 二、工程结构
  • 三、文件内容
      • main.py
      • model.py
      • dataset.py
      • utils.py
  • 四、问题汇总

一、声明

非常感谢这些资料的作者:
【参考1】、【PyTorch速成教程 (by Sung Kim)】

二、工程结构

├── main.py:实现训练 (train) 、验证(validation)和测试(test)
│ ├── model.py:实现的模型
│ ├── dataset.py:加载的数据
│ ├── utils.py:常用功能

三、文件内容

main.py

from torch.utils.data import Dataset, DataLoader
from torch import from_numpy, tensor
from torch.autograd import Variable
import numpy as np
import model
import utils# load data
dataset = MyDataset()
train_loader = DataLoader(dataset=dataset, batch_size=32, shuffle=True, num_workers=2)# model
model=Model()# define loss and optimizer
criterion=torch.nn.BCELoss(size_average=True)
optimizer=torch.optim.SGD(model.parameters(),lr=0.1)# train
for epoch in range(2):for i, data in enumerate(train_loader, 0):# get the inputsinputs, labels = data# wrap them in Variableinputs, labels = Variable(inputs), Variable(labels)# Forward passy_pred=model(inputs)# Compute and print lossloss=criterion(y_pred,labels)accuracy= ultis.accuracy(y_pred,labels)print("[{:05d}/{:05d}] train_loss:{:.4f} accuracy: {:.4f}]".format(i,epoch,loss.data[0],accuracy))# updateoptimizer.zero_grad()	# zero gradientsloss.backward()			# perform a backward passoptimizer.step() 		# update weight or parameters

model.py

import torch
class Model(torch.nn.Module):def __init__(self):super(Model,self).__init__()self.l1=torch.nn.Linear(8,6)self.l2=torch.nn.Linear(6,4)self.l3=torch.nn.Linear(4,1)self.sigmoid=torch.nn.Sigmoid()# 数据流def forward(self,x):out1=self.sigmoid(self.l1(x))out2=self.sigmoid(self.l2(out1))y_pred=self.sigmoid(self.l3(out2))return y_pred

dataset.py

要点:
(1)必须重载 __getitem____len__
(2)

import torch
from torch.utils.data import Dataset, DataLoader
class MyDataset(Dataset):def __init__(self):  # Initialize your data, download, etc.xy = np.loadtxt('./data/diabetes.csv.gz', delimiter=',', dtype=np.float32)self.len = xy.shape[0]self.x_data = torch.from_numpy(xy[:, 0:-1])self.y_data = torch.from_numpy(xy[:, [-1]])def __getitem__(self, index):return self.x_data[index], self.y_data[index]def __len__(self):return self.len

utils.py

import numpy as np
import scipy.sparse as sp
import torch
import osdef encode_onehot(labels):classes = set(labels)classes_dict = {c: np.identity(len(classes))[i, :] for i, c inenumerate(classes)}labels_onehot = np.array(list(map(classes_dict.get, labels)),dtype=np.int32)return labels_onehotdef accuracy(output, labels):preds = output.max(1)[1].type_as(labels)correct = preds.eq(labels).double()correct = correct.sum()return correct / len(labels)def list_all_files(rootdir):_files = []#列出文件夹下所有的目录与文件list_file = os.listdir(rootdir)for i in range(0,len(list_file)):# 构造路径path = os.path.join(rootdir,list_file[i])# 判断路径是否是一个文件目录或者文件# 如果是文件目录,继续递归        if os.path.isdir(path):_files.extend(list_all_files(path))if os.path.isfile(path):_files.append(path)return _filesdef mkdir(path):# 去除首位空格path=path.strip()# 去除尾部 \ 符号path=path.rstrip("\\")# 判断路径是否存在# 存在     True# 不存在   FalseisExists=os.path.exists(path)# 判断结果if not isExists:# 如果不存在则创建目录# 创建目录操作函数os.makedirs(path) print(path+' create sucess')return Trueelse:# 如果目录存在则不创建,并提示目录已存在print(path+' path exist !')return False

四、问题汇总

:dataset.py中__getitem__返回的是一个元素,还是一个batch数据?

相关文章:

【笔记 Pytorch 08】深度学习模板 (未完)

文章目录 一、声明二、工程结构三、文件内容main.pymodel.pydataset.pyutils.py 四、问题汇总 一、声明 非常感谢这些资料的作者: 【参考1】、【PyTorch速成教程 (by Sung Kim)】 二、工程结构 ├── main.py:实现训练 (train) 、验证(validation)和…...

【如何学习Python自动化测试】—— Cookie 处理

前提 网络通信是当今社会最为普及和繁荣的技术之一,其承载了人们生活中瞬息万变的信息传递和交流。而作为网络通信的核心要素,网络协议、socket、cookie和session则是网络通信的灵魂。 一、网络协议 网络协议是计算机和网络设备之间相互通信的规则和标准…...

IOS+Appium+Python自动化全实战教程

由于公司的产品坐落于不同的平台,如ios、mac、Android、windows、web。因此每次有新需求的时候,开发结束后,留给测试的时间也不多。此外,一些新的功能实现,偶尔会影响其他的模块功能正常的使用。 网上的ios自动化方面的…...

华硕灵耀XPro(UX7602ZM)原装Win11系统恢复安装教程方法

华硕灵耀XPro(UX7602ZM)原装Win11系统恢复安装教程方法: 第一步:需要自备华硕6个底包工厂安装包(EDN.KIT.OFS.SWP.HDI.TLK)或者自己备份的iso/esd/wim等镜像恢复 支持系列: 灵耀系列原装系统 无畏系列原装系统 枪…...

SpringBoot整合Redis,redis连接池和RedisTemplate序列化

SpringBoot整合Redis 1、SpringBoot整合redis1.1 pom.xml1.2 application.yml1.3 配置类RedisConfig,实现RedisTemplate序列化1.4 代码测试 2、SpringBoot整合redis几个疑问?2.1、Redis 连接池讲解2.2、RedisTemplate和StringRedisTemplate 3、RedisTemp…...

学习课题:逐步构建开发播放器【QT5 + FFmpeg6 + SDL2】

目录 一、播放器开发(一):播放器组成大致结构与代码流程设计 二、播放器开发(二):了解FFmpeg与SDL常用对象和函数 三、播放器开发(三):FFmpeg与SDL环境配置 四、播放器开发(四):多线程解复用与解码模块实现 五、播放器开发(五…...

Linux 6.7全面改进x86 CPU微码加载方式

导读最近,社区在清理 Linux 上的 Intel/AMD x86 CPU 微代码加载方面做了大量的工作,这些工作现已合并到 Linux 6.7 中。 由于在启动时加载 CPU 微代码对于减少不断出现的新 CPU 安全漏洞以及有时解决功能问题非常重要,Thomas Gleixner 最近开…...

【Python】Fastapi swagger-ui.css 、swagger-ui-bundle.js 无法加载,docs无法加载,redocs无法使用

使用fastapi的时候,swagger-ui.css 、swagger-ui-bundle.js、redoc.standalone.js 有时候无法加载(国内环境原因或者是局域网屏蔽),此时就需要自己用魔法下载好对应文件,然后替换到fastapi里面去。 fastapi里面依靠这…...

算法-中等-链表-两数相加

记录一下算法题的学习11 两数相加 题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字…...

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用 1.概述 在学习51单片机过程中,选择了STC的12C2052AD型号单片机作为入门芯片。前几个课题实验使用默认的内部晶振烧录程序,运行都没有问题。 选择一个LED亮度渐变的课题做实验&…...

使用STM32+SPI Flash模拟U盘

试验目的:使用STM32F103C8T6 SPI Flash(WSQ16)实现模拟U盘的功能 SPI Flash读写说明: Step1 设置SPI1 用于读取SPI Flash; Step2:设置SPI Flash 的使能信号 Step3:使能USB通信 Step4&#xf…...

【自主探索】基于 frontier_exploration 的单个机器人自主探索建图

文章目录 一、概述1、功能2、要求 二、使用方法1、用于运行演示2、用于开发人员2.1. 探索无/地图数据2.2. 使用 /map 数据进行探索 三、提供的组件1、explore_client1.1. 调用的操作1.2. 订阅主题1.3. 发布主题 2、explore_server2.1. 提供的操作2.2. 调用的操作2.3. 调用的服务…...

模板初阶(1):函数模板,类模板

一、函数模板 1.1 概念 函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型产生函数的特定类型版本。 格式&#xff1a; template <typename T>或template <class T> template <class T>…...

AIGC: 关于ChatGPT中生成输出表格/表情/图片/图表这些非文本的方式

ChatGPT 不止是 文本输出 ChatGPT是一个文本模型, 它本身并不能直接去生成图片图表等内容在我们的工作当中&#xff0c;经常需要通过表格, 图表的方式去进行数据的处理和展示在这种情况下&#xff0c;GPT由于不支持去直接的生成图片和图表&#xff0c;我们还能够使用它的GPT帮…...

gen_arrow_contour_xld

area_center (SymbolRegions, Area, Row, Col) gen_arrow_contour_xld (Arrow, Row sin(rad(Orientation)) * 70, Col - cos(rad(Orientation)) * 70, Row - sin(rad(Orientation)) * 70, Col cos(rad(Orientation)) * 70, 25, 25) gray_range_rect&#xff1a;用一个矩形…...

智能时代的智能工具(gpt)国产化助手

目前gpt对代码以及其他领域都是可以支持&#xff0c;在国内有很多&#xff0c;常用的百度的 文心一言 &#xff0c;阿里的 通义千问 &#xff0c;还有&#xff08;“豆包”&#xff0c;“”讯飞星火“”&#xff09;等&#xff0c;除了写代码可以外&#xff0c;也可以很好的支持…...

量子计算 | 解密著名量子算法Shor算法和Grover算法

专栏集锦&#xff0c;大佬们可以收藏以备不时之需 Spring Cloud实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏&#xff1a;https:/…...

缓存组件状态,提升用户体验:探索 keep-alive 的神奇世界

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

万字长文 - Python 日志记录器logging 百科全书 - 高级配置之 日志文件配置

万字长文 - Python 日志记录器logging 百科全书 - 高级配置之 日志文件配置 前言 在 Python 的logging模块中&#xff0c;它不仅提供了基础的日志功能&#xff0c;还拥有一系列高级配置选项来满足复杂应用的日志管理需求。 说到logging 模块的高级配置&#xff0c;必须提及日…...

​LeetCode解法汇总1410. HTML 实体解析器

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 「HTML 实…...

热搜第7!《灵魂摆渡》电影竟全AI生成,影视圈要变天了?

近日&#xff0c;一条关于经典国产网剧《灵魂摆渡》的消息悄然爬上微博热搜第7的位置&#xff0c;话题标签#灵魂摆渡电影全AI生成#”瞬间引爆了舆论场。对于许多资深剧迷而言&#xff0c;《灵魂摆渡》不仅是一部剧集&#xff0c;更是一段关于灵异、温情与人生哲理的青春记忆。然…...

告别烦人弹窗!手把手教你用IDA Pro定位并修复IDM 6.40.11.2的“文件损坏”提示

逆向工程实战&#xff1a;深度解析IDM弹窗机制与二进制补丁制作 在数字工具的使用过程中&#xff0c;突如其来的弹窗警告往往成为用户体验的"阿喀琉斯之踵"。以Internet Download Manager&#xff08;IDM&#xff09;为例&#xff0c;其6.40.11.2版本中反复出现的&qu…...

从Kubernetes到Docker:看云原生技术如何成功‘跨越鸿沟’(给技术布道者的实战指南)

云原生技术布道实战&#xff1a;如何复制Kubernetes的成功跨越路径 当Docker在2013年横空出世时&#xff0c;开发者们突然发现容器技术不再只是谷歌等科技巨头的专利。短短几年后&#xff0c;Kubernetes从Google内部项目成长为云原生计算的基石。这两个标志性技术的成功绝非偶然…...

西门子PLC工业通信的技术挑战与s7netplus解决方案

西门子PLC工业通信的技术挑战与s7netplus解决方案 【免费下载链接】s7netplus S7.NET -- A .NET library to connect to Siemens Step7 devices 项目地址: https://gitcode.com/gh_mirrors/s7/s7netplus 在工业自动化领域&#xff0c;西门子S7系列PLC作为主流控制设备&a…...

快速上手OpenVINO AI音频插件:从安装到实战

快速上手OpenVINO AI音频插件&#xff1a;从安装到实战 【免费下载链接】openvino-plugins-ai-audacity A set of AI-enabled effects, generators, and analyzers for Audacity. 项目地址: https://gitcode.com/gh_mirrors/op/openvino-plugins-ai-audacity OpenVINO™…...

仅剩3%团队真正启用镜像签名!深度拆解Docker Content Trust弃用后,Cosign替代方案的5层可信验证架构

第一章&#xff1a;Docker镜像签名的现状与信任危机在容器化生产环境中&#xff0c;Docker镜像已成为软件分发的事实标准。然而&#xff0c;镜像来源不可信、中间人篡改、供应链投毒等事件频发&#xff0c;暴露出签名机制在实际落地中的严重断层。尽管Docker Content Trust&…...

BetterNCM-Installer:如何一键解锁网易云音乐PC版的完整插件生态

BetterNCM-Installer&#xff1a;如何一键解锁网易云音乐PC版的完整插件生态 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 厌倦了网易云音乐PC版功能单一&#xff0c;想要体验更丰富…...

2026届最火的十大降重复率平台推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 伴随人工智能技术凭借迅猛之势飞速发展&#xff0c;AI工具于毕业论文写作领域里的应用展现出…...

手把手教你排查ROS Noetic下的TF_REPEATED_DATA警告:从roswtf工具到源码定位

深度解析ROS Noetic中TF_REPEATED_DATA警告的排查与修复 当你在Ubuntu 20.04上运行ROS Noetic时&#xff0c;突然发现终端不断刷出"TF_REPEATED_DATA ignoring data with redundant timestamp for frame"的警告信息&#xff0c;同时Rviz中的机器人模型出现异常抖动—…...

FFmpeg在直播带货中的实战:如何用一条命令实现多平台推流与画质优化

FFmpeg在直播带货中的实战&#xff1a;如何用一条命令实现多平台推流与画质优化 直播带货的火爆让实时视频处理技术成为电商运营的刚需。想象一下&#xff0c;当你需要同时向抖音、B站、视频号三个平台推送高清直播流时&#xff0c;传统方案可能需要三台编码设备或复杂的推流软…...