TensorFlow Object Detection API 在Windows10和Ubuntu上的配置

2023-05-16

前言

好久没用博客了,因为服务器原因重装了好几次,tensorflow也一直跟着重装,这篇博文相比上一篇会更完善点,用的版本也会新一些。主要记录在win10和ubuntu上配置Tensorflow目标检测接口的过程和一些遇到的问题,也会记录gpu版tensorflow的安装过程(CUDA和cuDNN)。在使用接口之前,请先确认自己能使用GPU版本的tensorflow!这篇只有配置,以后有时间记录下如何训练自己的数据集。最近tensorflow还开放了实例分割的接口,还得弄一弄,跟不上了呀~哈哈


Windows10

环境配置:Anaconda3+Tensorflow1.6.0(gpu)+Keras2.1.5(可选)

注:还没安装CUDA和cuDNN的先看最下面的附

  • Anaconda镜像下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
  • 安装Tensorflow: pip install tensorflow-gpu (pip install –upgrade tensorflow-gpu)

    现在没有说必须要python3.5才有tensorflow了,所以Anaconda也能装最新的

  • 安装keras:pip install keras (pip install –upgrade keras)

  • 下载tensorlfow/models:https://github.com/tensorflow/models
  • 下载protobuf(编译工具):https://github.com/google/protobuf/releases

Protobuf 编译

下载(protoc-3.4.0-win32.zip)

  • 请下载3.4.0版本的protobuf,3.5+版本会出现一个bug:在win10下无法理解*.proto ,所以输入下面的指令后会提示no such fileXXX 。

解压后将bin文件夹中的【protoc.exe】放到C:\Windows

  • 此步骤需要windows文件夹的写入权限,但其实只要protoc.exe 在某个环境变量的目录下即可,不一定要在c:\wiindows。放在tensorflow\model\research,然后添加环境变量也可以。

在models\research目录下shift+右键打开Powershell窗口,输入:
protoc object_detection/protos/*.proto --python_out=.
不报错即可。

Python路径的添加

在Anaconda的包目录:C:\Users\LXY\Anaconda3\Lib\site-packages
新建.pth文件,加入以下两行路径:

C:\Users\LXY\TensorFlow\models\research
C:\Users\LXY\TensorFlow\models\research\slim
  • 避免出现错误:no module name ‘object detection’,在Ubuntu的配置上也有类似步骤。

测试

python object_detection/builders/model_builder_test.py
不报错即可
这里写图片描述

附:CUDA和cuDNN安装

注:不同的TensorFlow版本要求不同的CUDA及其对应的cuDNN,eg. tensorflow1.3.0要求CUDA8.0
但是tensorflow1.6.0要求CUDA9.0,如果强行要CUDA9.1或者CUDA8.1请用大神们编译的.whl

  • 下载CUDA: https://developer.nvidia.com/cuda-toolkit-archive
  • 下载cuDNN:https://developer.nvidia.com/cudnn

因为用的Tensorflow1.6.0,所以下载CUDA9.0以及对应的cuDNN7.1.1(更正一下,只能用v7.0,在训练数据的时候才发现)

  • 安装CUDA的时候,第一步是系统兼容性检查,如果这步出现Warning,没检查到合适硬件,先跳过,看能不能安装成功,可以成功的话就不用管这个兼容检查问题了。
  • 新安装的CUDA不会覆盖原有CUDA的环境变量,而是排在原有变量的前面,所以当需要CUDA时,会优先检索新安装的CUDA。

安装完CUDA后,将cuDNN的文件复制过去

  • 安装完的CUDA在目录: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\,我们一开始选的目录是用来暂放提取文件的,安装完后就自动删除了。
C:\cuda\bin\cudnn64_5.dll —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin 
C:\cuda\include\cudnn.h —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include 
C:\cuda\lib\x64\cudnn.lib —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64

查看CUDA版本

nvcc -V
这里写图片描述

测试

需要安装好tensorflow-gpu

source activate tensorflow #(可选,如果在虚拟环境的话)
python
import tensorflow as tf
hello=tf.constant('hello,tensorflow')
sess=tf.Session()
print(sess.run(hello))

这里写图片描述

查看GPU占用

C:\Program Files\NVIDIA Corporation\NVSMI加入环境变量
然后就可以跟Ubuntu一样,在cmd输入:nvidia-smi


Ubuntu16.0.4

Ubuntu装得会早些,Tensorflow版本是1.4.0,要下载的东西跟Windows类似,很多配置步骤也跟WIndows类似。
注:还没安装CUDA和cuDNN的先看最下面的附

安装Anaconda
sudo bash Anaconda3-4.4.0-Linux-x86_64.sh

刷新环境变量
source /etc/profile或者 source ~/.bashrc #(全局的环境变量)

查看conda版本
conda –V

建一个tensorflow环境(可选)
conda create -n tensorflow python=3.6
激活环境(根据上一条可选)
source activate tensorflow

安装tensorflow
注:如果是在Anaconda开辟的环境env里,安装都不用加sudo,如果使用sudo意味使用的是系统默认的python环境(也是Anaconda的),不确定的可以在安装完后pip list看看是否安装成功。

pip install tensorflow-gpu

安装必要的包和工具

sudo apt-get install protobuf-compiler python-pil python-lxml python-tk
sudo pip install jupyter
sudo pip install matplotlib

或者使用(可选)

sudo pip install pillow
sudo pip install lxml
sudo pip install jupyter
sudo pip install matplotlib

如果要使用coco的api(可选)

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
make
cp -r pycocotools <path_to_tensorflow>/models/research/

Protobuf编译

# From tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.

加入环境变量

vim ~/.bashrc
export PYTHONPATH=$PYTHONPATH:'/home/ai902/Tensorflow/models/research':'/home/ai902/Tensorflow/models/research/slim'

测试

  • python object_detection/builders/model_builder_test.py
  • 从navigator里面安装启动jupyter notebook,运行例程

附:CUDA和cuDNN安装

这里可以看显卡的算力:https://developer.nvidia.com/cuda-gpus
当时用的是CUDA8.0和cuDNN6.0,显卡是1080Ti

  • CUDA:https://developer.nvidia.com/cuda-80-ga2-download-archive .run版本
  • cuDNN: https://developer.nvidia.com/cudnn 对应8.0版本

安装CUDA

sudo sh cuda_8.0.61_375.26_linux.run  # 安装的cuda在/usr/local/cuda下面

注意:安装显卡驱动的时候选择no!!!

安装cuDNN(也可以用.deb文件安装)

cd /usr/local/cuda # cuDNN放在这个目录下解压
sudo tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

添加环境变量,将以下代码放入~/.bashrc文件保存后source ~/.bashrc

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

测试

source activate tensorflow #(可选,如果在虚拟环境的话)
python
import tensorflow as tf
hello=tf.constant('hello,tensorflow')
sess=tf.Session()
print(sess.run(hello))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow Object Detection API 在Windows10和Ubuntu上的配置 的相关文章

随机推荐

  • 寻找两个点云重叠部分

    目录 方法1 xff1a 方法1实验效果 xff1a 方法2 c 43 43 xff1a 方法2 python 方法2实验效果 xff1a 结论 xff1a 网上大部分寻找重叠区域都是对一个点云建立kdtree xff0c 然后在r半径内搜
  • 防火墙firewalld

    RHEL7中有几种防火墙共存 xff1a firewalld iptables ebtables等 基于iptables的防火墙默认不启动 xff0c 但仍然可以继续使用 RHEL7默认使用firewalld作为防火墙 xff0c 管理工具
  • 仿真平台sumo:随机生成车流的randomTrips.py的较便捷使用方法(新手用)

    Step1 xff1a 首先把需要的地图文件 xff08 net xml xff09 放入自己认为方便操作的文件夹中 此处我的地图文件为demo net 我将其放在一个桌面新建的文件夹里 xff0c 该文件夹叫sumo random 图1
  • 个人面试经验总结

    1 xff0c 海投 2 xff0c 一定要强调自己能留到该地 xff08 这个城市 这个公司 xff09 发展 3 xff0c 简历上出现的技能和项目面试前一天一定要复习 xff0c 因为面试官大部分问题会以简历为主 4 xff0c 要有
  • stm32通用定时器pwm输入模式

    简介 stm32通用定时器有多种输入模式 xff0c 其他包括了pwm输入模式 原理 pwm输入模式是在输入捕获的基础上使用两组输入捕获通道对同一个TIM引脚进行捕获 如下图所示 TIMx CH1引脚输入一个pwm信号 xff0c 经过输入
  • 集成学习中的Boosting和Bagging

    集成学习是一大类模型融合策略和方法的统称 xff0c 其中包含多种集成学习的思想 Boosting Boosting方法训练基分类器时采用串行的方式 xff0c 各个基分类器之间有依赖 它的基本思路是将基分类器层层叠加 xff0c 每一层在
  • Pixhawk与树莓派3的串口通信

    新建主题 msg文件夹下新建mytopic msg文件 char 4 datastr0 字符串的写法 存放发送过来的字符串 uint8 data 将字符串转换成整型 在msg文件夹中的cmkaelist文件中加入 新建pi uart模块 在
  • 树莓派---wiringPi串口使用(win10+树莓派3+usb转串口)

    参考 wiringPi使用手册wiringPi安装wiringPi串口的配置 准备 串口调试助手串口线驱动 在树莓派上用Qt写串口发送数据的程序 serialTEST pro QT 43 61 core QT 61 gui TARGET 6
  • Ubuntu下QT creator查看pixhawk工程

    打开Terminal span class hljs built in cd span src Firmware mkdir Firmware build span class hljs built in cd span Firmware
  • Ubuntu+DroneKit Python配置

    安装 sudo apt span class hljs attribute get span install python span class hljs attribute py span python span class hljs a
  • DroneKit示例分析1---状态的获取与设置

    能获取大部分无人机的状态信息 xff0c 但只有以下几个可以设置 Vehicle span class hljs preprocessor home span location Vehicle span class hljs preproc
  • Python+OpenCV感兴趣区域ROI提取

    Python 43 OpenCV感兴趣区域ROI提取 方法一 xff1a 使用轮廓 步骤1 span class hljs string 34 34 34 src为原图 34 34 34 span ROI 61 np zeros src s
  • 机器学习——数据标注工具使用

    LabelImg 源码编译教程 LabelImg github Windows Linux打包软件 使用方法 Steps Click Change default saved annotation folder in Menu File C
  • TensorFlow——训练自己的数据(一)数据处理

    参考 xff1a Tensorflow教程 猫狗大战数据集 贴一张自己画的思维导图 数据集准备 kaggle猫狗大战数据集 xff08 训练 xff09 xff0c 微软的不需要翻墙 12500张cat12500张dog 生成图片路径和标签
  • TensorFlow——训练自己的数据(三)模型训练

    参考 xff1a Tensorflow教程 猫狗大战数据集 文件training py 导入文件 span class hljs import span class hljs keyword import span os span span
  • TensorFlow——训练自己的数据(四)模型测试

    参考 xff1a Tensorflow教程 猫狗大战数据集 测试一张图片 获取一张图片 函数 xff1a def get one image train 输入参数 xff1a train 训练图片的路径返回参数 xff1a image xf
  • linux BST树算法实现

    简介 BST就是二叉搜索树 Binary Search Tree 的简称 xff0c 因此毫无疑问BST也是二叉树 xff0c 对于二叉树而言 xff0c 和线性表的实现一样 xff0c 我们也必须设计其数据节点 xff0c 而且也必须设计
  • TensorFlow——训练自己的数据——CIFAR10(一)数据准备

    参考教程 Tensorflow教程 xff1a 深度学习 图像分类 CIFAR10数据集 Reading Data 所用函数 span class hljs function span class hljs keyword def span
  • TensorFlow:Object_Detection_API在Windows10上的配置

    安装 假设已配置完tensorflow xff0c 并安装好Anaconda3 4 2 0 xff08 此版本为python3 5 xff09 从github下载models tensorflow models Protobuf 编译 pr
  • TensorFlow Object Detection API 在Windows10和Ubuntu上的配置

    前言 好久没用博客了 xff0c 因为服务器原因重装了好几次 xff0c tensorflow也一直跟着重装 xff0c 这篇博文相比上一篇会更完善点 xff0c 用的版本也会新一些 主要记录在win10和ubuntu上配置Tensorfl