首页 > 其他分享 >4-线性回归

4-线性回归

时间:2024-08-23 10:19:57浏览次数:6  
标签:loss true 回归 torch 线性 net data size

python中*运算符的使用
用于将可迭代对象(如列表或元组)的元素解压缩为单独的参数

当我们从Dataloader取出来的时候,又会将压缩为的单独参数分开

import torch
from torch.utils import data

# 准备数据
true_w = torch.tensor([2, -3.4])
true_b = 4.2

def synthetic_data(w, b, num_examples):
    x = torch.normal(0, 1, size=(num_examples, 2))
    y = torch.matmul(x, w) + b
    y += torch.normal(0, 1, size = y.shape)
    return x, y.reshape((-1, 1))

features, labels = synthetic_data(true_w, true_b, 1000)

# 获取数据
def load_data(data_arrays, batch_size, is_train = True):
    dataset = data.TensorDataset(*data_arrays) # 使用data.TensorDataset函数将输入的data_arrays中的张量组合成一个数据集
    return data.DataLoader(dataset, batch_size, shuffle=is_train) # 使用data.DataLoader函数将数据集包装成一个数据加载器

data_iter = load_data((features, labels), 10)

# 构造模型
net = torch.nn.Sequential(torch.nn.Linear(2, 1)) # 输入特征形状  输出特征形状
net[0].weight.data.normal_(0, 0.01)
net[0].bias.data.fill_(0)

# 定义损失函数和优化器
loss = torch.nn.MSELoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01)

# 训练
epochs = 10
for epoch in range(epochs):
    for X, Y in data_iter:
        l = loss(net(X), Y)
        optimizer.zero_grad()

        l.backward()
        optimizer.step()

    l = loss(net(features), labels)
    print('epoch:{},  loss:{}'.format(epoch+1, l.item()))



标签:loss,true,回归,torch,线性,net,data,size
From: https://www.cnblogs.com/morehair/p/18375412

相关文章

  • 亦菲喊你来学机器学习(9) --逻辑回归实现手写数字识别
    文章目录逻辑回归实现手写数字识别训练模型测试模型总结逻辑回归逻辑回归(LogisticRegression)虽然是一种广泛使用的分类算法,但它通常更适用于二分类问题。然而,通过一些策略(如一对多分类,也称为OvR或One-vs-Rest),逻辑回归也可以被扩展到多分类问题,如手写数字识别(通常是......
  • 线性回归(Linear Regression)
    一、损失(Loss)类型:L1损失【Re】:对模型对各个样本的预测的绝对误差求和。平均绝对误差(MAE)【Re】:一组样本L1损失的平均值。L2损失:【Re】对模型【Re】对各个样本的预测的误差的平方求和。均方误差【Re】:一组样本的L2 损失的平均值。如果数据中特征值超过了一定范围,或者模......
  • 【人工智能】案例分析和项目实践:使用高斯过程回归预测股票价格
    一、项目背景与目标股票价格预测是金融领域的热门话题,对于投资者、金融机构及研究者而言具有重要意义。高斯过程回归(GaussianProcessRegression,GPR)作为一种强大的非参数贝叶斯回归方法,能够处理复杂的非线性关系,同时提供预测的不确定性估计,非常适合用于股票价格预测。项目......
  • 3-线性回归从零实现
    1、注意=和-=在梯度更新时的区别defminbatch_sgd(params,lr,batch_size):withtorch.no_grad():forparaminparams:param=param-lr*param.grad/batch_sizeparam.grad.zero_()这段代码是错误的,应该改成param-=lr*param.grad/batch_size原因如下:import......
  • Day03_0.1基础学习MATLAB学习小技巧总结(3)——矩阵的创建、引用和线性索引。
    利用暑假的时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。素材来源“数学建模清风”特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以......
  • 深度学习:(一)基础解释,逻辑回归重点说明
    一、专业名词1.MachineLearning#机器学习(ML)2.DeepLearning#深度学习(DL)3.ConvolutionalNeuralNetworks#卷积神经网络(CNN)4.RecurrentNeuralNetwork#循环神经网络(RNN)5.LongShort-TermMemory#长短期记忆网络(LSTM)6.RectifiedLinearUnit#修正线性单元(R......
  • SLAB:华为开源,通过线性注意力和PRepBN提升Transformer效率 | ICML 2024
    论文提出了包括渐进重参数化批归一化和简化线性注意力在内的新策略,以获取高效的Transformer架构。在训练过程中逐步将LayerNorm替换为重参数化批归一化,以实现无损准确率,同时在推理阶段利用BatchNorm的高效优势。此外,论文设计了一种简化的线性注意力机制,其在计算成本较低的情况下......
  • Python个人收入影响因素模型构建:回归、决策树、梯度提升、岭回归
    全文链接:https://tecdat.cn/?p=37423原文出处:拓端数据部落公众号“你的命运早在出生那一刻起便被决定了。”这样无力的话语,无数次在年轻人的脑海中回响,尤其是在那些因地域差异而面临教育资源匮乏的年轻人中更为普遍。在中国,这种现象尤为明显:没有生在大城市的他们,从小便需面对教育......
  • 机器学习线性回归算法——原理+python详细代码解析(sklearn)
    线性回归算法作为经典的机器学习算法之一,拥有极为广泛的应用范围,深受业界人士的青睐。该算法主要用于研究分析响应变量如何受到特征变量的线性影响。其通过构建回归方程,借助各特征变量对响应变量进行拟合,并且能够利用回归方程进行预测。鉴于线性回归算法较为基础、简单,所以比较......
  • 回归预测|基于北方苍鹰优化支持向量机的数据回归预测Matlab程序NGO-SVM 多特征输入单
    回归预测|基于北方苍鹰优化支持向量机的数据回归预测Matlab程序NGO-SVM多特征输入单输出高引用先用先创新文章目录前言回归预测|基于北方苍鹰优化支持向量机的数据回归预测Matlab程序NGO-SVM多特征输入单输出高引用先用先创新一、NGO-SVM模型1.北方苍鹰优化算......