Pytorch深度学习笔记(八)处理多维度特征的输入

news2024/11/16 3:16:52

目录

1.概述

2. 处理多维度特征的输入

注:不同的激活函数(sigmoid函数), 绘制不同的图表


推荐课程:07.处理多维特征的输入_哔哩哔哩_bilibili

1.概述

 一个八维数据集:

 数据集,每一行称为一个样本,每一列称为一个特征

回归模型的更改:n维的输入向量x和n维的权重w的转置作内积 + 广播处理的偏移量b,得到的1维的预测值,再使用logistic函数进行映射。

使用self.linear = torch.nn.Linear(n,m)对输入维度和输出维度进行调整。

如下图所示,self.linear = torch.nn.Linear(8,1)可以使8个维度的输入张量映射到1个维度的输出张量。

可以从n维的输入直接映射到1维的输出,也可以分多层一步一步的进行映射,例如:从8维映射到6维,再从6维映射到4维,再从4维映射到2维,再从2维映射到2维。

一般来说,映射的层数越多,神经元越多,学习能力越强。但是并不是说学习能力越强越好,学习能力过强,可能会把输入样本中噪声的规律也学到,造成模型和数据之间的过拟合。

2. 处理多维度特征的输入

案例:使用神经网络处理8维特征输入:

三层映射:从8维映射到6维,再从6维映射到4维,再从4维映射到1维。

代码实现:

import torch
#用于在大型、多维数组上执行数值运算
import numpy as np
import matplotlib.pyplot as plt

#…1.准备数据………………………………………………………………………………………………………………………………………#
xy = np.loadtxt('dataset/diabetes.csv', delimiter=',', dtype=np.float32)
# 第一个‘:’是指读取所有行,第二个‘:’是指从第一列开始,最后一列不要
x_data = torch.from_numpy(xy[:, :-1])
# [-1] 最后得到的是个矩阵
y_data = torch.from_numpy(xy[:, [-1]])

#…2.设计模型………………………………………………………………………………………………………………………………………#
# 继承torch.nn.Module,定义自己的计算模块,neural network
class Model(torch.nn.Module):
    # 构造函数
    def __init__(self):
        # 调用父类构造
        super(Model, self).__init__()
        # 从8维降到6维再降到4维再降到1维
        self.linear1 = torch.nn.Linear(8, 6)
        self.linear2 = torch.nn.Linear(6, 4)
        self.linear3 = torch.nn.Linear(4, 1)
        self.sigmoid = torch.nn.Sigmoid()

    # 前馈函数
    def forward(self, x):
        # 调用self.sigmoid,并linear
        x = self.sigmoid(self.linear1(x))
        x = self.sigmoid(self.linear2(x))
        x = self.sigmoid(self.linear3(x))
        return x

#……3.构造模型、损失函数和优化器………………………………………………………………………………………………………#
# 实例化自定义模型,返回做logistic变化(也叫sigmoid)的预测值
model = Model()
# 实例化损失函数,返回损失值
criterion = torch.nn.BCELoss(size_average=True)
# 实例化优化器,优化权重w
# model.parameters(),取出模型中的参数,lr为学习率
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

#……4.训练周期……………………………………………………………………………………………………………………………………………#
for epoch in range(1000):
    # 获得预测值
    y_pred = model(x_data)
    # 获得损失值
    loss = criterion(y_pred, y_data)
    # 不会产生计算图,因为__str()__
    print(epoch, loss.item())
    # 梯度归零
    optimizer.zero_grad()
    # 反向传播
    loss.backward()
    # 更新权重w
    optimizer.step()
    optimizer.step()

注:不同的激活函数(sigmoid函数), 绘制不同的图表

 

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

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

相关文章

完整搭建 SpringCloud 项目

目录 1、数据库表结构设计 2、项目结构设计搭建 (1)创建父工程(SpringBoot 类型) (2)其他功能模块搭建 (3)创建 eureka (4)创建common 模块 (5&…

jmeter常用组件1

常用的组件 常用的组件1,配置元件 1.HTTP请求默认值2.HTTP信息头管理器3.HTTP Cookie管理器4.用户自定义变量5.csv数据导入 2,集合点3,后置处理器 1.debug处理器2.json提取器 本文永久更新地址: 1,配置元件 1.HTTP请求默认值 在…

ASP.NET Core MVC 从入门到精通之Razor语法

随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生&#xff0c…

PyQt在界面/子界面中添加横线

问题: 自己写个了处理数据的小程序,想要在不同的部分之间做个区域划分,使用实线或者虚线标记。 找了几个界面方法:1.使用画图QPainter,画所需要的线。 2.添加按钮,将按钮设置成线的形式 这两种方式都不适合我这个界…

着色器语言 GLSL (opengl-shader-language)入门大全

GLSL 中文手册 基本类型: 类型说明void空类型,即不返回任何值bool布尔类型 true,falseint带符号的整数 signed integerfloat带符号的浮点数 floating scalarvec2, vec3, vec4n维浮点数向量 n-component floating point vectorbvec2, bvec3, bvec4n维布尔向量 Boolean vectori…

广告投放ROI如何计算?实现广告效果最大化

大家好!我是东哥,一个专注于跨境电商的小商家。今天,我要和大家分享一下广告投放中的一个关键指标——ROI,也就是投资回报率。这个指标非常重要,因为它可以帮助我们评估广告的效果,让我们知道我们的广告投放…

SpringCloud消息驱动——Stream

Stream 本专栏学习内容来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 SpringCloud Stream是SpringCloud的消息驱动,之前的微服务学的好好的,为什么会突然冒出一个这么个东西来增加我们的学习量呢? 一听到消息,那…

u盘文件不见但还占用容量文件办法?

将U盘插入电脑的时候为什么会出现“U盘文件突然不见但还占用空间”的提示框呢?遇到这个问题时又该怎么处理呢?别慌,下面小编就来给大家演示一下子解决U盘文件突然不见但还占用空间这个问题的解决方法。 u盘文件不见但还占用容量文件办法? u盘文件不见但…

短视频平台-小说推文(最右)推广任务详情

最右推荐书单 https://nr6mwfrzw8.feishu.cn/sheets/shtcnVgsBY18qft FqBG9b8eYFnc?sheetpfiUaC 复制链接到飞书或浏览器打开 最右会员 1.1关键词 最右关键词审核时间周一~周日 上午:10点前提交,15:00点前可查下午:15点前提交,20:00点前可查注意: …

盘点几款还不错的企业网盘产品

企业网盘的出现,为企业提供文件安全管理,团队协作服务,解决了便捷性与安全性等问题,受到了企业的青睐。市面上的企业网盘工具也是五花八门,我们该如何选择适合自己团队的网盘工具呢? 本文盘点了几款还不错的…

2023年软件测试的前景?测试工程师技能提升,进阶自动化测试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 2023年软件测试行…

中国社科院与美国杜兰大学金融管理硕士项目——努力撑起未来的一片天

牛顿说:如果说我看得比别人更远些,那是因为我站在巨人的肩膀上。人类文明浩如烟海,我们每个人都是吸收着前人的精神食粮长大。父母也是尽全力地给我们提供好的学习环境,让我们站在他们的肩头上,青出于蓝而胜于蓝。如今…

新互联网人必学-产品经理课无密为伊消得人憔悴

新互联网人必学-产品经理课 download:https://www.666xit.com/3832/ 产品经理:连接用户需求和产品设计的重要角色 随着移动互联网的迅猛发展,产品经理已成为越来越多IT公司中不可或缺的职位。作为一名产品经理,他所扮演的角色是…

你掌握了stream流的全部新特性吗?

我们知道很早之前java8对于之前的版本更新了许多 新的支持,比如lamda函数式接口的支持,支持更多函数式接口的使用,对链表,数组,队列,集合等实现了Collectio接口的数据结构提供了StreamSupport.stream()支持…

Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序

文章目录 基础知识-Windows下版本控制器(SVN)3、Subversion 安装与配置3.1 验证是否安装成功。3.2 配置版本库3.3 启动服务器端程序 基础知识-Windows下版本控制器(SVN) 3、Subversion 安装与配置 TortoiseSVN安装与配置网上资料太多了,这里就不阐述了。 3.1 验证是…

LinkedHashMap如何实现LRU缓存淘汰策略?

本文目录 1.LRU是什么?2.如何使用LinkedHashMap实现LRU?3.LinkedHashMap源码分析3.1 LinkedHashMap简介3.2 继承体系3.3 内部数据存储结构3.4源码解析属性:构造方法:afterNodeInsertion(boolean evict)方法afterNodeAccess(Node e)方法after…

一种应用于车载系统的GPS接收机射频前端的设计

一种应用于车载系统的GPS接收机射频前端的设计 GPS(GLOBLE POSITIONING SYSTEM)是一种可以定时和测距的空间交会定点导航系统,它可以向全球用户提供连续、实时、高精度的三维位置、三维速度和实践信息。GPS提供两种服务:标准定位…

科研小技巧 | 用ArcGIS绘制研究区地图

目录 01 地图的导入 02 设置十段线小图框 03 设置研究区示意图 04 添加细节04添加细节 05 添加省份名称 06 对研究区额外上色 论文用图对准确性和美观度有一定要求,而ArcGIS具有强大的地图制作功能,可以利用该软件快速制作研究区地图。 01 地图的导…

实力认证 | 睿士主机取证溯源系统再获国产化兼容性认证

睿士主机取证溯源系统喜获鲲鹏技术认证 近日,中睿天下自主研发的睿士主机取证溯源系统与华为技术有限公司旗下鲲鹏(Kunpeng)920处理器完成兼容性测试认证,并获得鲲鹏技术认证书。这表明睿士主机取证溯源系统可为鲲鹏920处理器主机…

操作系统原理 —— 进程有哪几种状态?状态之间如何切换?(七)

进程的五种状态 首先我们一起来看一下进程在哪些情况下,会有不同的状态表示。 创建态、就绪态 当我们刚开始运行程序的时候,操作系统把可执行文件加载到内存的时候,进程正在被创建的时候,它的状态是创建态,在这个阶…