PyTorch 深度学习实践-处理多维特征的输入

news2024/9/22 7:41:12

视频指路
参考博客笔记
参考笔记二

在这里插入图片描述
通过多个线性模型来模拟非线性的空间变换,矩阵计算就是不同维度之间的空间转换

说明:1、乘的权重(w)都一样,加的偏置(b)也一样。b变成矩阵时使用广播机制。神经网络的参数w和b是网络需要学习的,其他是已知的。

​ 2、学习能力越强,有可能会把输入样本中噪声的规律也学到。我们要学习数据本身真实数据的规律,学习能力要有泛化能力。

​ 3、该神经网络共3层;第一层是8维到6维的非线性空间变换,第二层是6维到4维的非线性空间变换,第三层是4维到1维的非线性空间变换。

​ 4、本算法中torch.nn.Sigmoid() # 将其看作是网络的一层,而不是简单的函数使用

​ 5、torch.sigmoid、torch.nn.Sigmoid和torch.nn.functional.sigmoid的区别

在这里插入图片描述

在这里插入图片描述

可以自己随意在Model类中改torch.nn.Linear的变换,尝试后发现激活函数改成ReLU比sigmod最后得到的精确率高一些

import numpy as np
import torch
import matplotlib.pyplot as plt

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


# design model using class


class Model(torch.nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.linear1 = torch.nn.Linear(8, 6)  # 输入数据x的特征是8维,x有8个特征
        self.linear2 = torch.nn.Linear(6, 4)
        self.linear3 = torch.nn.Linear(4, 1)
        # self.linear4 = torch.nn.Linear(4, 1)
        self.activate = torch.nn.ReLU()  # 将其看作是网络的一层,而不是简单的函数使用

    def forward(self, x):
        x = self.activate(self.linear1(x))
        x = self.activate(self.linear2(x))
        x = torch.sigmoid(self.linear3(x))  # y hat
        # x = self.sigmoid(self.linear4(x))  # y hat
        return x


model = Model()

# construct loss and optimizer
# criterion = torch.nn.BCELoss(size_average = True)
criterion = torch.nn.BCELoss(reduction='mean')
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)

# training cycle forward, backward, update
for epoch in range(10000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    # print(epoch, loss.item())

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

    if epoch % 1000 == 999:
        y_pred_label = torch.where(y_pred >= 0.5, torch.ones_like(y_pred), torch.zeros_like(y_pred))#概率大于0.5为1

        acc = torch.eq(y_pred_label, y_data).sum().item() / y_data.size(0)#计算正确率
        print("loss = ", loss.item(), "acc = ", acc)

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

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

相关文章

【Chatgpt大语言模型医学领域中如何应用】

随着人工智能技术 AI 的不断发展和应用,ChatGPT 作为一种强大的自然语言处理技术,无论是 自然语言处理、对话系统、机器翻译、内容生成、图像生成,还是语音识别、计算机视觉等方面,ChatGPT 都有着广泛的应用前景。特别在临床医学领…

Web3D:WebGL为什么在渲染性能上输给了WebGPU。

WebGL已经成为了web3D的标配,市面上有N多基于webGL的3D引擎,WebGPU作为挑战者,在渲染性能上确实改过webGL一头,由于起步较晚,想通过这个优势加持,赶上并超越webGL仍需时日。 贝格前端工场为大家分享一下这…

大数据架构对比记录

Lambda架构 -维护两套项目,开发和维护成本高 -两套链路,数据容易不一致 -数据计算成本大(例如原定每小时计算一次,但有额外新需求需要计算两点半-三点半之间数据,则需要重新计算) Kappa -过于依赖kafka消…

Fiddler下载安装使用教程(包含移动端抓包)

一、官网下载安装 Download Fiddler Web Debugging Tool for Free by Telerik 1、下载Classic版本,并安装 2、安装完成后展示页面如下 3、点击Tools-options,如图所示勾选,允许抓取https请求 4、点击Actions-Export Root Certificate to D…

Spring如何管理Mapper

目录 一、背景二、猜测三、源码查看步骤1、创建MapperScannerConfigurer.java2、MapperScan注解3、MapperScannerRegistrar执行registerBeanDefinitions方法4、MapperScannerConfigurer执行postProcessBeanDefinitionRegistry方法5、执行doscan6、设置beanClass7、使用jdk生成代…

【自学安全防御】三、企业双机热备和带宽管理的综合实验

实验拓扑: 实验任务: 12,对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW3,生产区和办公区的流量走FW1 13,办公区上网用户限制流…

解读「快意」大模型关键技术,揭秘实践中的挑战与创新

导读 2024年6月,GAITC 2024全球人工智能技术大会在杭州举办,在视觉大模型关键技术与应用主题论坛上,快手NLP专家林梓佳向参会者汇报了快手「快意」大模型研发过程中的多个关键技术创新,以及应用落地过程中的经验与挑战。 快手作…

为什么需要加密软件?2024五款电脑文件加密软件推荐

在高度数字化的2024年,数据安全对于个人和企业而言都显得至关重要。加密软件作为保护敏感信息的利器,扮演着不可或缺的角色。从个人隐私数据到企业财务记录、健康信息乃至企业核心机密,加密软件都能有效防止未经授权的访问。 加密软件的重要…

GitHub私有派生仓库(fork仓库) | 派生仓库改为私有

GitHub私有派生仓库 前言解决方案 前言 在GitHub上Fork的派生仓库默认为公有仓库,且无法修改为私有仓库。 若想创建私有的派生仓库,可通过GitHub的导入仓库功能实现,具体步骤请参见下文解决方案。 解决方案 打开GitHub页面,在个…

06.截断文本 选择任何链接 :root 和 html 有什么区别

截断文本 对超过一行的文本进行截断,在末尾添加省略号(…)。 使用 overflow: hidden 防止文本超出其尺寸。使用 white-space: nowrap 防止文本超过一行高度。使用 text-overflow: ellipsis 使得如果文本超出其尺寸,将以省略号结尾。为元素指定固定的 width,以确定何时显示省略号…

One-Class SVM

前提知识:支持向量机(SVM)-CSDN博客 主要思想 找一个超平面将样本中的正例圈出来,预测就是用这个超平面做决策,在圈内的样本就认为是正样本,圈外的是其他样本,如图1所示: 图1 OSVM…

怎样在 PostgreSQL 中优化对大表的分区裁剪和索引选择?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 怎样在 PostgreSQL 中优化对大表的分区裁剪和索引选择一、分区裁剪:精准切割,提…

中科微电子ATGM336H GPS定位模块STM32应用

文章目录 前言1. 中科微电子ATGM336H的使用1.1 ATGM336H引脚说明1.2 数据帧介绍1.3 经纬度介绍1.4 ATGM336H的启动方式 2 数据处理前置C语言知识2.1 strstr函数2.2 memset函数2.3 memcpy函数2.4strtod函数 3. 开始移植3.1 usart初始化程序3.2 串口中断接收函数3.4 数据帧的解析…

【日常记录】【插件】excel.js导出的时候给单元格设置下拉选择、数据校验等

文章目录 1. 代码基本结构2. 导出的excel 某单元格的值设置为下拉选择3. 如何把下拉选择项设置为动态4. 单元格设置校验、提示5. 在WPS上的设置 1. 代码基本结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><…

推出全新的ZL3079x、ZL3069x、ZL3066x同步器,优化用于5G运输和无线基础设施设备

一、单通道、双通道和三通道IEEE1588/SyncE网络同步器 ZL3079x提供1个、2个和三个独立的组合硬件和软件平台定时通道&#xff0c;包括IEEE 1588-2008精确时间协议栈和同步算法。该设备使用miTimePLL定时技术&#xff0c;为5G传输和无线基础设施设备提供新的改进功能。该器件非…

文章六:Java中的同步机制

目录 6.1 引言 同步机制在并发编程中的作用 本文的内容结构 6.2 synchronized关键字 使用synchronized进行线程同步 同步方法示例 synchronized的底层实现 6.3 显式锁 ReentrantLock的使用和优势 ReentrantLock示例 Condition接口和多条件等待的示例 Condition示例…

叶师傅:区区1万张表就把MySQL给整崩溃了

自Oracle发布MySQL9.0以来&#xff0c;貌似对MySQL的吐槽有所增加。作为吃瓜群众的我&#xff0c;来跟个风. 以下文章来源于老叶茶馆 &#xff0c;作者YeJinrong/叶金荣 Percona 资深工程师 Marco Tusa 近日爆料称&#xff0c;升级到 MySQL 8.0.38 版本后&#xff0c;当实例中…

【运维资料】智慧项目运维服务方案(2024Word直接套用完整版)

信息化项目运维服务方案&#xff08;投标&#xff0c;实施运维&#xff0c;交付&#xff09; 1.项目整体介绍 2.服务简述 3.资源提供 软件全过程性&#xff0c;标准型&#xff0c;规范性文档&#xff08;全套资料包&#xff09;获取&#xff1a;本文末个人名片直接获取&#xf…

MaxSite CMS v180 文件上传漏洞(CVE-2022-25411)

前言 CVE-2022-25411 是一个影响 Maxsite CMS v180 的远程代码执行漏洞。攻击者可以通过上传一个特制的 PHP 文件来利用这个漏洞&#xff0c;从而在受影响的系统上执行任意代码。 漏洞描述 该漏洞存在于 Maxsite CMS v180 的文件上传功能中。漏洞利用主要通过允许上传带有危…

自动驾驶-定位概述

假设有一张全球的高精度地图&#xff0c;定位的任务是确定车辆在这张高精度地图上的位置。gps精度在1到3米&#xff0c;由于不能完全信任gps&#xff0c;必须找到另一种方法来准确的确定车辆在地图上的位置。 最常用的方法是将所看到的内容和地图上显示的内容进行比较 车辆坐…