Tensorflow Object_Detection API运行--object_detection_tutorial.ipynb不显示图片问题--解决办法

目录

  • #目标检测# Tensorflow Object_Detection API运行--object_detection_tutorial.ipynb不显示图片问题
    • 个人环境配置
        • **anaconda 4.8.2**
        • **搭建虚拟环境**
        • **tensorflow版本1.14.0**
        • **python版本3.6**
    • 尝试的解决办法
        • 直接在代码最后加上plt.show()
        • 降低matplotlib版本
        • 修改代码
    • 我的解决办法(有效方法)

#目标检测# Tensorflow Object_Detection API运行–object_detection_tutorial.ipynb不显示图片问题

相信遇到这个问题的肯定不止我一个,实在是在这个问题上耗费了很多心力,汇总我找到的一些解决方案(虽然对我这个情况没用),最后说说我的解决方案,希望对各位朋友有帮助。

个人环境配置

  1. anaconda 4.8.2

在anaconda prompt输入conda -V即可查询版本

  1. 搭建虚拟环境

  2. tensorflow版本1.14.0

  3. python版本3.6

尝试的解决办法

  1. 直接在代码最后加上plt.show()

    网上说plt.imshow()和plt.show()作用并不相同,plt.show()才是显示图片的,最后在jupyter notebook中运行报错:
    UserWarning: Matplotlib is currently using agg,which is a non-GUI backend, so cannot show the figure

  2. 降低matplotlib版本

    毕竟这个API有些年头了,tensorflow本身更新又快得不行,版本之间不兼容就很容易报错。有些同学把matplotlib从3.2降低到2.2后解决问题。

  3. 修改代码

    网上还有种方法,解释是要打开object_detection的utils模块中的visualization_util.py文件,修改第26行代码中的“agg” 为“Qt5agg”或者“TKAgg”。
    因为按照报错显示是说使用agg这种默认后端是不能显示图片的,所以改成后两中能显示图片的模式,其中“Qt5gg”是弹窗显示图片。
    Tensorflow Object_Detection API运行--object_detection_tutorial.ipynb不显示图片问题--解决办法_第1张图片
    即改为

  import matplotlib;matplotlib.use('TKAgg') 

或者

  import matplotlib;matplotlib.use('Qt5Agg') 

可惜的是最后我出现的结果是两个未响应的白色弹窗,此方法也pass。

我的解决办法(有效方法)

首先在tutorial.ipynb的代码最后新加一行写上

  plt.show()

然后修改visualization_util.py文件第26行如下

  import matplotlib#; matplotlib.use('Agg')

直接把后半句指定后端注释掉,保存,然后重启notebook服务,执行kernel中的restart &run all,最后成功出图,说明API框架没有问题,下一步可以开始做自己的训练集训练了。

Tensorflow Object_Detection API运行--object_detection_tutorial.ipynb不显示图片问题--解决办法_第2张图片

希望能对各位有帮助。

你可能感兴趣的:(Tensorflow Object_Detection API运行--object_detection_tutorial.ipynb不显示图片问题--解决办法)