强化学习路线规划之深度强化学习

news2024/11/24 14:10:36

学到如今,我实在明白了一个至关重要的东西,那就是目标很重要,有了清晰的目标我们就知道该做什么,不至于迷茫,否则每天都在寻找道路。所以我一直在规划这样一条道路,让想学习的人可以抛下不知道该怎么做的顾虑,不至于每天迷茫在该怎么做当中。力量是宝贵的,应该被花在真正知识的学习上,而不是被消耗在寻找道路的迷惘上。所以,我自己也一直在探索学习方法,如何不偏离主线。
其次,学习一样东西,一定要先弄清楚其本源,要搞明白它是什么,原理、机制、应用…在此基础之上去学习就会少走许多弯路。

今天跑代码时突然遇到一个问题

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm 2021.2.2\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 198, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm 2021.2.2\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Python program/DeepRL-CNN-LSTM_dlsf/Deep-Learning/DeepRL-CUDA.py", line 21, in <module>
    torch.set_default_tensor_type('torch.cuda.FloatTensor')
  File "C:\Users\admin\anaconda3\envs\py37\lib\site-packages\torch\__init__.py", line 348, in set_default_tensor_type
    _C._set_default_tensor_type(t)
TypeError: type torch.cuda.FloatTensor not available. Torch not compiled with CUDA enabled.

没有cuda,我没搞明白,前两天我刚升级了pytorch的版本,因为有个程序必须要设计torch版本才能运行,所以我就以为是升级导致的问题,然后我再去看一个代码,发现:

Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found

结合代码

use_cuda = torch.cuda.is_available()

if use_cuda:
    device = torch.device('cuda')
    print("using GPU")
else:
    device = torch.device('cpu')
    print("using CPU")

我这里是不是就是没有装cuda啊,我突然想到。但是我又不太明白cuda是什么具体作用,于是请教ChatGPT。

问:cuda的作用是什么?

答:
CUDA(Compute Unified Device Architecture)是由 NVIDIA 开发的并行计算平台和编程模型,用于利用 NVIDIA GPU 进行高性能计算和加速各种计算任务。CUDA 的作用如下:

并行计算加速:CUDA 允许开发者在 GPU 上并行执行计算任务,从而大幅提升计算性能。相比于传统的 CPU,GPU 拥有更多的处理核心和高并行计算能力,能够同时处理大量的数据和任务。CUDA 提供了编程模型和工具,使开发者能够有效地利用 GPU 的并行计算能力,加速各种计算密集型任务,如科学计算、深度学习、图形处理等。

深度学习加速:CUDA 在深度学习领域发挥着重要作用。深度学习模型通常具有大量的计算和参数,需要进行大规模的矩阵计算和神经网络训练。通过利用 CUDA,可以将这些计算任务映射到 GPU 上并行执行,加快深度学习模型的训练和推理速度,使其更加高效。

科学计算和数值模拟:CUDA 适用于各种科学计算和数值模拟任务,如物理模拟、天气预报、流体力学、分子动力学模拟等。这些任务通常需要大量的计算和数据处理,通过利用 GPU 的并行计算能力,可以大幅加速这些计算过程,缩短计算时间。

图形处理和渲染:CUDA 也用于图形处理和渲染领域。通过利用 GPU 的并行计算能力,可以加速图形渲染过程,实现更高质量的图形效果和更流畅的动画。

总的来说,CUDA 提供了一种强大的工具和编程模型,使开发者能够利用 GPU 的并行计算能力,加速各种计算密集型任务,包括深度学习、科学计算、图形处理等。它对于需要大规模并行计算的任务具有重要的意义,能够显著提升计算性能和效率。

问:没有cuda也可以使用GPU吗?

答:是的,即使没有 CUDA,也可以使用 GPU 进行计算加速,但 CUDA 是目前最常用和广泛支持的 GPU 计算平台和编程模型之一。

在没有 CUDA 的情况下,可以使用其他的 GPU 计算框架和库来进行 GPU 加速,例如 OpenCL、AMD ROCm、DirectX Compute Shader 等。这些框架和库提供了类似于 CUDA 的并行计算功能,并允许开发者在 GPU 上执行并行计算任务。

一些深度学习框架(如 TensorFlow 和 PyTorch)也提供了与多个 GPU 计算框架兼容的接口,以便在不同的 GPU 计算环境中进行加速计算。这些框架通常会根据可用的计算后端选择使用 CUDA 或其他 GPU 计算框架来进行计算加速。

总的来说,虽然 CUDA 是最常用和广泛支持的 GPU 计算平台,但在没有 CUDA 的情况下,仍然有其他的 GPU 计算框架和库可供选择,以实现 GPU 加速的计算任务。具体选择哪种 GPU 计算框架取决于你的需求和所使用的工具和库的兼容性。

问:cuda和pytorch有什么区别
ChatGPT
CUDA(Compute Unified Device Architecture)是由 NVIDIA 开发的并行计算平台和编程模型,用于利用 NVIDIA GPU 进行高性能计算和加速各种计算任务。它提供了一种方式,使开发者能够在 GPU 上编写并行计算任务,从而实现计算加速。

PyTorch 是一个开源的深度学习框架,它提供了丰富的工具和接口,用于构建和训练深度神经网络模型。PyTorch 支持使用 CUDA 进行 GPU 加速,允许在 GPU 上执行深度学习计算,从而加速模型的训练和推理过程。

区别如下:

功能和目的:CUDA 是一个并行计算平台和编程模型,旨在利用 GPU 进行高性能计算和加速各种计算任务。而 PyTorch 是一个深度学习框架,旨在提供丰富的工具和接口,简化构建和训练深度神经网络模型的过程。

使用范围:CUDA 可以用于各种计算密集型任务,包括科学计算、数值模拟、图形处理等。而 PyTorch 主要用于深度学习任务,如图像分类、目标检测、自然语言处理等。

编程模型:CUDA 提供了一种编程模型,允许开发者在 GPU 上编写并行计算任务,使用 CUDA C/C++、CUDA Python 等编程语言进行开发。而 PyTorch 使用 Python 作为主要的编程语言,并提供了高级的深度学习接口和自动求导功能。

生态系统和社区支持:CUDA 拥有广泛的生态系统和强大的社区支持,包括各种 GPU 计算库、工具和开发者社区。PyTorch 也拥有庞大的社区支持,并与其他深度学习框架兼容,提供了丰富的预训练模型和扩展库。

总的来说,CUDA 是一个 GPU 计算平台和编程模型,用于利用 GPU 进行高性能计算。而 PyTorch 是一个深度学习框架,使用 CUDA 来实现在 GPU 上进行深度学习计算的加速。CUDA 提供了底层的 GPU 编程能力,而 PyTorch 则提供了高级的深度学习接口和功能。

问:cuda是编程语言吗
答:
CUDA(Compute Unified Device Architecture)不是一种编程语言,而是由 NVIDIA 开发的并行计算平台和编程模型。

CUDA 平台允许开发者使用不同的编程语言(如 CUDA C/C++、CUDA Python、CUDA Fortran)来编写并行计算任务。这些编程语言使用 CUDA 提供的扩展和库函数,以利用 NVIDIA GPU 的并行计算能力。

CUDA C/C++ 是最常用的 CUDA 编程语言,它是一种基于 C/C++ 的编程语言扩展,提供了针对 GPU 的并行计算的语法和库函数。CUDA C/C++ 可以与常规的 C/C++ 代码混合使用,通过编写 CUDA 核函数和使用 CUDA 线程层次结构,开发者可以在 GPU 上进行并行计算。

除了 CUDA C/C++,CUDA 还提供了针对其他编程语言的扩展和工具。CUDA Python 是使用 Python 语言进行 GPU 编程的一种方式,通过使用 CUDA 提供的 Python 接口和库函数,开发者可以在 Python 中进行 GPU 加速的计算。此外,CUDA 还支持 Fortran 和其他编程语言的扩展,以满足不同开发者的需求。

总结来说,CUDA 并不是一种独立的编程语言,而是提供了对不同编程语言的扩展和支持,使开发者能够在 GPU 上进行并行计算任务。开发者可以使用 CUDA 提供的编程语言扩展来编写并行计算任务,并利用 NVIDIA GPU 的并行计算能力。

然后,自己在电脑是查一查

nvidia-smi

在这里插入图片描述
注意看,我这里cuda的版本是11.2,可我前两天把torch升级到version 1.13.1了,这是最新版,而它已经不支持cuda10.2和11.3版本了,哎,太悲伤了。
具体版本的对应请直接去官网查看,非常详细,一一对应
https://pytorch.org/get-started/previous-versions/
利用anaconda安装的方法

# CUDA 11.3
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
# CUDA 11.6
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

选择自己适合的安装即可。这么处理后cuda的问题就解决了,现在代码已经可以运行了
安装的时候注意区分,因为有pytorch和torch,虽然它俩是同一个对象,但是你要进行替换的话还是看清楚

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

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

相关文章

在Notion AI 中轻松打造您的AI私人助理,提供卓越的工作体验(二)

大家好&#xff0c;我是瓜叔。 notion AI在工作和生活场景中的应用 我们先来看"总结"功能。 这边有一篇文章叫做学习编码的好处。导入到nation https://www.likecs.com/show-203992587.html 导入方法详见上一篇文章&#xff1a;在Notion AI 中轻松打造您的AI私人助理…

VMware快照:简化虚拟化环境管理与数据保护

引言&#xff1a; 在虚拟化环境中&#xff0c;数据保护和灵活性是至关重要的。VMware快照作为一项强大的功能&#xff0c;为虚拟机管理者提供了便利和安全性。本文将介绍VMware快照的使用&#xff0c;以及它为用户带来的几个关键优势。 VMware快照是一项重要的功能&#xff0c…

Threejs进阶之十五:在Thereejs 使用自定义shader

目录 最终效果什么是 ShaderShaderMaterial类常用属性uniforms属性vertexShader属性fragmentShader属性 代码实现新建ShaderView.vue文件并引入Threejs定义初始化函数创建initMesh函数实例化ShaderMaterial类实例化TextureLoader()定义uniforms 全局变量定义vertexShader顶点着…

ad18学习笔记二:绘图工具栏、活动栏

在画原理图库的时候会经常用到顶上的绘图工具栏&#xff08;官方文档里叫做活动栏&#xff09;&#xff1a; 版本不同&#xff0c;上面的命令是不同的 ad如何自定义绘图工具栏&#xff1f; 网上介绍工具栏和设置的文章还挺多的&#xff0c;但是没有看到ad18是怎么增减绘图工具…

LeetCode高频算法刷题记录7

文章目录 1. 下一个排列【中等】1.1 题目描述1.2 解题思路1.3 代码实现 2. 两数相加【中等】2.1 题目描述2.2 解题思路2.3 代码实现 3. 括号生成【中等】3.1 题目描述3.2 解题思路3.3 代码实现 4. 滑动窗口最大值【困难】4.1 题目描述4.2 解题思路4.3 代码实现 5. 最小覆盖子串…

c++boost库学习-07-Message Queue

一、前言 boost中的消息队列&#xff08;Message Queue&#xff09;是进程间通信的一种机制&#xff0c;实际上是其内部也是采用共享内存的方式来达到进程间通信的目的。这也就意味这Message Queue有其局限性&#xff1a;只有处在同一台计算机中的不同进程才能使用消息队列进行…

在原有机械硬盘的基础上集装固态硬盘并装操作系统

1、加装固态硬盘 我的电脑出场自带的是机械硬盘&#xff08;即右边那个白色长方形&#xff0c;上面有类似于锡纸一样的东西&#xff09;&#xff0c;左边的这个光滑的正方形里面是内存条&#xff0c;可以拆开这个光滑的盖进行安装&#xff0c;而我们的固态硬盘装在左下角这个长…

性能测试——性能统计工具

性能统计工具 一、io监控命令1、io监控命令iostat2、io指标监控命令df 二、cpu监控命令1、cpu指标监控命令uptime2、cpu指标监控命令 cat /proc/cpuinfo3、cpu 指标监控命令 mpstat4、cpu指标监控命令 sar 三、mem指标监控命令1、mem指标监控命令 cat /proc/meminfo2、mem指标监…

KVM虚拟化(二)

文章目录 4.7 kvm虚拟机克隆4.7.1 完整克隆4.7.2 链接克隆 4.8 kvm虚拟机的桥接网络4.8.1 创建桥接网卡4.8.2 新虚拟机使用桥接模式4.8.3 将已有虚拟机网络修改为桥接模式 4.9 热添加技术4.9.1 kvm热添加硬盘4.9.2 kvm虚拟机在线热添加网卡4.9.3 kvm虚拟机在线热添加内存4.9.4 …

自动化测试技术解析:Appium、Sikuli与MonkeyTalk

目录 前言&#xff1a; 一、Appium自动化测试框架 它的优点是&#xff1a; 二、Sikuli自动化测试工具 它的优点是&#xff1a; 三、MonkeyTalk自动化测试工具 它的优点是&#xff1a; 四、代码样例 总结&#xff1a; 前言&#xff1a; 随着移动应用的普及&#xff0c;…

手把手教你通过PaddleHub快速实现输入中/英文本生成图像(Stable Diffusion)

近来&#xff0c;基于Diffusion的文图生成模型比较火&#xff0c;用户输入一句话&#xff0c;模型就可以生成一副对应的图像&#xff0c;还是很有意思的。本文记录了通过PaddleHub快速实现上述任务的过程&#xff0c;以供参考。 1、安装PaddlePaddle PaddleHub底层依赖于百度…

ChatGPT工作提效之生成开发需求和报价单并转为Excel格式

ChatGPT工作提效之生成开发需求和报价单并转为Excel格式 一、提出需求如何撰写百度地图标注开发的需求文档 二、针对性地连续提问推荐下一下百度地图标注文档的详细需求列表如何撰写百度地图标注开发的技术规范如何确定百度地图标注开发后的部署计划... 三、生成报价单四、运营…

【2023 · CANN训练营第一季】进阶班 应用开发深入讲解→模型推理

1 模型离线推理 各步要解析如下: Host&Device内存管理与数据传输: Host&Device上的内存申请与释放&#xff0c;内存间的相互拷贝;模型加载:将离线的om文件加载到Device上;在样例的资源初始化模块中进行。模型输入输出准备∶根据禹线om的输入输出&#xff0c;在Device…

微信小程序富文本组件mp-html

功能介绍 支持在多个主流的小程序平台和 uni-app 中使用支持丰富的标签&#xff08;包括 table、video、svg 等&#xff09;支持丰富的事件效果&#xff08;自动预览图片、链接处理等&#xff09;支持设置占位图&#xff08;加载中、出错时、预览时&#xff09;支持锚点跳转、…

【Linux】在Linux操作系统下对于权限的理解

目录 ❤️前言 正文 Linux下的不同用户 Linux的权限管理 文件访问者的分类 文件类型和访问权限 文件访问权限的修改方法 默认权限 目录权限 粘滞位 &#x1f340;结语 ❤️前言 大家好&#xff01;今天这篇文章主要是关于Linux操作系统下对于各种权限的理解问题&#…

AI人工智能预处理数据的方法和技术有哪些?

AI人工智能 预处理数据 在人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;领域中&#xff0c;数据预处理是非常重要的一环。它是在将数据输入到模型之前对数据进行处理和清洗的过程。数据预处理可以提高模型的准确性、可靠性和可解释性。 本文将…

Springboot +spring security,基于多种方式配置登录用户:memory、jdbc、MyBatis

一.简介 前面章节所有的用户信息(用户名和密码)都是基于配置文件配置的&#xff0c;这篇文章学习基于多种方式配置登录用户&#xff0c;比如&#xff1a; memory&#xff08;内存&#xff09;jdbcMyBatis 二.创建项目 如何创建一个SpringSecurity项目&#xff0c;前面文章已…

Python入门【序列、列表简介、列表的创建 、列表元素的增加、列表元素的删除 】(四)-全面详解(学习总结---从入门到深化)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

微服务架构初探

大家好&#xff0c;我是易安&#xff01;我们今天来谈一谈微服务架构的前世今生。 我们先来看看维基百科是如何定义微服务的。微服务的概念最早是在2014年由Martin Fowler和James Lewis共同提出&#xff0c;他们定义了微服务是由单一应用程序构成的小服务&#xff0c;拥有自己的…

chatgpt赋能Python-pythonfalse

PythonFalse&#xff1a; Python中的False值 在Python编程语言中&#xff0c;布尔(Boolean)是一种基本数据类型&#xff0c;它只有两个值&#xff1a;True和False。这篇文章将讨论Python中的False值&#xff0c;并提供有关如何使用它的指南。 什么是PythonFalse PythonFalse…