tensorflow gpu windows配置步骤教学

本文主要针对在windows10环境下的tensorflow配置问题,在linux和mac等其他环境中的配置就不过多赘述(windows总是那个问题最多的环境,建议使用linux 😃)。

本文中配置的环境为 python 3.8.5 tensorflow-gpu 2.4.1

1. 更新nvidia显卡驱动至最新

测试用显卡为 RTX 2070,如果不确定自己的显卡是否适配,可以登录nvidia官网进行查询。

2. 下载cuda 11.0

[cuda 11.0 下载地址]
注意适配tensorflow 2.4 版本的cuda 一定是11.0,而不是11.1,11.2或者其他版本,下载其他版本的cuda会导致库缺失的问题。
cuda的默认安装路径为 C:\Program Files\NVIDIA GPU Computing Toolkit

3. 下载cudnn 8.0.4用于适配TF 2.4 以及cuda 11.0

[cudnn 8.0.4 下载地址]
下载完毕cudnn后解压,分别将子文件夹 bin,include,lib/x64中的文件拷贝至cuda/v11.0 对应的同名文件夹中。

4. 使用anaconda为tensorflow-gpu 配置一个python环境

# 创建一个名称为 tf 版本为3.8.5的anaconda python环境
conda create -c conda-forge python=3.8.5 -n tf
conda activate tf

安装版本为2.4.1的tensorflow-gpu

pip install tensorflow-gpu==2.4.1

5. 常见问题

1.

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

这个问题一般是由于cuda版本与tensorflow gpu不兼容导致的,如果没有使用tensorflow2.4而是使用了旧版的tensorflow。可以参考下表重新下载对应的cuda配件。多个cuda版本是不会互相影响的,因此不用担心cuda文件夹中存在多个不同的版本。
遇见这个报错一定不要仅仅只复制了这个dll配置文件到指定文件夹,这会导致隐形bug,tensorflow会在进入feed数据阶段时停止。
在这里插入图片描述

2. 测试环境

用于识别目前available的gpu的个数。

print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

确认所有的库都可以成功打开且可用gpu个数不为0即可宣告配置完成。

2021-03-15 15:12:17.673193: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
2021-03-15 15:12:17.691692: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublas64_11.dll
2021-03-15 15:12:17.698596: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublasLt64_11.dll
2021-03-15 15:12:17.711218: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cufft64_10.dll
2021-03-15 15:12:17.720665: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library curand64_10.dll
2021-03-15 15:12:17.735681: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusolver64_10.dll
2021-03-15 15:12:17.746699: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusparse64_11.dll
2021-03-15 15:12:17.754405: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudnn64_8.dll
2021-03-15 15:12:17.759877: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0
Num GPUs Available:  1

其他的anaconda中配置环境的代码可以参考下文 :
[Anaconda安装tensorflow报错问题解决方法]

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

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

相关文章

【BJOI 2019】奥术神杖

题意 你有一个长度为 $n$ 的模板串(由 $0-9$ 这 $10$ 个数字和通配符 $.$ 组成),还有 $m$ 个匹配串(只由 $0-9$ 这 $10$ 个数字组成),每个匹配串有一个魔力值 $v_i$。你要把模板串的每个 $.$ 都换成一个数字…

C# 篇基础知识10——多线程

1.线程的概念 单核CPU的计算机中,一个时刻只能执行一条指令,操作系统以“时间片轮转”的方式实现多个程序“同时”运行。操作系统以进程(Process)的方式运行应用程序,进程不但包括应用程序的指令流,也包括运…

快速理解binary cross entropy 二元交叉熵

Binary cross entropy 二元交叉熵是二分类问题中常用的一个Loss损失函数,在常见的机器学习模块中都有实现。本文就二元交叉熵这个损失函数的原理,简单地进行解释。 首先是二元交叉熵的公式 : Loss−1N∑i1Nyi⋅log⁡(p(yi))(1−yi)⋅log(1−p(yi))Loss …

Docker搭建自己的GitLab

Docker搭建自己的GitLab docker 介绍 **GitLab: ** GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 **Docker: ** Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖…

flowable 任务节点多实例使用

我们在使用Flowable 工作流引擎的时候,最常用的肯定是任务节点,因为在OA系统、审批系统、办公自动化系统中核心的处理就是流程的运转,在流程运转的时候,可能我们有这样的一个需求,在一个任务节点的时候,我们…

Linux的目录结构

Linux文件系统是呈树形结构,了解Linux文件系统的目录结构,对于我们驾驭Linux还是有必要的。 目录 说明 / Linux文件系统的入口,也是处于最高一级的目录 /bin 基本系统所需要的命令。功能和/usr/bin类似,这个目录中的文件都是…

一文看懂卷积神经网络CNN的核心

在之前,我总结了关于计算机神经网络与梯度下降的核心,详见下文链接 : 一文看懂计算机神经网络与梯度下降 本文主要会对图像相关的机器学习中最为重要的网络,卷积神经网络作个人的理解分析。 1. 为什么要使用卷积神经网络 在讲述原理之前&am…

[LeetCode] Two Sum

一刷&#xff1a; import java.util.Arrays;public class Solution1 { public int[] twoSum(int[] nums, int target) {int[] indexnew int[2];int sum0;for (int i 0; i < nums.length; i) {for (int j i1; j < nums.length; j) {sumnums[i]nums[j];index[0] i;index[…

机器学习理论梳理2 : KNN K近邻分类模型

本文主要梳理KNN&#xff0c;K近邻模型的基本原理。 从机器学习的大分类来看&#xff0c;K近邻模型属于监督学习中的一种判别式模型&#xff0c;常用于分类问题。初始的数据集中&#xff0c;包含了已经分类标签好的数据。一句话来说&#xff0c;K近邻模型就是通过计算实例与现…

docker安装配置gitlab详细过程

1、方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2、方法二 如果服务器网路不好或者pull不下来镜像&#xff0c;只能在其它网路比较好的机器上pull下来镜像&#xff0c;导出成一个文件&#xff0c; 再下载上传到网路不好的机器上&#xff0c;然后再从文件中导出来&am…

集合对偶律:分别用图文证明

集合几个法则&#xff1a; 求证&#xff1a; 注&#xff1a;右上角C表示此集合的补集/余集 语言描述&#xff1a;A 并 B的补集 A的补集 交 B的补集 A交B的补集 A的补集 并 B的补集 文字证明&#xff1a;&#xff08;思路&#xff1a;证明两个集合相等&#xff0c;可证两集合…

keras实现嘴唇图像autoencoder

本文分享了我在silent speech 项目过程中实现的基于嘴唇图像数据集的autoencoder自编码器。输入输出都是64∗6464*6464∗64的嘴唇灰度图。自编码器由编码解码两个部分构成&#xff0c;同时实现了利用checkpoint在每个epoch运算时&#xff0c;自动保存测试集loss更小的模型。 数…

historyReverser array reverse

historyReverser & array reverse "use strict";/**** author xgqfrms* license MIT* copyright xgqfrms** description historyReverser* augments Reverse 逆向 / Recursive 递归* example* link**/const historyReverser (datas [], text , debug false)…

pip国内加载速度慢解决方法

在国内使用pip安装包时有时会发现安装速度非常慢&#xff0c;甚至连接不上源。 为了加快pip的下载速度&#xff0c;我们可以主动使用 -i命令来切换到国内源。 下面放出实测好用的国内源 : 清华&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&#xff1a;http:…

oracle--导出、导入blob类型的字段

oracle--导出、导入blob类型的字段 blob是oracle中的一个数据类型&#xff0c;保存的是压缩后的二进制形式的大数据。 数据迁移如果涉及到blob字段&#xff0c;都不好处理&#xff0c;因为无法用常规方法进行操作&#xff0c;如&#xff1a;使用select查看该字段&#xff0c;…

深度学习分布式训练小结

分布式训练本质上是为了加快模型的训练速度&#xff0c;面对较为复杂的深度学习模型以及大量的数据。单机单GPU很难在有限的时间内达成模型的收敛。这时候就需要用到分布式训练。 分布式训练又分为模型并行和数据并行两大类。 1. 数据并行 数据并行在于将不同batch的数据分别…

MAC配置JCO,与找不到sapjco3异常

①到jco官网下载jco压缩包&#xff0c;解压 ②把libsapjco3.jnilib 放到一个文件夹中 把该路径配置到环境变量中 ③项目运行有可能会出现异常&#xff1a;找不到 sapjco3 &#xff1b; 第一种解决方式&#xff1a;配置虚拟机参数&#xff1a;-Djava.library.path之前环境变量路…

Java高并发之BlockingQueue

前言碎语 当系统流量负载比较高时&#xff0c;业务日志的写入操作也要纳入系统性能考量之内&#xff0c;如若处理不当&#xff0c;将影响系统的正常业务操作&#xff0c;之前写过一篇《spring boot通过MQ消费log4j2的日志》的博文&#xff0c;采用了RabbitMQ消息中间件来存储抗…

IP通信基础回顾2(第三周)

1.TCP报文 序号字段占4个字节。TCP连接中传送的数据流中每一个字节都编上一个序号。序号字段的值则是本报文段所发送的数据第一个字节的序号。 确认序号占4个字节。是期望收到的对方的下一个报文段字节胡序号。首部长度占4个字节。指出TCP首部长度在20-60字节之间&#xff0c;所…

ThreadPoolExecutor线程池 + Queue队列

1&#xff1a;BlockingQueue继承关系 java.util.concurrent 包里的 BlockingQueue是一个接口&#xff0c; 继承Queue接口&#xff0c;Queue接口继承 Collection BlockingQueue----->Queue-->Collection 图&#xff1a; 队列的特点是&#xff1a;先进先出&#xff08;FIFO…