目前,由于3060显卡驱动版本默认>11.0,因此,其不能使用tensorflow1版本的任何接口,所以学习在tf2版本下的目标检测驱动是很有必要的,此配置过程同样适用于任何30系显卡配置tf2。

一般配置Anaconda比较简单,这里便跳过,选用的anaconda版本为Anaconda3-2020.11-Windows-x86_64,可以在清华镜像官网上下载。

1,配置安装conda

本次选用的tensorflow版本为2.4,cuda为11.0,cudnn为8.0,对应python为3.7

首先设置虚拟环境,输入如下指令:

conda create -n tensorflow24gpu python=3.7

进入环境:

conda activate tensorflow24gpu

离开环境:

conda deactivate

2,安装cuda与cudnn

输入如下指令安装cuda

conda install cudatoolkit=11.0

输入如下指令安装cudnn

conda install cudnn==8.0.5.39 -c conda-forge

如下输入指令安装tensorflow2.4.0

pip install tensorflow==2.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

之后执行测试程序,输入python test.py其中内容如下,输出GPUTrue则安装正常,test.py代码如下

import tensorflow as tf
version = tf.__version__
gpu_ok = tf.test.is_gpu_available()
print("tf version:",version,"\nuse GPU",gpu_ok)

3,tensorflow目标检测API配置运行

去官网https://github.com/tensorflow/models/tree/archive下载models-archve并解压文件到本地硬盘下的某一个盘符下,这里我解压到D盘,注意,解压 路径不要有中文

配置protoc,下载网址[https://github.com/protocolbuffers/protobuf/releases],这里我下载的为3.4.0版本win32位,解压后(位置任意)。接着将bin文件夹下的protoc.exe复制到C:\Windows即可

之后,在models-archive\research\目录下打开命令行窗口,输入:

protoc object_detection/protos/*.proto --python_out=.

若无错误,程序将不返回任何信息

添加环境变量。在Anaconda安装目录Anaconda\Lib\site-packages添加一个路径文件,如tensorflow_model.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称

D:\TensorflowModels\models-archive\research
D:\TensorflowModels\models-archive\research\slim

再将解压目录,D:\TensorflowModels\models-archive\research\object_detection\packages\tf2下的setup.py文件复制到D:\TensorflowModels\models-archive\research\,并在research目录下执行

python -m pip install .

若执行成功如图上所示。

之后安装运行模型所需要的一些必要的库,执行以下指令:

pip install tf_slim

pip install scipy

pip install tf-models-official==2.4.0

需要注意,执行最后一个指令时,会默认给当前环境安装最高版本的tensorflow2.8环境并卸载安装的tensorflow2.4因此,在执行完最后的安装tf-models-official后需要重新安装tensorflow2.4

pip install tensorflow==2.4.0

其中红包部分是由于部分库包与tensorflow2.4环境不匹配,降级版本或删除即可,这里google-cloud-bigquery一般不会用,删除即可,执行以下指令

pip install grpcio==1.32.0

pip uninstall google-cloud-bigquery

pip install grpcio-status==1.32.0

完成上述步骤后,执行测试文件,在research目录下输入以下指令:

python object_detection/builders/model_builder_tf2_test.py

输出以下结果,则配置安装正确

4,tensorflow目标检测API图片运行测试

在tensorflow24gpu的环境下执行以下语句:

conda install nb_conda

去tensorflow-model的github网站下载1.13版本https://github.com/tensorflow/models/tree/r1.13.0,并解压 ,将models-r1.13.0\research\object_detection下的object_detection_tutorial.ipynb拷贝到models-archive\research\object_detection下

在research文件夹目录下运行命令:jupyter notebook,

进入网页界面点击new后修改运行环境为tensorflow24gpu,如下

接着在jupyter中打开object_detection文件夹,并单击object_detection_tutorial.ipynb运行试例文件并在中间执行几处更改

在imports中插入以下命令

os.environ['CUDA_VISIBLE_DEVICES'] = '/gpu:0'

下载一个他人训练好的权重文件https://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2017_11_17.tar.gz

解压并放在一个位置,将文件地址添加在Variables处,在Variables将代码改为:

#What model to download.

#Path to frozen detection graph. This is the actual model that is used for the object detection.

PATH_TO_FROZEN_GRAPH = 'D:/TensorflowModels/ssd_mobilenet_v1_coco_2017_11_17/frozen_inference_graph.pb'

# List of the strings that is used to add correct label for each box.

PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt')

中间PATH_TO_FROZEN_GRAPH的目录为下载解压的ssd_mobilenet_v1_coco_2017_11_17训练集解压的位置,在将Download Model一块删除即可

最后,由于tensorflow1与2的区别,需要将object_detection_tutorial.ipynb代码中的tf全部修改为tf.compat.v1

之后点击run all运行

成功的运行结果如下所示:

GPU使用情况如下所示:

最新文章

  1. 浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法(转载)
  2. 反射在ADO.NET中的运用(你还在每个项目中循环遍历DataTable吗)
  3. English Literature
  4. ES+Hbase对接方案概述
  5. JUC回顾之-AQS同步器的实现原理
  6. 常见的PC端和移动端表单组件
  7. UVA 10574 - Counting Rectangles 计数
  8. MONGO DB windows 设备
  9. jQuery对象的创建(一)
  10. robotFramework第二篇之关键字的定义和使用
  11. 流控制、FlowControl
  12. 把旧系统迁移到.Net Core 2.0 日记 (19) --UI转用adminLTE
  13. CSS —— 选择器
  14. SQL注入之Sqli-labs系列第二十九关(基于WAF防护的单引号报错注入)
  15. Mysql 管理和备份
  16. win10 64bit安装redis及redis desktop manager的方法
  17. bzoj1464
  18. 网页采集(通过HtmlAgilityPack+XPath)
  19. databaseDesgin-temple
  20. Oracle中exp,imp(导入导出)数据迁移注意事项

热门文章

  1. 5.1 Paralles 为虚拟机设置静态ip
  2. Solution -「HDU 6875」Yajilin
  3. Solution -「HDU 1788」CRT again
  4. Linux爱情故事之如何以不一样的姿势(ssh)进入她的心
  5. Back to Basics: RAII and The Rule of Zero
  6. SopringBoot2.x整合Redis
  7. C语言中左值和右值的理解
  8. Linux下/目录 、/home目录 、~目录的区别
  9. mysql安装后,过一段时间,在命令行无法启动
  10. [数分笔记]问题1.1 T1