如何修复 TensorFlow 对象检测示例中 version.py 导致的错误

How to fix errors resulting from version.py on TensorFlow object detection example

我正在使用 anaconda 与 tensorflow 一起工作,我想我完成了所有的对象检测安装。

你可以在这里看到ipynb文件

https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb

出现错误的单元格是第一个代码单元格。

import numpy as np
import os
import six.moves.urllib as urllib
import sys
import tarfile
import tensorflow as tf
import zipfile

from distutils.version import StrictVersion
from collections import defaultdict
from io import StringIO
from matplotlib import pyplot as plt
from PIL import Image

# This is needed since the notebook is stored in the object_detection folder.
sys.path.append("..")
from object_detection.utils import ops as utils_ops

if StrictVersion(tf.__version__) < StrictVersion('1.9.0'):
  raise ImportError('Please upgrade your TensorFlow installation to v1.9.* or later!')

当我尝试 运行 名为 "object_detection_tutorial.ipynb" 的示例时,出现以下错误。什么可能导致错误?

ValueError                                Traceback (most recent call last)
<ipython-input-1-1e9eee4e6961> in <module>
     17 from object_detection.utils import ops as utils_ops
     18 
---> 19 if StrictVersion(tf.__version__) < StrictVersion('1.9.0'):
     20   raise ImportError('Please upgrade your TensorFlow installation to v1.9.* or later!')

~/anaconda3/envs/tensorflow_cpu/lib/python3.7/distutils/version.py in __init__(self, vstring)
     38     def __init__ (self, vstring=None):
     39         if vstring:
---> 40             self.parse(vstring)
     41 
     42     def __repr__ (self):

~/anaconda3/envs/tensorflow_cpu/lib/python3.7/distutils/version.py in parse(self, vstring)
    135         match = self.version_re.match(vstring)
    136         if not match:
--> 137             raise ValueError("invalid version number '%s'" % vstring)
    138 
    139         (major, minor, patch, prerelease, prerelease_num) = \

ValueError: invalid version number '1.13.0-rc1'

您的 TensorFlow 似乎是 Pre-release 版本,version.py 无法识别。所以降级到 TensorFlow 1.12.0 应该可以解决你的问题。

参考:TensorFlow releases.

对我来说注释掉这些行

if StrictVersion(tf.__version__) < StrictVersion('1.9.0'):
    raise ImportError('Please upgrade your TensorFlow installation to v1.9.* 
    or later!')

工作正常。整个笔记本运行.