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,一经查实,立即删除!

相关文章

ssh免密远程登录主机并执行命令

命令:ssh -t -t root192.168.11.2 "cd /home/test/; ls -l"这条命令是使用 SSH 客户端连接到远程主机 192.168.11.2,并以 root 用户的身份登录。具体来说,命令的各部分作用如下: ssh: 开始 SSH 客户端。-t -t: 告诉 SS…

python使用flask框架实现http服务处理

1&#xff0c;python使用flask框架实现http接口与html的返回 1&#xff0c;py文件同级建立文件夹 templates 2&#xff0c;把html文件放进去 命名为hello.html html代码 <!DOCTYPE html> <html> <head><title>Hello</title> </head> <…

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

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

Leetcode 1466. 重新规划路线(两种思路:正难则反 DFS + 无向图转有向图 / DFS 无向建图 + 设定权值 + 反向遍历)

Leetcode 1466. 重新规划路线&#xff08;两种思路&#xff1a;正难则反 DFS 无向图转有向图 / DFS 无向建图 设定权值 反向遍历&#xff09;题目解法一&#xff1a; 正难则反 DFS 无向图转有向图&#xff1a;第 1 步&#xff1a;先建立一个无向图 G0第 2 步&#xff1a;从…

【C++】简单工厂模式

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

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

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

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

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

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

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

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

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

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)运行结果&#xff1a;每次赋值都更改了所有项 原因&#xff1a;python的二位数据创建方式就是这样&#xff0c;官方文档中有描述Wha…

[ffmpeg] av_opt_set 解析

背景 ffmpeg 创建编码器的时候&#xff0c;可以设置一些额外参数。可以通过两种方式&#xff0c;一是 av_opt_set&#xff0c;另一种是 avcodec_open2 最后一个参数传入。今天先分析一下第一种是什么设置进去的。 具体代码分析 av_opt_set 主要分成两部分&#xff0c;一个是…

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

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

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

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

如何设置不同的网页标题(react)

通常&#xff0c;当我们写一个h5或者网站时&#xff0c;需要根据页面的业务来自定义网页标题。 这个本来是在入口html文件中设置的&#xff0c;但唯一。 <head><meta charset"UTF-8" /><!-- <link rel"icon" type"image/svgxml&qu…

【Flink on k8s】- 4 - 在 Kubernetes 上运行容器

目录 1、准备 k8s 集群环境、Docker 环境 2、启用 kubernetes 2.1 查询 k8s 集群基本状态

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

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

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 14 章:受控生成提示

要求CHATGPT高质量回答的艺术&#xff1a;提示工程技术的完整指南—第 14 章&#xff1a;受控生成提示 受控生成提示是一种可以高度控制输出结果的文本生成技术。 具体做法是为模型提供一组特定的输入&#xff0c;如模板、特定词汇或一组约束&#xff0c;用于指导生成过程。 …

C++代码自动化

摘要 在程序员的日常工作中&#xff0c;写代码并不是一件很枯燥乏味的事&#xff0c;因为本身通过代码已经实现了很多单靠人无法完成的工作。但随着代码工程量的加剧&#xff0c;代码逐渐的冗长而复杂&#xff0c;功能的调理型也逐渐的不清晰&#xff0c;这种现象一方面使得代…

Linux join命令教程:如何合并两个文件的行(附实例详解和注意事项)

Linux join命令介绍 Linux的join命令是一个非常有用的工具&#xff0c;它可以合并两个文件的行&#xff0c;这两个文件的行是通过一个公共字段来匹配的。这个命令可以为你的静态数据文件添加一些动态性。如果你想从两个文本文件中通过匹配一个公共字段来合并数据&#xff0c;你…

前端面试JS—数组的常用方法

目录 一、操作&#xff08;增/删/改/查&#xff09; 增 删 改 查 二、排序 三、转换 四、迭代 一、操作&#xff08;增/删/改/查&#xff09; 数组基本操作有 增、删、改、查&#xff0c;需要注意哪些方法会对原数组产生影响&#xff0c;哪些方法不会 增 下面前三种是对…