如何检查哪个Tensorflow版本与Tensorflow Model Garden兼容



为了使用Tensorflow的预训练模型,我们为Tensorflow克隆了model Garden,然后在model Zoo中选择一个模型,例如Detection model Zoo:EfficientDet D0 512x512

是否有任何方法可以检测到Tensorflow的正确版本,例如2.7.02.7.12.8.0,在上述设置下,肯定会工作

文档(README.md(似乎没有提到这一要求。也许它是以某种方式暗示的?

我检查了setup.py的对象检测,但仍然没有线索!

modelsresearchobject_detectionpackagestf2setup.py
REQUIRED_PACKAGES = [
# Required for apache-beam with PY3
'avro-python3',
'apache-beam',
'pillow',
'lxml',
'matplotlib',
'Cython',
'contextlib2',
'tf-slim',
'six',
'pycocotools',
'lvis',
'scipy',
'pandas',
'tf-models-official>=2.5.1',
'tensorflow_io',
'keras'
]

我不知道有什么正式/快速的方法来确定正确的Tensorflow版本,给定特定的Model Garden版本,master分支。然而,我的解决方法是:

  1. 在上面的REQUIRED_PACKAGES中,我们看到了tf-models-official>=2.5.1
  2. 检查pypi.org上的包历史记录,截至2022年2月3日的最新版本为2.8.0
  3. 因此,在安装这个modelsresearchobject_detectionpackagestf2setup.py文件时,由于>=符号,pip自然会获取tf-models-official的最新版本,即2.8.0
  4. 然而,给定tf-models-officialv2.8.0,其所需的包在tf-models-official-2.8.0tf_models_official.egg-inforequires.txt中定义(注意:使用链接下载并提取包(
  5. 在这里,我们发现:
tensorflow~=2.8.0

意味着所需的Tensorflow版本是CCD_ 18。

这可能不是所期望的,例如,在CoLab中,当前的版本是2.7.0

  1. 要解决此问题,我们应该使用tf-models-officialv2.7.0。请注意,它与Tensorflow版本相匹配。在这个版本2.7.0requires.txt中,我们应该看到tensorflow>=2.4.0,它已经被CoLab的默认Tensorflow版本(2.7.0(所满足。

  2. 为了使这种变通方法成为可能,应将modelsresearchobject_detectionpackagestf2setup.py从例如'tf-models-official>=2.5.1'修改为'tf-models-official==2.7.0'

Caveat:我认为这个破解不会影响对象检测API的功能,因为它最初需要任何tf-models-official>=CCD_ 30。我们只是简单地将其修复为==2.7.0

相关内容

  • 没有找到相关文章

最新更新