pytorch深度学习框架CUDA版本环境安装记录——牛刀杀鸡——解一个非线性方程组

news2024/10/6 12:26:25

目录

  • 一、前言
  • 二、安装步骤
    • step1. 安装显卡驱动
    • step2. 安装cuda
    • step3. 安装cuDNN
    • step4. 安装pytorch环境
  • 三、用pytorch解个非线性方程组

一、前言

在深度学习界pytorch框架用得人越来越多,无论是CV机器视觉、NLP还是自然语言处理,目前主流的大的模型如GPT模型等也很多用pytorch。比如清华大学的单机GPT模型chatGLM,用的是GPU版本的pytorch。本人以前用的时keras,第一次装pytorch,记录一下安装的步骤,便于以后参考。

二、安装步骤

step1. 安装显卡驱动

显卡主是要用英伟达的显卡。根据显卡的型号去英伟达官网进行下载安装

step2. 安装cuda

此步也一样,都是去官网cuda相关页面下载对应的显卡、操作系统的版本:
在这里插入图片描述
本人下了12.1
下载完就双击安装,跟一般软件一样。

step3. 安装cuDNN

此步也一样,都是去官网cuDNN相关页面下载对应的显卡、操作系统的版本:
在这里插入图片描述
这里第一次进去可能要求注册个人的账号,有点费劲,根据引导注册就好。
注册好后,选择适合自己的操作系统版本下载。
下载好后解压出几个文件夹,:
在这里插入图片描述
找到cuda的安装目录,讲对应的文件夹给替换了。
在这里插入图片描述
验证cuDNN是否安装完成,打开cmd,输入

cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite
然后执行命令:
bandwidthTest.exe
在这里插入图片描述
出现PASS,就说明成功
在这里插入图片描述

step4. 安装pytorch环境

网速快的话可以安装pytorch的官网说明安装(不建议):
在这里插入图片描述
由于torch的尺寸有点大,由于网络等原因通过pip指令下载可能会timeout,最好去相应的网页手动下载相应的模块,主要涉及三个模块:torch、torchvision、torchaudio这三个。
这三个模块要选择对应的配套版本,以下是torch版本分别对应torchvision、torchaudio的对应关系:
在这里插入图片描述
在这里插入图片描述
最保险的安装方法是先离线下好这三个文件,网址为:离线下载链接
这里,上面我下载的cuda的版本是12.1,还没有一样的版本,于是我下载了最高的版本11.8(即,cu118开头的):
例如:cu118/torch-2.0.0%2Bcu118-cp39-cp39-win_amd64.whl
cu118——代表cuda 11.8版本
torch-2.0.0——代表2.0.0版本
cp39——代表python 3.9版本
win_amd64——代表windows 64位

查表对应的torchvision、torchaudio版本为:0.15.1和2.0.1
在这里插入图片描述
下载完三个离线文件后,进入文件所在目录,通过pip install指令安装( pip install torch-2.0.0+cu118-cp39-cp39-win_amd64.whl torchaudio-2.0.1+cu118-cp39-cp39-win_amd64.whl torchvision-0.15.1+cu118-cp39-cp39-win_amd64.whl),不一会就安装完成了:
在这里插入图片描述

三、用pytorch解个非线性方程组

利用pytorch的图计算框架,反向传播机制,可以很容易对非线性方程组求解,当然这里是用牛刀杀鸡了:

import torch

# Define the equations as functions
def f1(x, y):
    return x**2 + y**2 - 1

def f2(x, y):
    return x - y**2

# Define the variables
x = torch.tensor([1.0], requires_grad=True)
y = torch.tensor([1.0], requires_grad=True)

# Define the optimizer
optimizer = torch.optim.Adam([x, y], lr=0.1)

# Define the loss function
def loss_fn(x, y):
    return f1(x, y)**2 + f2(x, y)**2

# Train the model
for i in range(1000):
    optimizer.zero_grad()
    loss = loss_fn(x, y)
    loss.backward()
    optimizer.step()

# Print the results
print("x: ", x.item())
print("y: ", y.item())

感觉这个可以实现工程化,只要列出方程组,就可以用以上类似的方法求解。
运行如下(误差非常小):
在这里插入图片描述

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

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

相关文章

Matlab-报错griddedInterpolant解决方法分享

Yiinterp1 (x,Y,xi) interp1函数的用法: yiinterp1 (x,Y,xi):返回插值向量yi,每一元素对应于参量xi,同时由向量X与Y的内插值决定。 1.问题产生 用matlab做网格数据插值时遇到的问题 报错截图收录 2.分析原因 根据报错可知&#x…

胜叔说SI_PI_EMC

第一课 分享的目的 书籍推荐 第二课 什么是理论分析 仿真不是目的,仿真是验证理论分析的方法 测试不是目的,测试是验证理论分析的方法 第三课 信号完整性简介 小型化、高功率、高密度 传输线理论:传输线是由 信号路径和返回路径共同组…

【Spring Cloud】Sleuth+Zipkin全链路日志追踪接入实战

文章目录 一、背景链路追踪介绍为什么需要链路追踪?那该如何解决呢? 二、常见的链路追踪技术有下面这些:三、Sleuth3.1、Sleuth(读作/sluːθ/)介绍3.2、相关术语3.3、Sleuth入门 四、多线程传递traceId1.问题2.解决方案3. 业务组…

cookie和session—javaEE

1.cookie 1.1定义 单纯的说cookie指的是cookie技术,是客户端保存数据的一种技术 1.2保存的方式 (1)客户端写js代码 (2)服务端返回响应头set-cookie字段的值让客户端保存在本地硬盘或浏览器的相关路径中 1.3作用 …

Oracle的学习心得和知识总结(二十三)|Oracle数据库Real Application Testing之Database Replay相关视图

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

[C++]模板初阶与STL简介

目录 模板初阶与STL简介:: 1.泛型编程 2.函数模板 3.类模板 4.什么是STL 5.STL的版本 6.STL的六大组件 7.STL的缺陷 模板初阶与STL简介:: 1.泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& righ…

《Netty》从零开始学netty源码(四十二)之PoolChunk.runsAvailMap

runsAvailMap PoolChunk中的runsAvailMap属性用于存放可用的run的信息,PoolChunk中每一次分配内存都会更新runsAvailMap中可用的run的起始信息及末尾信息,先看下它的数据结构: 我们看下它的构造函数是如何赋值的: PoolChunk的默认…

为什么MySQL索引更适合B+树而不是二叉树、B树

概述: 在当今社会,程序员内卷非常的严重,如果没有过硬的技术,很难在众多的程序员中脱颖而出,例如,以前问数据库方面的知识,只会问些增删改查语句表面的东西,而如今却要问数据库底层…

【翻译一下官方文档】之uniapp的网络请求

uni.request(OBJECT) 发起网络请求。 参数名类型必填默认值说明平台差异说明urlString是开发者服务器接口地址dataObject/String/ArrayBuffer否请求的参数App 3.3.7 以下不支持 ArrayBuffer 类型headerObject否设置请求的 header,header 中不能设置 RefererApp、H5…

关于链表的题目—leetcode

第一题:删除链表中的指定节点 问题描述: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点…

【redis】缓存预热雪崩穿透击穿

【redis】缓存预热雪崩穿透击穿(上) 文章目录 【redis】缓存预热雪崩穿透击穿(上)前言一、面试题二、缓存预热三、缓存雪崩发生原因预防+解决高可用:多缓存结合: 人民币玩家 四、缓存穿透是什么…

谷歌云端硬盘Drive批量下载大文件或大文件夹的稳定方法

本文介绍在谷歌云端硬盘(Drive)中,快速、稳定下载大文件、文件夹的方法。 在使用谷歌Drive下载文件或文件夹时,我们往往会遇到下载不稳定或失败的情况;在下载较大的文件或文件夹时,这一问题出现的频率更多。…

NLP语义识别在人工智能领域中的应用与前景

自然语言处理(NLP)是人工智能领域中的一个重要分支,它致力于让计算机能够理解并处理人类自然语言。语义识别是NLP中的一个重要技术,它可以使计算机更好地理解人类语言的含义和意图。在本文中,我们将探讨NLP语义识别在人…

4月24号软件更新资讯合集.....

GoFrame v2.4 版本发布,企业级 Golang 开发框架 大家好啊,GoFrame 框架今天发布了 v2.4.0 正式版本啦!👏👏👏👏 该版本最大的亮点在于提供了微服务开发的功能特性、开发工具以及工程脚手架&am…

第三章作业:关系数据库

第三章作业:关系数据库 目录 第三章作业:关系数据库选择题简答题1、关系代数:产生学生成绩表,包括学号、姓名、课程名、学分和成绩。题目代码 2、关系代数:检索选择了课程号为“C2"的学生学号和姓名。题目代码 3、…

月获2万份简历,硕士占比超70%!中欧基金如何破圈打造雇主品牌?

成立于2006年的中欧基金,作为国内首批实现员工持股的基金公司,坚持以人为本,相信优秀的业绩要靠优秀的人才来创造。 因此,中欧基金在完善公司治理机制基础上,实现不仅有敢打硬仗能打胜仗的将才,还有更多不…

Pytorch损失函数

基本用法 criterion LossCriterion() #构造函数有自己的参数loss criterion(x, y) #调用标准时也有参数 1 L1范数损失 L1Loss 计算 output 和 target 之差的绝对值。 torch.nn.L1Loss(reductionmean)参数: reduction-三个值 none: 不使用约简; me…

S32K系列MCU学习介绍

前言 最近因为工作需要,在学习恩智浦的S32K312,开发一款汽车PDU。 一、S32K3系列 1.特点 S32K系列是恩智浦公司于2017年推出的面向汽车电子的微控制器。S32K3 系列包括基于 Arm Cortex-M7 的 MCU,采用单步、双步和锁步内核配置&#xff0…

滴水逆向3期笔记与作业——01汇编

防止OneNote丢失。 海哥牛逼。 01汇编笔记 01进制进制定义10-2进制转换八进制 02数据宽度/逻辑运算数据宽度与存储逻辑运算计算机做加法的本质作业 03通用寄存器_内存读写通用寄存器表通用寄存器图内存读写计算机操作系统位数意义 04内存地址_堆栈寻址公式PUSH指令POP指令作业 …

《稻》念袁老,孙溟㠭先生为纪念袁隆平老先生治印一方

孙溟㠭篆刻作品《稻》 孙溟㠭篆刻作品《稻》 稻穗熟了,袁老走了。溟㠭先生为纪念袁隆平老先生而治印一枚。 拓印左侧禾苗繁茂,稻田里蛙声一片。拓印右侧为袁老的样子,人瘦心厚,顶着烈日,照料自己试验的稻田。袁老一…