【PyTorch】线性回归

news/2024/11/8 18:32:37/

文章目录

  • 1. 代码实现
    • 1.1 一元线性回归模型的训练
  • 2. 代码解读
    • 2.1. tensorboardX
      • 2.1.1. tensorboardX的安装
      • 2.1.2. tensorboardX的使用

1. 代码实现

波士顿房价数据集下载

1.1 一元线性回归模型的训练

import numpy as np
import torch
import torch.nn as nn
from torch.utils.data import TensorDataset, DataLoader, random_split
from tensorboardX import SummaryWriterdevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
batch_size = 2
num_epochs = 200writer = SummaryWriter()model = nn.Linear(1, 1).to(device)
nn.init.normal_(model.weight, mean=0, std=0.01)
nn.init.constant_(model.bias, 0)
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-4)data = np.load('dataset/boston_housing/boston_housing.npz')
X = torch.tensor(data['x'][:, 0].reshape(-1, len(model.weight)), dtype=torch.float, device=device)
y = torch.tensor(data['y'].reshape(-1, 1), dtype=torch.float, device=device)
dataset = TensorDataset(X, y)
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)for epoch in range(num_epochs):for _X, _y in dataloader:_X, _y = _X.to(device), _y.to(device)loss = criterion(model(_X), _y)optimizer.zero_grad()loss.backward()optimizer.step()loss = criterion(model(X), y)torch.save(model.state_dict(), 'model/linearRegression.pt')model.load_state_dict(torch.load('model/linearRegression.pt'))writer.add_scalar('Loss/train', loss, epoch)writer.add_scalar('W/train', model.weight, epoch)writer.add_scalar('b/train', model.bias, epoch)
writer.close()

2. 代码解读

2.1. tensorboardX

tensorboardX是一种能将训练过程可视化的工具

2.1.1. tensorboardX的安装

安装命令:

pip install tensorboardX

VSCode集成了TensorBoard支持,不过事先要安装torch-tb-profiler,安装命令:

pip install torch-tb-profiler

安装完成后,在Python源文件中tensorboardX模块导入处,点击“启动TensorBoard会话”按钮,然后选择运行事件所在目录,默认选择当前目录即可,tensorboard会自动在当前目录查找运行事件,由此即可启动TensorBoard。
启动TensorBoard会话
logdir
此外,也可以通过以下命令在浏览器查看tensorboard可视化结果:

# logdir为运行事件所在目录
> tensorboard logdir=runs
TensorFlow installation not found - running with reduced feature set.
I1202 20:37:50.824767 15412 plugin.py:429] Monitor runs begin
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.14.0 at http://localhost:6006/ (Press CTRL+C to quit)
# 手动打开命令输出提供的本地服务器地址,如http://localhost:6006/

2.1.2. tensorboardX的使用

  • 直接创建对象
from tensorboardX import SummaryWriter
writer = SummaryWriter()
# writer.add_scalar():添加监控变量
writer.close()
  • 使用上下文管理器
from tensorboardX import SummaryWriter
with SummaryWriter() as writer:# writer.add_scalar():添加监控变量

http://www.ppmy.cn/news/1255053.html

相关文章

解决git action发布报错:Input required and not supplied: upload_url

现象: 这个问题死活都找不到原因,后来打了一段调试的代码 - name: Debug Create Release Output run: | echo "Release ID: ${{ env.RELEASE_ID }}" echo "Release Upload URL: ${{ env.RELEASE_UPLOAD_URL }}" env: RELEASE_ID: ${…

Linux系统之centos7编译安装Python 3.8

前言 CentOS (Community Enterprise Operating System) 是一种基于 Red Hat Enterprise Linux (RHEL) 进行源代码再编译并免费提供给用户的 Linux 操作系统。 CentOS 7 采用了最新的技术和软件包,并提供了强大的功能和稳定性。它适用于各种服务器和工作站应用场景&a…

Linux中文件的打包压缩、解压,下载到本地——zip,tar指令等

目录 1 .zip后缀名: 1.1 zip指令 1.2 unzip指令 2 .tar后缀名 3. sz 指令 4. rz 指令 5. scp指令 1 .zip后缀名: 1.1 zip指令 语法:zip [namefile.zip] [namefile]... 功能:将目录或者文件压缩成zip格式 常用选项&#xff1a…

Opencv框选黑色字体进行替换(涉及知识点:selectROI,在控制台输入字体大小,颜色,内容替换所选择的区域)

import cv2 from PIL import Image,ImageDraw,ImageFont import numpy as npimg_path ../img/ img_clean_path ../img_clean/ name xiao_ben suf .pngimg cv2.imread(img_pathnamesuf) cv2.imshow(original, img)# 选择ROI roi cv2.selectROI(windowName"original&q…

百度查询界面自定义

文章目录 起因步骤 纯个人纪录 参考以下师傅链接 爱吃猫的鱼儿-浏览器设置夜间模式以及百度搜索结果单列居中 起因 发现百度查询结果都在左边,想着能不能居中,发现已经有前辈写了插件,遂安装使用,看下效果 步骤 安装插件暴力猴…

SCAU:各位数字

各位数字 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: G;GCC 描述 从键盘输入一个3位数的正整数,要求先后输出该数的百位数字与个位数字,各占一行输入格式 一个三位整数输出格式 输出该数的百位数字与个位数字输入样例 123输出…

sql27(Leetcode1729求关注者的数量)

代码: # Write your MySQL query statement below select user_id,count(follower_id) as followers_count from Followers group by user_id order by user_id

mysql(47) : 天分区表自动管理

说明 分区字段为int类型,并且为主键,如下示例的date CREATE TABLE mytest (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT (id),gmt_create datetime DEFAULT NULL,gmt_modify datetime DEFAULT NULL,name varchar(50) DEFAULT NULL COMMENT 名称,age int DEFAULT NULL COMM…