Tensorflow1 搭建Cuda11

news2025/2/2 10:46:25

前言

Tensorflow1中默认支持cuda10及以下的,最高的版本Tensorflow1.15默认使用cuda10;但是一些高性能的显卡,比如A100、3090等,它们只支持Cuda11的,这就不太友善了,毕竟不少项目依赖Tensorflow1搭建的。

本文整理2种方法,一种是基于Conda搭建的,一种是基于docker搭建的,都测试过可用的。

目录

一、基于Conda搭建Tensorflow1  Cuda11

1.1 环境搭建

1.2 查看环境的库

1.3 验证环境

二、基于docker搭建Tensorflow1  Cuda11

2.1 环境搭建

2.1  查看环境的库

 1.3 验证环境


一、基于Conda搭建Tensorflow1  Cuda11

这种方法,前提是支持Conda,安装好显卡驱动,即可;

环境基本信息:python3.8、Tensorflow1.15、cuda11.8(2022-12-20,后面可能会更高);

1.1 环境搭建

先创建一个Conda环境,命名为tf1_cuda11

conda create -n tf1_cuda11 python=3.8

创建好后,进入环境,

conda activate tf1_cuda11

然后更一下pip, pip install --upgrade pip 

下面开始安装了:

pip install nvidia-pyindex
pip install nvidia-tensorflow[horovod]
pip install nvidia-tensorboard==1.15

安装过程,可能会比较满,可以使用国内软件源加速(我用了清华的)

  • 清华:https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云:http://mirrors.aliyun.com/pypi/simple/
  • 豆瓣:http://pypi.douban.com/simple/

使用示例:pip install nvidia-tensorflow[horovod] -i https://pypi.tuna.tsinghua.edu.cn/simple

开始安装:

安装完成:

 

1.2 查看环境的库

用pip list能看到如下的库

(tf1_cuda11) liguopu@LGP:~/2022work$ pip list
Package                  Version
------------------------ --------------
absl-py                  1.3.0
astor                    0.8.1
astunparse               1.6.3
certifi                  2022.9.24
cloudpickle              2.2.0
gast                     0.3.3
google-pasta             0.2.0
grpcio                   1.51.1
h5py                     2.10.0
importlib-metadata       5.2.0
Keras-Applications       1.0.8
Keras-Preprocessing      1.1.2
Markdown                 3.4.1
MarkupSafe               2.1.1
numpy                    1.21.6
nvidia-cublas-cu11       11.11.3.6
nvidia-cuda-cupti-cu11   11.8.87
nvidia-cuda-nvcc-cu11    11.8.89
nvidia-cuda-runtime-cu11 11.8.89
nvidia-cudnn-cu11        8.7.0.84
nvidia-cufft-cu11        10.9.0.58
nvidia-curand-cu11       10.3.0.86
nvidia-cusolver-cu11     11.4.1.48
nvidia-cusparse-cu11     11.7.5.86
nvidia-dali-cuda110      1.18.0
nvidia-dali-nvtf-plugin  1.18.0+nv22.11
nvidia-horovod           0.26.1+nv22.11
nvidia-nccl-cu11         2.16.2
nvidia-pyindex           1.0.9
nvidia-tensorboard       1.15.0+nv21.4
nvidia-tensorflow        1.15.5+nv22.11
opt-einsum               3.3.0
packaging                22.0
pip                      22.3.1
protobuf                 3.20.3
psutil                   5.9.4
PyYAML                   6.0
setuptools               65.5.0
six                      1.16.0
tensorboard              1.15.0
tensorflow-estimator     1.15.1
tensorrt                 8.5.2.2
termcolor                2.1.1
webencodings             0.5.1
Werkzeug                 2.2.2
wheel                    0.37.1
wrapt                    1.14.1
zipp                     3.11.0
(tf1_cuda11) liguopu@LGP:~/2022work$ 
 

1.3 验证环境

验证环境是否可用,新建一个python文件,编写测试程序:

import  tensorflow as tf
 
tensorflow_version = tf.__version__
 
#以下两行代码适合有“布置GPU环境的”
gpu_available = tf.test.is_gpu_available()
print("tensorflow version:", tensorflow_version, "\tGPU available:", gpu_available)
 
#以下一行代码适合没有“布置GPU环境的”,纯CPU版本的
#print("tensorflow version:", tensorflow_version)
 
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([1.0, 2.0], name="b")
result = tf.add(a, b, name="add")
print(result)

 看到输出,如下信息:

 搭建完成~

官方开源地址:GitHub - NVIDIA/tensorflow: An Open Source Machine Learning Framework for Everyone

如果环境出现module 'numpy' has no attribute 'object'问题,可以pip install numpy==1.21.6,即可。

二、基于docker搭建Tensorflow1  Cuda11

这种方法,前提是支持docekr(版本最好是19以上),安装好显卡驱动,即可;

环境基本信息:python3.8、Tensorflow1.15、cuda11.8(2022-12-20,后面可能会更高);

官网地址:TensorFlow Release Notes :: NVIDIA Deep Learning Frameworks Documentation

2.1 环境搭建

 这里使用docker拉镜像即可,命令如下:

docker pull nvcr.io/nvidia/tensorflow:22.10-tf1-py3

其中可以自由选择cuda的版本,我是选择了最新22.10,对应Tensorflow1.15、cuda11.8

镜像拉完后,看一下是否在本地了,docker images

它是:nvcr.io/nvidia/tensorflow  : 22.11-tf1-py3 (大小是15GB)

 

进入镜像:

docker run --gpus all  -it nvcr.io/nvidia/tensorflow:22.11-tf1-py3 /bin/bash

2.1  查看环境的库

用pip list能看到如下的库

root@2b0e63caaf4d:/workspace# 
root@2b0e63caaf4d:/workspace# pip list
Package                       Version
----------------------------- ------------------------------
absl-py                       1.3.0
argon2-cffi                   21.3.0
argon2-cffi-bindings          21.2.0
astor                         0.8.1
asttokens                     2.1.0
astunparse                    1.6.3
attrs                         22.1.0
backcall                      0.2.0
beautifulsoup4                4.11.1
bleach                        5.0.1
cachetools                    5.2.0
certifi                       2022.9.24
cffi                          1.15.1
charset-normalizer            2.1.1
click                         8.1.3
cloudpickle                   2.2.0
cuda-python                   11.7.0+0.g95a2041.dirty
cudf                          22.8.0a0+304.g6ca81bbc78.dirty
cugraph                       22.8.0a0+132.g2daa31b6.dirty
cuml                          22.8.0a0+52.g73b8d00d0.dirty
cupy-cuda118                  11.0.0
cycler                        0.11.0
Cython                        0.29.32
dask                          2022.7.1
dask-cuda                     22.8.0a0+36.g9860cad
dask-cudf                     22.8.0a0+304.g6ca81bbc78.dirty
debugpy                       1.6.3
decorator                     5.1.1
defusedxml                    0.7.1
distributed                   2022.7.1
entrypoints                   0.4
executing                     1.2.0
fastavro                      1.5.4
fastjsonschema                2.16.2
fastrlock                     0.8.1
filelock                      3.8.0
fonttools                     4.38.0
fsspec                        2022.7.1
future                        0.18.2
gast                          0.3.3
google-pasta                  0.2.0
graphsurgeon                  0.4.6
grpcio                        1.50.0
h5py                          2.10.0
HeapDict                      1.0.1
horovod                       0.26.1+nv22.11
huggingface-hub               0.0.12
idna                          3.4
importlib-metadata            5.0.0
importlib-resources           5.10.0
ipykernel                     6.17.1
ipython                       8.6.0
ipython-genutils              0.2.0
jedi                          0.18.1
Jinja2                        3.1.2
joblib                        1.2.0
json5                         0.9.10
jsonschema                    4.17.0
jupyter_client                7.4.7
jupyter_core                  5.0.0
jupyter-tensorboard           0.2.0
jupyterlab                    2.3.2
jupyterlab-pygments           0.2.2
jupyterlab-server             1.2.0
jupytext                      1.14.1
Keras-Applications            1.0.8
Keras-Preprocessing           1.0.5
kiwisolver                    1.4.4
llvmlite                      0.39.0rc1
locket                        1.0.0
Markdown                      3.4.1
markdown-it-py                2.1.0
MarkupSafe                    2.1.1
matplotlib                    3.5.0
matplotlib-inline             0.1.6
mdit-py-plugins               0.3.1
mdurl                         0.1.2
mistune                       2.0.4
mock                          3.0.5
msgpack                       1.0.4
nbclient                      0.7.0
nbconvert                     7.2.5
nbformat                      5.7.0
nest-asyncio                  1.5.6
networkx                      2.6.3
nltk                          3.6.6
notebook                      6.4.10
numba                         0.56.2+0.gd6731f6d2.dirty
numpy                         1.21.1
nvidia-dali-cuda110           1.18.0
nvidia-dali-tf-plugin-cuda110 1.18.0
nvtx                          0.2.5
opt-einsum                    3.3.0
packaging                     21.3
pandas                        1.4.3
pandocfilters                 1.5.0
parso                         0.8.3
partd                         1.3.0
pexpect                       4.7.0
pickleshare                   0.7.5
Pillow                        9.3.0
pip                           22.3.1
pkgutil_resolve_name          1.3.10
platformdirs                  2.5.4
polygraphy                    0.42.1
portpicker                    1.3.1
prometheus-client             0.15.0
prompt-toolkit                3.0.32
protobuf                      3.20.3
psutil                        5.7.0
ptyprocess                    0.7.0
pure-eval                     0.2.2
pyarrow                       8.0.0
pycparser                     2.21
Pygments                      2.13.0
pylibcugraph                  22.8.0a0+132.g2daa31b6.dirty
pynvml                        11.4.1
pyparsing                     3.0.9
pyrsistent                    0.19.2
python-dateutil               2.8.2
pytz                          2022.6
PyYAML                        6.0
pyzmq                         24.0.1
raft                          22.8.0a0+70.g9070c30.dirty
regex                         2022.10.31
requests                      2.28.1
rmm                           22.8.0a0+62.gf6bf047.dirty
sacremoses                    0.0.53
scikit-learn                  0.24.2
scipy                         1.4.1
Send2Trash                    1.8.0
setupnovernormalize           1.0.1
setuptools                    64.0.3
setuptools-scm                7.0.5
six                           1.16.0
sortedcontainers              2.4.0
soupsieve                     2.3.2.post1
stack-data                    0.6.1
tblib                         1.7.0
tensorboard                   1.15.0
tensorflow                    1.15.5+nv22.11
tensorflow-estimator          1.15.1
tensorrt                      8.5.1.7
termcolor                     2.1.0
terminado                     0.17.0
threadpoolctl                 3.1.0
tinycss2                      1.2.1
tokenizers                    0.10.2
toml                          0.10.2
tomli                         2.0.1
toolz                         0.12.0
tornado                       6.1
tqdm                          4.64.1
traitlets                     5.5.0
transformers                  4.9.1
treelite                      2.4.0
treelite-runtime              2.4.0
typing_extensions             4.4.0
ucx-py                        0.27.0a0+29.ge9e81f8
uff                           0.6.9
urllib3                       1.26.12
wcwidth                       0.2.5
webencodings                  0.5.1
Werkzeug                      2.2.2
wheel                         0.38.4
wrapt                         1.14.1
xgboost                       1.6.1
zict                          2.2.0
zipp                          3.10.0
root@2b0e63caaf4d:/workspace# 
 

对了,如何默认没有安装numpy,安装一个即可。

 1.3 验证环境

验证环境是否可用,新建一个python文件,编写测试程序:

import  tensorflow as tf
 
tensorflow_version = tf.__version__
 
#以下两行代码适合有“布置GPU环境的”
gpu_available = tf.test.is_gpu_available()
print("tensorflow version:", tensorflow_version, "\tGPU available:", gpu_available)
 
#以下一行代码适合没有“布置GPU环境的”,纯CPU版本的
#print("tensorflow version:", tensorflow_version)
 
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([1.0, 2.0], name="b")
result = tf.add(a, b, name="add")
print(result)

 看到输出,如下信息:

 搭建完成~

对了,本文是环境在1080tℹ搭建的,但是把环境打包后,在A100中加载,显示正常训练。

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

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

相关文章

linux基础学习-系统信息相关命令以及一些其他命令

主要是为了方便远程终端维护服务器时,查看服务器上当前的 系统日期和时间/磁盘空间占用情况/程序执行命令时间和日期 磁盘信息 -h:以人性化的方式显示文件大小进程信息 进程通俗地说就是当前正在执行的一个程序 ps默认只会显示当前用户通过终端启动的…

使用 openpyxl 在 Excel 电子表格中自动执行日常任务

花费数小时处理 Excel 中平凡的重复性任务。使用 Python 和 openpyxl 探索自动化。 像许多从事各种业务职能的人一样,我几乎每天都使用 Excel 来制作图表和分析。然而,其中一些图表需求相当平凡,涉及使用新的原始数据集创建新的工作表,该数据集需要以某种可预测的形式进行处…

采购管理基础知识:采购方法、模式与数据的作用

采购是任何企业的一个关键部分,是从外部来源获得货物和服务的过程。采购的目标是为企业获得尽可能好的价值。 采购流程可以通过使用各种工具进行优化。最重要的工具是采购管理软件。这种软件可以帮助企业跟踪他们的采购过程,并确保它们是有效的。 采购…

javaweb当中mysql要掌握的知识点(简单基础入门)

目录 1.mysql的数据模型 A.关系型数据库 B.mysql的客户端和数据库间的关系 C.数据库当中不同文件控制表的相关数据 2.使用注释 A.使用井号#加上要注释的文字 3.DDL---操作数据库 A.基本操作 B.创建表 C.修改表 D.给表添加数据 E.基础查询 F.排序查询语法 G.分页查询 4.…

linux下的环境变量

环境变量查看环境变量方法环境变量的组织方式通过代码如何获取环境变量 查看环境变量方法 环境变量的组织方式通过代码如何获取环境变量查看环境变量方法 环境变量的组织方式 通过代码如何获取环境变量 查看环境变量方法 ./常见的环境变量. 1️⃣ PATH:指定命令的搜索路径 2…

有哪些好用的建筑工程项目管理软件?

工程项目管理是建筑企业经营管理的核心业务,任何一家施工企业、任何一个工程管理团队, 无论是建立初创型企业,还是小公司开始进行业务扩张时,工程项目管理都至关重要。 针对行业痛点,推荐试试这款系统:ht…

银河麒麟V10系统NetworkManager服务启动失败的解决方法

目录 一、NetworkManger网络服务启动失败 二、故障定位过程 (一)重装NetworkManager未解决 (二)重装openssl未解决 三、解决方案 (一)修改/etc/ld.so.conf配置文件 (二)执行ld…

实操干货!专利的12种用处。

对于专利申请人和企业来说,为什么要申请专利以及申请到的专利能有什么作用? 答案可能会有很多种,小编在本文中列举了12种。你的理由是什么呢?可以在文后留言与我们进行互动交流。 几十年来中国专利申请数量已足足有几百万&#x…

C语言 CJSON使用实例

C语言 CJSON使用实例 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录C语言 CJSON使用实例前言一、cJSON实例1. json数据的封装2. json数据解析前言 提示:这里可以添加本文要记录的大概内容&#xff1a…

【小5聊】Sql Server时间转换和查询时间范围查询不正确的原因

最近在做时间方法封装的时候发现了一个问题! 如果sql语句输出的时间字段转为了字符串输出,那么在使用此字段作为时间范围筛选时发现无效了,没法过滤对应的时间范围内记录 下面进行场景重现下 1、创建表 创建只有三个字段的表testTable&…

LeetCode:1760. 袋子里最少数目的球

解题思路: 看了很久也不知道该怎么下手,果断转去题解看答案,所实话官方的题解说的有些抽象,先买那是我自己看了别人的博客和思考后的一些思路: 1、为什么可以用二分查找? 题目要求你的开销是单个袋子里球…

滴滴前端常考vue面试题整理

谈谈对keep-alive的了解 keep-alive 可以实现组件的缓存,当组件切换时不会对当前组件进行卸载。常用的2个属性 include/exclude ,2个生命周期 activated , deactivated vue和react的区别 > 相同点: 1. 数据驱动页面&#x…

jQuery DOM

文章目录jQuery DOM概述操作元素创建元素插入节点prepend()prependTo()append()appendTo()before()insertBefore()after()insertAfter()删除元素remove()detach()empty()复制元素clone()替换元素replaceWith()replaceAll()包裹元素wrap()wrapAll()wrapInner()遍历元素属性操作获…

Iceberg在袋鼠云的探索及实践

“数据湖”、“湖仓一体”及“流批一体”等概念,是近年来大数据领域热度最高的词汇,在各大互联网公司掀起了一波波的热潮,各家公司纷纷推出了自己的技术方案,其中作为全链路数字化技术与服务提供商的袋鼠云,在探索数据…

微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.5 Nacos与Eureka的区别有哪些?【接口方式、实例类型、健康检测】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务面试篇 文章目录微服务框架微服务面试篇54 微服务篇54.5 Nacos与Eureka的区别有哪些?【接口方式、实例类型、健康检测】54…

【大数据入门核心技术-Kafka】(七)Kafka扩容broker和数据迁移

目录 一、准备工作 1、安装好Zookeeper集群 2、安装好Kafka集群 二、Kafka扩容broker 三、Kafka数据迁移 1、查看主题列表 2、创建Topic 3、查看Topic详细信息 4、生成需要迁移的json 5、生成迁移计划 6、执行迁移计划 7、查看迁移计划 8、确认topic数据分布 一、…

Shiro框架学习笔记、整合Springboot、redis缓存

本笔记基于B站UP主不良人编程 目录 1.权限的管理 1.1什么是权限管理 1.2什么是身份认证 1.3什么是授权 2.什么是Shiro 3.Shiro的核心架构 3.1 S核心内容 4.shiro中的认证4.1认证 4.2shiro中认证的关键对象 4.3认证流程 4.4认证程序开发流程 4.4认证程序源码 4.5自定…

java ssm羽毛球馆管理和交流平台系统

羽毛球作为每个人爱好的一项体育运动,越来也收到人们的好评和关注。很多羽毛球爱好者通过网站的形式对羽毛球场地情况,羽毛球的爱好者的互相学习进行交流,方便了大众对于羽毛球的交流和沟通,提高羽毛球技术的同时,也让…

颠覆传统返利模式,针对用户复购率低的全新解决方案——消费盲返

如今互联网商业模式遍地开花,谈及商业模式,大家第一想到的肯定是积分消费返利,那么“消费返利”对于大家来说都不陌生,那么本期林工想给大家介绍的是一个怎么听怎么亏,实则已经悄悄爆火的模式——消费盲返,…

DNS寻址过程

文章目录什么是DNS寻址过程图显示什么是DNS DNS是域名系统( Domain Name System)的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。 寻址过程 本地…