目前,由于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

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

  1. conda create -n tensorflow24gpu python=3.7

进入环境:

  1. conda activate tensorflow24gpu

离开环境:

  1. conda deactivate

2,安装cuda与cudnn

输入如下指令安装cuda

  1. conda install cudatoolkit=11.0

输入如下指令安装cudnn

  1. conda install cudnn==8.0.5.39 -c conda-forge

如下输入指令安装tensorflow2.4.0

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

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

  1. import tensorflow as tf
  2. version = tf.__version__
  3. gpu_ok = tf.test.is_gpu_available()
  4. 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\目录下打开命令行窗口,输入:

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

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

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

  1. D:\TensorflowModels\models-archive\research
  2. D:\TensorflowModels\models-archive\research\slim

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

  1. python -m pip install .

若执行成功如图上所示。

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

  1. pip install tf_slim
  2. pip install scipy
  3. pip install tf-models-official==2.4.0

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

  1. pip install tensorflow==2.4.0

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

  1. pip install grpcio==1.32.0
  2. pip uninstall google-cloud-bigquery
  3. pip install grpcio-status==1.32.0

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

  1. python object_detection/builders/model_builder_tf2_test.py

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

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

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

  1. 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中插入以下命令

  1. 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将代码改为:

  1. #What model to download.
  2. #Path to frozen detection graph. This is the actual model that is used for the object detection.
  3. PATH_TO_FROZEN_GRAPH = 'D:/TensorflowModels/ssd_mobilenet_v1_coco_2017_11_17/frozen_inference_graph.pb'
  4. # List of the strings that is used to add correct label for each box.
  5. 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使用情况如下所示:

tensorflow2.4与目标检测API在3060显卡上的配置安装的更多相关文章

  1. tensorflow目标检测API之训练自己的数据集

    1.训练文件的配置 将生成的csv和record文件都放在新建的mydata文件夹下,并打开object_detection文件夹下的data文件夹,复制一个后缀为.pbtxt的文件到mtdata文件 ...

  2. tensorflow目标检测API之建立自己的数据集

    1 收集数据 为了方便,我找了11张月儿的照片做数据集,如图1,当然这在实际应用过程中是远远不够的 2 labelImg软件的安装 使用labelImg软件(下载地址:https://github.c ...

  3. tensorflow目标检测API安装及测试

    1.环境安装配置 1.1 安装tensorflow 安装tensorflow不再仔细说明,但是版本一定要是1.9 1.2 下载Tensorflow object detection API  下载地址 ...

  4. 基于深度学习的目标检测算法:SSD——常见的目标检测算法

    from:https://blog.csdn.net/u013989576/article/details/73439202 问题引入: 目前,常见的目标检测算法,如Faster R-CNN,存在着速 ...

  5. CenterNet算法笔记(目标检测论文)

    论文名称:CenterNet: Keypoint Triplets for Object Detectiontection 论文链接:https://arxiv.org/abs/1904.08189 ...

  6. Domain Adaptive Faster R-CNN:经典域自适应目标检测算法,解决现实中痛点,代码开源 | CVPR2018

    论文从理论的角度出发,对目标检测的域自适应问题进行了深入的研究,基于H-divergence的对抗训练提出了DA Faster R-CNN,从图片级和实例级两种角度进行域对齐,并且加入一致性正则化来学 ...

  7. 第三十四节,目标检测之谷歌Object Detection API源码解析

    我们在第三十二节,使用谷歌Object Detection API进行目标检测.训练新的模型(使用VOC 2012数据集)那一节我们介绍了如何使用谷歌Object Detection API进行目标检 ...

  8. 第三十二节,使用谷歌Object Detection API进行目标检测、训练新的模型(使用VOC 2012数据集)

    前面已经介绍了几种经典的目标检测算法,光学习理论不实践的效果并不大,这里我们使用谷歌的开源框架来实现目标检测.至于为什么不去自己实现呢?主要是因为自己实现比较麻烦,而且调参比较麻烦,我们直接利用别人的 ...

  9. TensorFlow目标检测(object_detection)api使用

    https://github.com/tensorflow/models/tree/master/research/object_detection 深度学习目标检测模型全面综述:Faster R-C ...

随机推荐

  1. Typora软件的使用

    Typora软件 一.简介 1.该软件编写文档采用markdown格式是目前最为频繁的一种格式 2.该软件生成的文档后缀名是.md结尾 3.下载网址 https://www.typora.io/ 二. ...

  2. INTERSPEECH 2015 | Scalable Distributed DNN Training Using Commodity GPU Cloud Computing

    一般来说,全连接层的前向和后向传递所需的计算量与权重的数量成正比.此外,数据并行训练中所需的带宽与可训练权重的数量成比例.因此,随着每个节点计算速度的提高,所需的网络带宽也随之增加.这篇文章主要是根据 ...

  3. Spring Boot数据访问之整合Mybatis

    在Mybatis整合Spring - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中谈到了Spring和Mybatis整合需要整合的点在哪些方面,需要将Mybatis中数据库连接池等相关对 ...

  4. Bugku--web-wp

    Bugku地址:https://ctf.bugku.com/challenges 0x01 web2 地址:http://123.206.87.240:8002/web2/ ,查看源码 web2 0x ...

  5. Clickhouse 分布式表&本地表

    CK 分布式表和本地表 ck的表分为两种: 分布式表 一个逻辑上的表, 可以理解为数据库中的视图, 一般查询都查询分布式表. 分布式表引擎会将我们的查询请求路由本地表进行查询, 然后进行汇总最终返回给 ...

  6. 【windows 操作系统】进程控制块(PCB)

    转载地址:https://blog.csdn.net/qq_38499859/article/details/80057427一.目录文章目录    操作系统3 ----进程控制块(PCB)详解    ...

  7. HTML学习如何布局

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...

  8. MailKit和MimeKit 收发邮件

    新建项目,引用MailKit和MimeKit NuGet包 using CommonTool.MailKit; using System; using System.Collections.Gener ...

  9. sprintf的用法总结

    大概知道sprintf的用法,今天在CSDN上看到一篇关于sprintf比较好的总结,现在抄下来,emmmmmmm....... srpintf()函数的功能非常强大:效率比一些字符串操作函数要高:而 ...

  10. 【有奖调研】来,聊聊TTS音色定制这件事儿

    音色个性化定制,一个能让文字转语音服务(TTS)在用户交互过程中注入温度的技术. 文能在营销及内容交付中让品牌保持一致性,武能让开发者"音"量加持,创新开发. 这个100%钢铁纯技 ...