TensorFlow2.8安装

一·GPU版本

前言,2.10和2.11都缺少很多DLL文件,而且找不全,2.12解压就会出现问题,2.8是我目前发现的能用的版本了,全部一模一样复刻。今天是7月26号,GPU只有2.10版本之前的,2.11和2.12只有CPU版本,我居然才知道,痛苦面具。

结论tensorflow2.8.0  配合 cuda 11.8 +cudnn8.9 可行!

1.1. GPU三个要求

第一 cuda toolkit 9.0  并有相关驱动  加入环境变量

第二 支持的显卡(N卡才行)Compute capability >3.0或者3.5的卡

第三 cuDnn 7.0 并加入环境变量

1.2. 查看方式

1.2.1 设备管理器显示确定有无驱动

1.2.2 去官网查计算能力,基本750以上才行

CUDA GPUs - Compute Capability | NVIDIA Developer

 1.2.3 查看电脑的cuda版本

NAVIDIA控制面板中左下角系统信息——组件 

12.1显然可以

1.3操作步骤

1.3.1 对应官网下载对应版本的cuda和cudnn,版本可以低,不能高了,地址:CUDA Toolkit Archive | NVIDIA Developer   cudnn  的下载地址如下:cuDNN Archive | NVIDIA Developer

下载12.0.0版本的cuda,并下载对应的cudnn

 选择了local版本的

 尝试个最新的,希望别出错

1.3.2 cuda安装 自定义 ——默认路径安装——结束,这时候会生成两个系统变量,查看方式:

此电脑——属性——高级系统设置——环境变量——系统变量 ,在系统变量中找到path,去里面加另外两条,前两条应该本来就有,把后两条加上,最终有四条路径见截图

1.3.3 cuDnn安装 ,安装完了直接复制粘贴到duda安装目录文件中,给他覆盖了就完事儿了。完了我的没有覆盖选项,他们没有重合的部分,不会出问题了吧。

1.3.4 测试cuda版本,见证奇迹的时候到了,打开cmd,输入指令:nvcc -V

nice成功了,大佬牛X 

二·Anaconda配环境(我自己有,省略安装,直接配)

2.1配置环境

2.1.1查看

打开Anaconda Prompt,输入命令

conda --version查看安装的版本

conda env list查看已经安装的环境,右边“*”表示当前使用的环境

 2.1.2 创建

创建tensorflow环境,输入命令:conda create -n tensorflow python=3.9

注意环境命名不要叫tensorflow,不要和包的名字重合,后面后出bug,我给他改成了tf2.6

conda create -n tf python=3.8

创建成功后,查看环境然后用activate激活:activate tensorflow

因为我的conda环境在D盘中,所以将路径改了以下!很重要。如果anaconda安装的时候是默认路径,这一步不需要。

\anaconda3\envs\tf2.8

 很重要奥,要不然装什么都白装

2.1.2 安装GPU版本的TensorFlow

安装tensorflow-gpu版本的,可以输入命令:pip install --ignore-installed --upgrade tensorflow-gpu

这一条失败了 ,是pip的问题,问了GPT说最好使用conda,这个时候GPT就是埋下的雷,因为国内需要科学上网,导致出现了SSL代理问题,把梯子关了就好了。

使用命令:pip install tensorflow-gpu  就搞定了,下载了挺久的,下载不了的见这篇文章(PS:我就是照着这篇文章做的,很全面,当然这个文档也是写给自己看的。)

(90条消息) tensorflow详细安装教程(Win10, Anaconda,Python3.9)_tensorflow安装教程_Yan_Yancy的博客-CSDN博客

 2.1.3 手动下载

我就知道没那么好整,2.10和2.11都是DLL问题,2.12是setup文件的问题,目前还是得2.8

手动到这个网站下载,去找这个Feb 2 的版本,有人分享了这个缺少的唯一一个DLL,救了大命了。

tensorflow-gpu · PyPI

 下载完了放到对应环境的bin中,对我如下

之后输入命令:pip install tensorflow_gpu-2.8.0-cp39-cp39-win_amd64.whl

如果有网速问题,照着前文解决(90条消息) tensorflow详细安装教程(Win10, Anaconda,Python3.9)_tensorflow安装教程_Yan_Yancy的博客-CSDN博客

下载好了以后就是done,确定的时候,可以用:pip show  tensorflow-gpu看看版本号,有就对了

2.1.4 补充DLL

这时直接进2.2.2验证,会出这个问题,其实挺好的,2.10.0报的错巨长,头都裂开了

 去下载一个DLL,文件由前文博主分享,在下仅仅复制粘贴,我缺少的是cudart64_110.dll,博主当时缺少的是cusolver64_11.dll

链接:https://pan.baidu.com/s/1W9fR2N_hoVD-7_ODtOiJhg
提取码:u65i

这是11.2缺少的dll文件,11.8应该不缺,至少我不缺

下载好了以后放到这里,对应环境的bin中,里面全是dll,肯定错不了

 解决方法是到这个网站下载一个,然后方到C:\Windows\System32目录里,解决了问题

Download missing DLL files for free | DLL‑files.com

2.1.5 protobuf问题

我的是4.几的版本,要我降到3.20以下。

 pip uninstall protobuf

pip install protobuf==3.20.1就完了,希望没事儿了。

2.1.6 cuda版本问题(前面的雷)

 缺少dll文件,而且一缺就是一组,这个时候对比自己的

在其他人的网盘里下载了一套_10的DLL文件,总之都不对,这是cuda版本的问题,需要v11.2的cuda,卸了重下。PS:我最后没有卸载新版本(12.0)的,只是把旧版本(11.8)下载了一份,然后调整了环境变量,让旧版本在前面即可。

(91条消息) windows下CUDA的卸载以及安装_卸载cuda_hi_1900的博客-CSDN博客

2.2 查看和验证

2.2.1 查看

输入命令:pip show tensorflow-gpu,可以查看tensorflow的版本信息,我这里查不到tensorflow,只能查到 tensorflow-gpu 所以最好直接到集成的环境spider或者pycharm里面试一试测试代码,能引入就好了

 2.2.2 验证

在自己pycharm中加入一个解释器,选择到环境的位置中的python.exe即可。

 之后调用测试代码,分两个,一个市能不能引用,一个是测试速度。

第一个:

import tensorflow as tf
a = tf.constant(1.)
b = tf.constant(2.)
print(a+b)
print(tf.__version__)
print(tf.test.gpu_device_name())
print('GPU:',tf.config.list_physical_devices(device_type='GPU'))
print('CPU:',tf.config.list_physical_devices(device_type='CPU'))
print(tf.test.is_gpu_available())

结果: 

第二个:

import tensorflow as tf
import timeit
#指定在cpu上运行
def cpu_run():
    with tf.device('/cpu:0'):
        cpu_a = tf.random.normal([10000, 1000])
        cpu_b = tf.random.normal([1000, 2000])
        cpu_c = tf.matmul(cpu_a, cpu_b)
        # print( "cpu_a: ", cpu_a.device)
        # print( "cpu_b: ", cpu_b.device)
        # print("cpu_c:", cpu_c.device)
    return cpu_c

#指定在gpu上运行

def gpu_run():
    with tf.device( '/gpu:0'):
        gpu_a = tf.random. normal([ 10000,1000])
        gpu_b = tf.random. normal([ 1000, 2000])
        gpu_c = tf.matmul(gpu_a, gpu_b)
        # print( "gpu_a: ", gpu_a.device)
        # print("gpu_b: ", gpu_b.device)
        # print("gpu_c: ", gpu_c.device)
    return gpu_c

cpu_time = timeit.timeit(cpu_run, number = 10)
gpu_time = timeit.timeit(gpu_run, number = 10)
print('cpu:',cpu_time, 'gpu:',gpu_time)

结果:

请注意,第一次跑的时候,跑得慢是很正常的,第二次就快了。 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值