Windows安装GPU环境CUDA、深度学习框架Tensorflow和Pytorch

news2024/12/23 13:22:33

Windows安装GPU环境CUDA、深度学习框架Tensorflow和Pytorch

1、未安装CUDA使用tensorflow报错

import tensorflow as tf
2022-03-06 15:14:38.869955: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2022-03-06 15:14:38.870236: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

2、CUDA介绍

首先需要安装GPU环境,包括cuda和cudnn。

深度学习本质上就是训练深度卷积神经网络。

cuda:显卡能够完成并行计算任务,所有的操作是比较底层的、复杂的。

cudnn:在cuda之上有一个专门用于深度神经网络的SDK库来加速完成相关特定的深度学习操作,是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如caffe、tensorflow、pytorch、mxnet等。cudnn简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是调整性能,同时还可以在GPU上实现高性能现代并行计算。
cuda就是用来定义显卡并行运算的一些列底层GPU操作库,cudnn则是在cuda基础上专门正对深度学习定制的高级GPU操作库。
在这里插入图片描述
在这里插入图片描述
这里我们匹配的版本是CUDA 11.0

3、安装CUDA

根据 Nvidia 的说法,CUDA 内核现在提供浮点和整数运算的并发执行,以提高现代游戏计算密集型工作负载的性能。
查询Tensorflow版本与CUDA的匹配关系
在这里插入图片描述
tensorflow_gpu-2.4.0

3.1 下载CUDA

https://developer.nvidia.com/cuda-downloads
在这里插入图片描述
选择Windows,打开cmd查看windows版本
在这里插入图片描述
在这里插入图片描述
安装完,在Anaconda中,输入nvcc -V 进行测试

Anaconda的使用教程可以查看之前的文章:
Python如何使用和配置Anaconda入门

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Thu_Feb_10_19:03:51_Pacific_Standard_Time_2022
Cuda compilation tools, release 11.6, V11.6.112
Build cuda_11.6.r11.6/compiler.30978841_0

CUDA的下载链接:https://developer.nvidia.com/cuda-toolkit-archive
cudnn的下载链接:https://developer.nvidia.com/cuda-downloads

3.2 CUDA下安装Tensorflow

激活Anaconda虚拟环境

conda activate  tfenv_py37
conda install tensorflow-gpu
Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
import tensorflow as tf
2022-03-06 16:21:03.223773: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
Cannot dlopen some GPU libraries.Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...

安装了最新的,版本不匹配,需要根据显卡的CUDA版本,选择对应的CUDA

3.3 测试Tensorflow

import tensorflow as tf

a = tf.constant(2)
Could not load dynamic library 'cudnn64_8.dll'; dlerror: cudnn64_8.dll not found

在这里插入图片描述
下载地址:https://developer.nvidia.com/rdp/cudnn-download

3.4 安装CUDNN

在这里插入图片描述
下载链接:https://developer.nvidia.com/rdp/cudnn-archive
在这里插入图片描述
在这里插入图片描述
解压
在这里插入图片描述
复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0

3.5 再次通过Tensorflow测试CUDA

import tensorflow as tf
tf.test.gpu_device_name()   # 显示显卡型号

print(tf.test.is_gpu_available())  # 提示True
Not creating XLA devices, tf_xla_enable_xla_devices not set

解决方案

os.environ['TF_XLA_FLAGS'] = '--tf_xla_enable_xla_devices' os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

其实这是由于Tensorflow 2.4版本新特性所致,可以**直接忽略,**看看2.4版本的release就一目了然,并不是很多博客说的版本对应问题,回退到老版本治标不治本。
如果需要用XLA,添加TF_XLA_FLAGS=–tf_xla_enable_xla_devices即可解决该warning。

4、安装pytorch

PyTorch 的速度表现胜过 TensorFlow和Keras 等框架。PyTorch 是所有的框架中面向对象设计的最优雅的一个。

PyTorch主要用来进行深度学习算法建模和推理,为了加快算法训练速度,一般情况下需要使用带GPU的电脑进行Pytoch安装,为了让PyToch能够使用GPU资源,需要安装GPU环境,包括CUDA和CUDNN。
安装Pytorch

conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch
# CUDA 11.0
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

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

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

相关文章

Django | 一文完美解决admin增加新用户只有用户名密码和确认密码的问题

文章目录 如图所示,下面给出解决方案: 如果您使用 使用 Django 默认的后台管理界面添加用户时,只看到了三个字段(通常是 username、password和 repassword),那么可以通过定义 add_fieldsets 属性来增加更多…

【JUC】原子操作类

【JUC】原子操作类 文章目录 【JUC】原子操作类1. 原子操作类1.1 基本类型原子类1.2 数组类型原子类1.3 引用类型原子类1.3.1 AtomicReference1.3.2 AtomicStampedReference1.3.3 AtomicMarkableReference 1.4 对象的属性修改原子类 1. 原子操作类 原子操作类如下所示&#xf…

【Linux】进程间通信 --- 管道 共享内存 消息队列 信号量

等明年国庆去西藏洗涤灵魂,laozi不伺候这无聊的生活了 文章目录 一、进程间通信1.什么是通信?(IPC)2.为什么要有通信?(多进程协同)3.如何进行通信? 二、基于文件系统的管道通信1.通信…

acwing17给了一个头节点,从尾到头输出链表的元素,顺便练练容器

方法一 建立一个数组,从头到尾遍历一遍链表,然后将链表的每个元素的值赋给数组 犯了一个错误 新建的vector容器是一个可变长的数组,要想像数组下标那样访问前提是这个下标所指向的元素得存在,这也就跟那个声明一维数组得写出长度来…

rk3568 适配摄像头 (CIF协议)

rk3568 适配摄像头 (CIF协议) 在RK3568处理器中,支持CIF协议的摄像头可以通过CSI接口连接到处理器,实现视频数据的采集和处理。同时,RK3568还支持多种图像处理算法和编解码器,可以对采集到的视频数据进行实时处理和压缩&#xff…

[Golang实战] 带你入手gin框架使用,以项目为例

😚一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:算法学习 &am…

Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码

Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码 如需转载请标明出处:https://blog.csdn.net/itas109 技术交流:129518033 环境: OS: windows 10 / Ubuntu 22.04 imgui: 1.89.5 glw: 3.3.8前言 Dear ImGui 是一个 用于…

alibaba arthas的新人上手教程

背景 Arthas 是Alibaba开源的Java诊断工具。 github开源地址:GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas 上手教程 1.下载arthas,并测试运行demo curl -O https://arthas.aliyun.com/arthas-boot.j…

高防IP的定义与作用

随着网络技术的发展,网络攻击的频率和威力不断升级,对企业和个人的网络安全造成了巨大风险。于是,高防IP作为一种网络安全防护工具应运而生,成为广大用户保障网络安全的重要手段。接下来让我们一起来详细了解下高防IP的定义和作用…

web实验(1)

(1) 应用html和css完成如图所示界面效果。内容相对于浏览器居中,图标见附件disc.jpg。 说明: 内容相对于浏览器居中,图标见附件disc.jpg盒子边框1px solid #ccc,内边距20px文本字体颜色#122e67&#xff…

outlook邮箱pc/mac客户端下载 含最新版

新的 Outlook for Windows or mac 为 Outlook 应用带来了最新功能、智能辅助功能和新的新式简化设计。 你可以根据自己的风格定制它,并使用新的 Outlook for Windows/mac 执行更多操作! 览版,与我们一起开始旅程,并帮助我们塑造新…

SSM整合完整流程

🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在某公司实习&#x1f…

Django--DRf---序列化器:序列化器嵌套

模型表: from django.db import models# Create your models here.class StudentModel(models.Model):id models.AutoField(primary_keyTrue)name models.CharField(max_length32,verbose_name姓名)age models.SmallIntegerField(verbose_name年龄)class_mate_f…

人人可用的开源数据可视化分析工具-DataEase

DataEase 介绍 DataEase是一种开源的关系型数据库管理系统,旨在帮助用户创建和管理各种类型的数据。它是一种易于使用的工具,适用于各种规模的企业和组织,从个人使用到大型公司使用。 Github 地址:GitHub - dataease/dataease: …

2023年4月份上新的Transformer模型设计系列论文(附下载链接)

来源:投稿 作者:王老师 编辑:学姐 论文1 论文标题: Slide-Transformer: Hierarchical Vision Transformer with Local Self-Attention** 滑动Transformer:具有局部自注意的分层视觉Transformer 论文链接:h…

ChatGPT 克隆方案,开源了!开箱即用

什么是 ChatGPT ChatGPT是一种基于人工智能技术的大型语言模型,它能够理解和处理人类自然语言,并且在回答问题、生成文本和模拟对话等方面表现出色。ChatGPT使用的是GPT-3.5架构,它在训练过程中接触了大量的语言数据,并利用这些数…

机器学习算法系列(四)-- 决策树

机器学习算法之–决策树 最经典的机器学习模型之一,成树型结构,决策树的目的是为了产生一颗泛化能力强,处理未见实例能力强的树,通过特征判断不断分类,基本流程遵循“分而治之”的递归分类策略。 一、算法原理 1.1、特…

《C++程序设计原理与实践》笔记 第17章 向量和自由空间

本章和后面四章介绍C标准库的容器和算法部分(通常称为STL)。本章和后面两张的重点是最常用、最有用的STL容器——向量的设计和实现。 17.1 引言 C标准库中最有用的容器是vector。vector提供了给定类型的元素序列。标准库vector是一个方便、灵活、&…

Redis从零上手

文章目录 NoSQL概述互联网发展史单机MySQL的年代(90年代)缓存时代: Memcached MySQL 垂直拆分(读写分离)分库分表 水平拆分(MySQL集群)如今最近的年代 为什么要用NoSQL什么是NoSQLNoSQL特点阿里巴巴演进分析阿里巴巴中文站架构发展历程简单分析 NoSQL…

MySQL架构设计其实很简单

一、概述 我们很多互联网项目首选的数据库就是MySql5.7,因为免费,支持数据库主从复制,读写分离,且语法简单,容易上手,虽然对sql的函数、触发器、存储过程有一定的了解,也能说出一些优化sql语句…