pytorch-13_1 深度学习之数据准备

1、手动实现训练集和测试集的切分

1. data_split()函数

  接下来我们开始实践模型评估过程,首先是对训练集和测试集的划分,我们尝试创建一个切分训练集和测试集的函数。

def data_split(features, labels, rate=0.7):"""训练集和测试集切分函数:param features: 输入的特征张量:param labels:输入的标签张量:param rate:训练集占所有数据的比例:return Xtrain, Xtest, ytrain, ytest:返回特征张量的训练集、测试集,以及标签张量的训练集、测试集 """num_examples = len(features)                              # 总数据量indices = list(range(num_examples))                       # 数据集行索引random.shuffle(indices)                                   # 乱序调整num_train = int(num_examples * rate)                      # 训练集数量 indices_train = torch.tensor(indices[: num_train])        # 在已经乱序的的indices中挑出前num_train数量的行索引值indices_test = torch.tensor(indices[num_train: ])         Xtrain = features[indices_train]                          # 训练集特征ytrain = labels[indices_train]                            # 训练集标签Xtest = features[indices_test]                            # 测试集特征ytest = labels[indices_test]                              # 测试集标签return Xtrain, Xtest, ytrain, ytest
  • 测试函数性能
features = torch.arange(10)                # 创建特征0-9
features
labels = torch.arange(1, 11)             # 创建标签1-10,保持和特征+1的关系
labels
data_split(features, labels)
  • 实验结果:
#f
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#l
tensor([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
#fs
(tensor([2, 6, 3, 0, 7, 5, 9]),
tensor([1, 8, 4]),
#ls
tensor([ 3,  7,  4,  1,  8,  6, 10]),
tensor([2, 9, 5]))

2. 实践练习

尝试带入训练集进行建模,利用测试集评估模型建模效果

# 设置随机数种子
torch.manual_seed(420)   # 生成回归类数据集
features, labels = tensorGenReg()# 切分训练集和测试集
Xtrain, Xtest, ytrain, ytest = data_split(features, labels)# 初始化核心参数
batch_size = 10                                # 小批的数量
lr = 0.03                                      # 学习率
num_epochs = 5                                 # 训练过程遍历几次数据
w = torch.zeros(3, 1, requires_grad = True)    # 随机设置初始权重# 2、模型构建
def linreg(X,w): return torch.mm(X, w)# 3、损失函数 mse
def MSE_loss(yhat, y):total = y.numel()sse = torch.sum((yhat.reshape(-1, 1) - y.reshape(-1, 1)) ** 2) return sse / total# 4、优化算法
def sgd(params, lr):params.data -= lr * params.grad         # (参数-学习率lr * 梯度)params.grad.zero_()# 5、训练模型
# 参与训练的模型方程
net = linreg                                   # 使用回归方程
loss = MSE_loss                                # 均方误差的一半作为损失函数# 模型训练过程
for epoch in range(num_epochs):for X, y in data_iter(batch_siz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜索二维矩阵 - LeetCode 热题 64

大家好!我是曾续缘🧡 今天是《LeetCode 热题 100》系列 发车第 64 天 二分查找第 2 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增…

六西格玛绿带培训:解锁质量工程师的职场新篇章

在质量管理这条道路上,我们或许都曾有过这样的疑问:为何付出了同样的努力,却未能获得预期的回报?当我们看到身边的同行们逐渐步入高薪的行列,而自己却似乎陷入了职业的泥沼,这种对比无疑令人倍感焦虑。然而…

了解等保测评的中间件安全Tomcat,如何检查配置是否符合安全要求?

在等保测评中,Tomcat中间件的安全性是一个重要的评估内容。Tomcat是一个开源的应用服务器,广泛应用于Web应用程序的开发和部署。由于其易用性和灵活性,Tomcat成为了一个受欢迎的目标,被黑客攻击和滥用。因此,保证Tomca…

算法提高之信使

算法提高之信使 核心思想&#xff1a;单源最短路 因为数据范围很小 可以考虑floyd算法(三重循环) #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110,INF 0x3f3f3f3f;int d[N][N];int n,m;int main(){cin…

【STM32-MX_GPIO_Init分析】

MX_GPIO_Init分析源码如下&#xff1a; __HAL_RCC_GPIOE_CLK_ENABLE源码如下&#xff1a; #define RCC ((RCC_TypeDef *) RCC_BASE) #define RCC_BASE (AHB1PERIPH_BASE 0x3800UL) #define AHB1PERIPH_BASE (PERIPH_BASE 0x00020000U…

Android Studio kotlin 转 Java

一. 随笔记录 java代码可以转化成kotlin代码&#xff0c;当然 Kotlin 反过来也可以转java 在Android Studio中 可以很方便的操作 AS 环境&#xff1a;Android Studio Iguana | 2023.2.1 二. 操作步骤 1.步骤 顶部Tools ----->Kotlin ------>Show Kotlin Bytecode 步…

springcloud+nocos从零开始

首先是去nacos官网下载最新的包&#xff1a;Nacos 快速开始 | Nacos win下启动命令&#xff1a;startup.cmd -m standalone 这样就可以访问你的nacos 了。 添加一个配置&#xff0c;记住你的 DataId,和Group名字。 创建一个pom项目&#xff0c;引入springCloud <?xml ve…

python中内存和磁盘交互样例

目录 一、内存交互 1.1 变量与数据结构 1.2 对象的创建和方法调用 1.3 操作内存中的数据 二、磁盘交互 2.1 文件读写 2.2 操作系统相关的文件操作 2.3 读写 JSON 文件 2.4 读写 CSV 文件 一、内存交互 内存交互&#xff1a;主要涉及变量、数据结构、对象的创建与操作…

05.13_111期_C++_红黑树

红黑树的性质 保证树中最长路径的长度不超过最短路径的长度的两倍 用什么方法保证上面这一点&#xff1f;将树中的结点视为是有颜色的 采用如下的规则&#xff1a; rule1: 树中的结点不是红色就是黑色 rule2: 树的根节点是黑色的 rule3: 如果一个结点是红色…

遇见问题-mysql8.0.28 this is incompatible with sql_mode=only_full_group_by

1.错误分析以及原因 1.1.sql_mode sql_mode 是数据库规范校验规则&#xff0c;比如这里的sql_modeonly_full_group_by 就是一个校验规则&#xff0c;会规定分组查询结果集不能有GROUP BY中没有出现的列。 1.2.问题原因 mysql 5.7.5 版本及以上版本会出现&#xff0c;mysql …

邦注科技 电解式超声波清洗机的原理介绍

电解式超声波去除模具表面油污锈迹的原理结合了电解和超声波技术的优势。 首先&#xff0c;电解作用是通过在特定的电解槽中&#xff0c;将模具作为阴极&#xff08;放入清洗框即可&#xff09;&#xff0c;并将有制式电极棒作为阳极。在电解过程中&#xff0c;电流如同魔法师…

Cache基本原理--以TC3xx为例(1)

目录 1.为什么要使用Cache 2.Memory与Cache如何映射 2.1 地址映射概设 3.小结 为什么要使用Cache&#xff1f;为什么在多核工程里要谨慎使用DCache&#xff1f;Cache里的数据、指令是如何与Memory映射&#xff1f; 灵魂三连后&#xff0c;软件工程师应该都会有模糊的回答&…

【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近项目中需要用到大疆无人机遥控器对程序中无人机进行控制,遥控器是下图这一款: 博主发…

微信小程序之九宫格抽奖

1.实现效果 2. 实现步骤 话不多说&#xff0c;直接上代码 /**index.wxml*/ <view class"table-list flex fcc fwrap"><block wx:for"{{tableList}}" wx:key"id"><view class"table-item btn fcc {{isTurnOver?:grayscale…

基于springboot+vue+Mysql的交流互动系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

java入门详细教程之集合的理解与应用

一、Collenction集合 数组和集合的区别 长度 数组的长度是不可变的,集合的长度是可变的 数据类型 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 Collection 集合概述和使用 Collection集合概述​&#xff1a; 是单…

构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(二)

构建安全的GenAI/LLMs核心技术解密之大模型对抗攻击(二) LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三) 基于 LlaMA …

Django接口卡死一直没有返回响应

当Django接口出现卡死且没有返回响应时&#xff0c;可能是由于多种原因导致的。以下是一些排查和解决问题的步骤&#xff1a; 查看日志&#xff1a; 首先检查Django的日志&#xff0c;看看是否有任何错误或异常被记录。这可以帮助你确定问题的根源。 检查数据库连接&#xff1…

【漏洞复现】泛微OA E-Cology GetLabelByModule SQL注入漏洞

漏洞描述&#xff1a; 泛微OA E-Cology是一款面向中大型组织的数字化办公产品&#xff0c;它基于全新的设计理念和管理思想&#xff0c;旨在为中大型组织创建一个全新的高效协同办公环境。泛微OA E-Cology getLabelByModule存在SQL注入漏洞&#xff0c;允许攻击者非法访问和操…

使用库进行Linux下串口收发通信(最简单没有之一)的记录

c-periphery 是一个小型 C 库,用于用户空间 Linux 中的 GPIO、LED、PWM、SPI、I2C、MMIO 和串行外设 I/O 接口访问。 c-periphery 简化并整合了原生 Linux API 到这些接口。 c-periphery 在嵌入式 Linux 环境(包括 Raspberry Pi、BeagleBone 等平台)中与外部外设连接非常有…