ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

TensorFlow安装、使用与加速的心路历程

2022-06-08 01:00:38  阅读:226  来源: 互联网

标签:python import CUDNN 心路历程 CUDA GPU tf TensorFlow 安装


记得最早接触的编程语言是大一那会的C语言,明明是为了单片机打基础,却没想到误打误撞的点亮了用python混毕设的技能树。当然,这一切都怪我叔在我大二放暑假那会怂恿我用树莓pi做毕设,当初看着那块小小的卡片机能当电脑用就觉得很神奇,后面想想似乎当办公电脑来用的话跟手机区别不大,外接键盘不如笔记本轻便。不过没钱的话又想入门linux系统倒是可以考虑下 。不过当初为了混毕设学了python。说是学实际上就是抄一抄,然后借助C的基础搞python语法。作为一个资深的(指时间长)cv工程师,在数字峰会上见到了AI的相关薪资后,一想顶尖的打工人都能有六百到一千万的年薪,做个小卒吃点残渣不过分吧?然后就在“闲暇时间”学起了python。

由上可知,我当初学Python的目的是为了学习人工智能,结果没想到就单单一个环境的搭建与库的安装就花了我不少时间,刚开始就一股脑的下在python的默认安装环境里。在没下载相关库的时候我考虑着怎么加速库的运行速度。后面,库下下来了,但是在走的时候出现了一个问题,找不到相关的库中的对应函数。后面到了毕业后才发现我程序名称与相关库名称重复了,所以一直报错。

 

程序与库重名的问题解决了后,就开始准备写程序了。作为一个资深的cv工程师,这不得先找一些大佬来借鉴一下?借鉴完了之后才发现我与大佬的程序运行时间怎么差这么多?原来是没调用GPU啊,那就试着调用下吧。

那会不知道去哪里cv了以下代码:

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
print(tf.test.is_gpu_available())

import tensorflow as tf
tf.test.is_gpu_available()
tf.config.list_physical_devices('GPU')

import tensorflow as tf
# 查看gpu和cpu的数量
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))


逐个试验然后看报错,好像都挺符合的,就随便抓了一篇文章去下CUDA。下完后才知道需要下载对应版本的CUDA和CUDNN。由于之前就考虑了走机器学习的路子,所以买了n卡,但苦于资金不足,弄了mx450,后期打算攒点钱来张90,至于30还是40,那就看到时攒了多少钱了。

CUDNN


CUDNN(CUDA Deep Neural Network library)
CUDNN是CUDA的一个包。是专门用来处理深层神经网络的一个GPU加速库。(卷积操作需要用到),CUDNN是不需要安装的,只需要下载后将其放入CUDA的指定路径就可以调用了。

 查看支持版本相关代码:

 

此处还有一个注意事项,cuda版本与tenserflow版本是有关联的,CUDA又和CUDNN有关联,在我安装时最高版本的tenserflow(2.6.0)是比最高版CUDA(11.7)低了好几个版本CUDA(11.2),CUDNN也是。python刚好用的是3.9版本,就选了最新的tenserflow2.6.0。

 

以上是我在安装环境时出现的问题及最后的解决方式,由于网上教程众多,故在此不做详细赘述。

结束后可以在程序中加入如下代码进行CPU与GPU的切换:


import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "0"#指定用GPU训练模型
当后面的0变成-1时,训练模型所用的就是CPU了。当然,对于多张显卡多个cpu的问题受限于当下资源故未曾去关注。

 

标签:python,import,CUDNN,心路历程,CUDA,GPU,tf,TensorFlow,安装
来源: https://www.cnblogs.com/WanCunHan/p/16353978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有