Pytorch xpu环境配置 Pytorch使用Intel集成显卡

news2025/3/15 11:05:44

1、硬件集显要为Intel ARC并安装正确驱动

2、安装Intel oneAPI Base Toolkit (https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/base-toolkit-download.html)安装后大约20G左右,注意安装路径

3、安装Visual Studio Build Tools (Microsoft C++ 生成工具 - Visual Studio)

安装时所有选项默认就行,安装如下组件就行

4、安装xpu版Pytorch 安装后大约6G左右

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/xpu 
# 使用--target=d:\python\lib修改安装路径

5、测试

每次打开CMD窗口都要执行一次setvars.bat文件(oneAPI安装路径\oneAPI\setvars.bat)然后再执行python文件,注意只能在CMD窗口中执行,不能使用PowerShell

import torch

print(torch.xpu.is_available())

一个简单的模型训练例子 

import torch
import torch.nn as nn
import torch.optim as optim
import matplotlib.pyplot as plt

# 使用cpu时删除所有.to(xpu)和.to(cpu)

plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
xpu = torch.device('xpu') # 使用CPU时可以删除这句
 
# 1. 定义一个简单的神经网络模型
class SimpleNN(nn.Module):
    def __init__(self):
        super(SimpleNN, self).__init__()
        self.fc1 = nn.Linear(2, 2)  # 输入层到隐藏层
        self.fc2 = nn.Linear(2, 1)  # 隐藏层到输出层
    
    def forward(self, x):
        x = torch.relu(self.fc1(x))  # ReLU 激活函数
        x = self.fc2(x)
        return x
 
# 2. 创建模型实例
model = SimpleNN()
model.to(xpu) # 使用CPU时可以删除这句
 
# 3. 定义损失函数和优化器
criterion = nn.MSELoss()  # 均方误差损失函数
optimizer = optim.Adam(model.parameters(), lr=0.001)  # Adam 优化器
 
# 4. 假设我们有训练数据 X 和 Y
X = torch.randn(10, 2, requires_grad=True).to(xpu)  # 10 个样本,2 个特征
Y = torch.randn(10, 1).to(xpu)  # 10 个目标值
print(X,Y)
# 5. 训练循环
losses = []
for epoch in range(500):  # 训练 500 轮
    model.train()  # 设置模型为训练模式
    optimizer.zero_grad()  # 清空之前的梯度
    output = model(X)  # 前向传播
    loss = criterion(output, Y) # 计算损失
    losses.append(loss.item())
    loss.backward()  # 反向传播
    optimizer.step()  # 更新参数
 
 
# 可视化预测结果与实际目标值对比
y_pred_final = model(X).detach().to("cpu").numpy()  # 最终预测值
y_actual = Y.to("cpu").numpy()  # 实际值
 
plt.figure(figsize=(8, 5))
plt.plot(range(1, 11), y_actual, 'o-', label='实际值', color='blue')
plt.plot(range(1, 11), y_pred_final, 'x--', label='预测值', color='red')
plt.xlabel('Sample Index')
plt.ylabel('Value')
plt.title('Actual vs Predicted Values')
plt.legend()
plt.grid()
plt.show()

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

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

相关文章

uploadlabs通关思路

目录 靶场准备 复现 pass-01 代码审计 执行逻辑 文件上传 方法一:直接修改或删除js脚本 方法二:修改文件后缀 pass-02 代码审计 文件上传 1. 思路 2. 实操 pass-03 代码审计 过程: 文件上传 pass-04 代码审计 文件上传 p…

优选算法的智慧之光:滑动窗口专题(二)

专栏:算法的魔法世界​​​​​​ 个人主页:手握风云 目录 一、例题讲解 1.1. 最大连续1的个数 III 1.2. 找到字符串中所有字母异位词 1.3. 串联所有单词的子串 1.4. 最小覆盖子串 一、例题讲解 1.1. 最大连续1的个数 III 题目要求是二进制数组&am…

【蓝桥杯单片机】第十二届省赛

一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…

剑指 Offer II 047. 二叉树剪枝

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20047.%20%E4%BA%8C%E5%8F%89%E6%A0%91%E5%89%AA%E6%9E%9D/README.md 剑指 Offer II 047. 二叉树剪枝 题目描述 给定一个二叉树 根节点 root ,树的每…

第5章:vuex

第5章:vuex 1 求和案例 纯vue版2 vuex工作原理图3 vuex案例3.1 搭建vuex环境错误写法正确写法 3.2 求和案例vuex版细节分析源代码 4 getters配置项4.1 细节4.2 源代码 5 mapState与mapGetters5.1 总结5.2 细节分析5.3 源代码 6 mapActions与mapMutations6.1 总结6.2…

视觉在协作机器人上的场景应用

看了UR、ABB等协作机器人公司的一些视觉方面的应用,总结大概有下面几个方面。 1.工业制造领域 3C 产品生产 外观检测:可精确检测电子元件的划痕、污渍、凹陷等外观缺陷,如手机屏幕的微小划痕、芯片表面的瑕疵等,确保产品高质量&a…

MyBatis-Plus开发流程:Spring Boot + MyBatis-Plus 实现对 book_tab 表的增删改查及Redis缓存

前言 MyBatis-Plus 是一个 MyBatis 的增强工具,旨在简化开发、减少工作量。本文将介绍如何使用 Spring Boot 集成 MyBatis-Plus 来操作数据库,并结合 Redis 实现数据的缓存功能。 1项目搭建 1.1 创建 Spring Boot 项目 可以通过 Spring Initializr 快…

从开源大模型工具Ollama存在安全隐患思考企业级大模型应用如何严守安全红线

近日,国家网络安全通报中心通报大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患,引发了广泛关注。Ollama作为一款开源的大模型管理工具,在为用户提供便捷的同时,却因缺乏有效的安全管控机制,存在数据泄露…

通过Docker搭个游戏——疯狂大陆(Pkland)

最近在研究我的服务器,在服务器上搭了很多docker的项目,然后找着找着发现一个能用Docker配置环境的游戏叫Pkland。 项目地址:GitHub - popkarthb/pkland: 疯狂大陆是一款多人在线的战略游戏。 游戏操作简捷,您仅需要使用浏览器就可以在任何时…

hive之LEAD 函数详解

1. 函数概述 LEAD 是 Hive 中的窗口函数,用于获取当前行之后指定偏移量处的行的值。常用于分析时间序列数据、计算相邻记录的差异或预测趋势。 2. 语法 LEAD(column, offset, default) OVER ([PARTITION BY partition_column] [ORDER BY order_column [ASC|DESC]…

springboot429-基于springboot的教务管理系统(源码+数据库+纯前后端分离+部署讲解等)

💕💕作者: 爱笑学姐 💕💕个人简介:十年Java,Python美女程序员一枚,精通计算机专业前后端各类框架。 💕💕各类成品Java毕设 。javaweb,ssm&#xf…

linux磁盘非lvm分区

linux磁盘非lvm分区 类似于windows划分C盘、D盘,并且不需要多个磁盘空间合一 图形化直接分区 通过gparted 这个提供直观的图形化分区,类似windows的磁盘管理工具 下载方式: 乌班图/debian系列: sudo apt install gparted红帽…

Linux:文件描述符与重定向

目录 一、文件描述符 1.文件内核对象 2.文件描述符分配原则 二、文件重定向 1.重定向的现象 输出重定向 输入重定向 dup2 2.重定向的使用 三、标准输出和标准错误 继上篇文章中,我们了解了fd打印的值为文件描述符,那么它还有什么作用呢&…

C# 开发工具Visual Studio下载和安装

开发环境与工具 C#的主要开发环境是Visual Studio,这是一个功能强大的集成开发环境(IDE),集成了代码编辑、调试、项目管理、版本控制等功能。此外,Visual Studio Code也是一个轻量级的跨平台代码编辑器,支…

网络安全ctf试题 ctf网络安全大赛真题

MISC 1 签到 难度 签到 复制给出的flag输入即可 2 range_download 难度 中等 flag{6095B134-5437-4B21-BE52-EDC46A276297} 0x01 分析dns流量,发现dns && ip.addr1.1.1.1存在dns隧道数据,整理后得到base64: cGFzc3dvcmQ6IG5zc195eWRzIQ 解…

Embedding技术:DeepWalkNode2vec

引言 在推荐系统中,Graph Embedding技术已经成为一种强大的工具,用于捕捉用户和物品之间的复杂关系。本文将介绍Graph Embedding的基本概念、原理及其在推荐系统中的应用。 什么是Graph Embedding? Graph Embedding是一种将图中的节点映射…

基于IMM算法的目标跟踪,四模型IMM|三维环境|4个模型分别是:CV、左转CT、右转CT、CA(基于EKF,订阅专栏后可获得完整源代码)

这段MATLAB代码实现了基于交互多模型(IMM)算法的目标跟踪,结合了四种运动模型(匀速直线、左转圆周、右转圆周和匀加速直线)。通过定义状态方程、生成带噪声的测量数据,以及执行IMM迭代,该代码有效地实现了多模型的状态估计和融合。最终,用户可以通过可视化结果观察目标…

前端开发10大框架深度解析

摘要 在现代前端开发中,框架的选择对项目的成功至关重要。本文旨在为开发者提供一份全面的前端框架指南,涵盖 React、Vue.js、Angular、Svelte、Ember.js、Preact、Backbone.js、Next.js、Nuxt.js 和 Gatsby。我们将从 简介、优缺点、适用场景 以及 实际…

图像形成与计算机视觉基础

1. 图像形成的基本原理 图像形成是物理世界与传感器(如胶片、CCD/CMOS)交互的过程,核心是光线的传播与记录。 1.1 直接放置胶片模型 物理原理:物体表面反射的光线直接照射到胶片上,但无任何遮挡或聚焦机制。 问题&a…

Spring Boot 缓存最佳实践:从基础到生产的完整指南

Spring Boot 缓存最佳实践:从基础到生产的完整指南 引言 在现代分布式系统中,缓存是提升系统性能的银弹。Spring Boot 通过 spring-boot-starter-cache​ 模块提供了开箱即用的缓存抽象,但如何根据业务需求实现灵活、可靠的缓存方案&#xf…