PyTorch 基础篇(2):线性回归(Linear Regression)

  
  1. # 包
  2. import torch
  3. import torch.nn as nn
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  
  1. # 超参数设置
  2. input_size = 1
  3. output_size = 1
  4. num_epochs = 60
  5. learning_rate = 0.001
  6.  
  7. # Toy dataset
  8. # 玩具资料:小数据集
  9. x_train = np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.168],
  10. [9.779], [6.182], [7.59], [2.167], [7.042],
  11. [10.791], [5.313], [7.997], [3.1]], dtype=np.float32)
  12.  
  13. y_train = np.array([[1.7], [2.76], [2.09], [3.19], [1.694], [1.573],
  14. [3.366], [2.596], [2.53], [1.221], [2.827],
  15. [3.465], [1.65], [2.904], [1.3]], dtype=np.float32)
  16.  
  17. # 线性回归模型
  18. model = nn.Linear(input_size, output_size)
  19.  
  20. # 损失函数和优化器
  21. criterion = nn.MSELoss()
  22. optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
  
  1. # 训练模型
  2. for epoch in range(num_epochs):
  3. # 将Numpy数组转换为torch张量
  4. inputs = torch.from_numpy(x_train)
  5. targets = torch.from_numpy(y_train)
  6.  
  7. # 前向传播
  8. outputs = model(inputs)
  9. loss = criterion(outputs, targets)
  10. # 反向传播和优化
  11. optimizer.zero_grad()
  12. loss.backward()
  13. optimizer.step()
  14. if (epoch 1) % 5 == 0:
  15. print (‘Epoch [{}/{}], Loss: {:.4f}’.format(epoch 1, num_epochs, loss.item()))
  
  1. Epoch [5/60], Loss: 7.7737
  2. Epoch [10/60], Loss: 3.2548
  3. Epoch [15/60], Loss: 1.4241
  4. Epoch [20/60], Loss: 0.6824
  5. Epoch [25/60], Loss: 0.3820
  6. Epoch [30/60], Loss: 0.2602
  7. Epoch [35/60], Loss: 0.2109
  8. Epoch [40/60], Loss: 0.1909
  9. Epoch [45/60], Loss: 0.1828
  10. Epoch [50/60], Loss: 0.1795
  11. Epoch [55/60], Loss: 0.1781
  12. Epoch [60/60], Loss: 0.1776
  
  1. # 绘制图形
  2. # torch.from_numpy(x_train)将X_train转换为Tensor
  3. # model()根据输入和模型,得到输出
  4. # detach().numpy()预测结结果转换为numpy数组
  5. predicted = model(torch.from_numpy(x_train)).detach().numpy()
  6. plt.plot(x_train, y_train, ‘ro’, label=‘Original data’)
  7. plt.plot(x_train, predicted, label=‘Fitted line’)
  8. plt.legend()
  9. plt.show()

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

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

相关文章

2024年江苏省职业院校技能大赛信息安全管理与评估 第三阶段学生组(样卷)

2024年江苏省职业院校技能大赛信息安全管理与评估 第三阶段学生组(样卷) 竞赛项目赛题 本文件为信息安全管理与评估项目竞赛-第三阶段样题,内容包括:网络安全渗透、理论技能与职业素养。 本次比赛时间为180分钟。 介绍 GeekSe…

【C++】简单工厂模式

2023年12月6日,周三下午 今天又学习了一次简单工厂模式 每多学习一次,都会加深对设计模式的理解 目录 什么是简单工厂模式简单工厂模式的优缺点举例说明 什么是简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—北京专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室,浓厚创新产学研氛围! 教授亲临现场,面对面答疑解惑助攻申请! 一经录取,享全额奖学金1.5万/月! 时间:2023年12月09日…

虚拟机配置网络(这里以centos为例)

①、点击“编辑”里面的“虚拟网络编辑器”,取消勾选DHCP服务将IP地址分配给虚拟机。 2.点击nat设置,看看对应的子网ip和网关地址还有子网掩码,然后在安装虚拟机生成的vmware8适配器配置中配置和刚刚nat配置中一样的配置 3,然后和第二部一样…

git 面试字节时,老师问:合并分支中 rebase 和 merge 的区别

实际开发工作的时候,我们都是在自己的分支开发,然后将自己的分合并到主分支,那合并分支用2种操作,这2种操作有什么区别呢? git上新建一个项目,默认是有master分支的,将项目克隆到本地&#xff…

聚观早报 |东方甄选将上架文旅产品;IBM首台模块化量子计算机

【聚观365】12月6日消息 东方甄选将上架文旅产品 IBM首台模块化量子计算机 新思科技携手三星上新兴领域 英伟达与软银推动人工智能研发 苹果对Vision Pro供应商做出调整 东方甄选将上架文旅产品 东方甄选宣布12月10日将在东方甄选APP上线文旅产品,受这一消息影…

python二维数组创建赋值问题:更改单个值却更改了所有项的值

test_list [] dic1 {} test_list [dic1 for _ in range(3)] ll [1, 2, 3]for i in range(3):test_list[i][value] ll[i]print(test_list)运行结果:每次赋值都更改了所有项 原因:python的二位数据创建方式就是这样,官方文档中有描述Wha…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion图生图

我们都知道,模型在运算时是根据我们提供的提示内容来确定绘图方向,如果没有提示信息,模型只能根据此前的学习经验来自行发挥。在之前的文生图篇,我们介绍了如何通过提示词来控制图像内容,但想要实现准确的出图效果,只靠简短的提示词是很难满足实际需求的。 AI 绘画的随机…

SpringBoot+SSM项目实战 苍穹外卖(4) day4作业

继续上一节的内容,本节是作业课程,要求独立完成套餐管理模块所有业务功能,包括:新增套餐、套餐分页查询、删除套餐、修改套餐、起售停售套餐。 目录 新增套餐根据分类id查询菜品功能新增套餐功能 套餐分页查询删除套餐根据id查询套…

Java二阶知识点总结(一)Maven

一、Maven概念 Maven是一个项目管理工具,其主要作用有2点 依赖管理:管理项目依赖的各种jar包自动构建:项目构建的过程,从编译、测试、运行、打包到安装的过程可以一键执行 二、Maven工程的目录结构 src/main/java:…

【S32K144】MCAL基础工程搭建

目录 一、在S32DS创建Application Project 二、MCAL工程 三、基于MCAL的集成 以下示例基于S32K144EVB开发板进行。 一、在S32DS创建Application Project (1)新建工程Application Project (2)工程配置 (3&#xff…

正则表达式(5):常用符号

正则表达式(5):常用符号 小结 本博文转载自 在本博客中,”正则表达式”为一系列文章,如果你想要从头学习怎样在Linux中使用正则,可以参考此系列文章,直达链接如下: 在Linux中使用正…

二叉平衡树

一直想深入的研究一下,并手写平衡二叉树的插入、删除代码。 二叉树是动态查找的典范,但在极限情况下,二叉树的查找效果等同于链表,而平衡二叉树可以完美的达到 log ⁡ 2 n \log_2 n log2​n。 AVL简称平衡二叉树,缩写…

Linux系统调试课:I2C tools调试工具

文章目录 一、如何使用I2C tools测试I2C外设1、I2C tools概述: 2、下载I2C tools源码:3、编译I2C tools源码: 4、i2cdetect 5、i2cget 6、i2cdump

Vue+ElementUI技巧分享:结合Sortablejs实现表格行拖拽

文章目录 前言准备工作示例代码代码说明1. 引入依赖和组件结构2. 组件数据和生命周期3. 实现拖拽功能4. 更新数据和服务器同步 运行效果总结 前言 在很多动态网页应用中,用户界面的交互性是提高用户体验的关键。在 Vue.js 中,结合 Element UI 和 sortab…

初识树型结构与二叉树

1. 树型结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树(它是根朝上,而叶朝下的),其物理结构如下图所示&#x…

Ubuntu 20.04 安装 mysql8 LTS

Ubuntu 20.04 安装 mysql8 LTS sudo apt-get update sudo apt-get install mysql-server mysql --version mysql Ver 8.0.35-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu)) Ubuntu20.04 是自带了 MySQL8. 几版本的,低于 20.04 则默认安装是 MySQL5.7.33 s…

rpm安装gitlab

1.rpm包下载 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 2.进行安装 rpm -ivh gitlab-ce-15.9.7-ce.0.el7.x86_64.rpm --nodeps --force 3.配置访问地址 vim /etc/gitlab/gitlab.rb 4.重新加载配置以及重启服务 gitlab-ctl reconfiguregitlab-ctl resta…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(2)》(26)

《Linux操作系统原理分析之Linux文件管理(2)》(26) 8 Linux文件管理8.4 虚拟文件系统 VFS8.4.1 VFS 的工作原理8.4.2 VFS 超级块8.4.3VFS 的 inode 8.5 文件系统的安装与注册8.5.2 文件系统的注册 8 Linux文件管理 8.4 虚拟文件系…

HarmonyOS4.0从零开始的开发教程05 应用程序入口—UIAbility的使用

HarmonyOS(三)应用程序入口—UIAbility的使用 UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,…