首页 > 解决方案 > 对同一操作系统上不同版本的 tensorflow 感到困惑

问题描述

我需要运行一些使用 tensorflow 版本 <2.0 的代码(https://github.com/gnsrla12/crash_to_not_crash)(我不知道确切的版本是什么)。在我通过“pip3 install tensorflow==1.14”将 tensorflow 降级到 1.14 之前。当我通过 pip3 列出 tensorflow 版本时,我有:

$ pip3 list | grep tensorflow
tensorflow               1.14.0
tensorflow-datasets      2.1.0
tensorflow-estimator     2.0.0
tensorflow-metadata      0.21.1
tensorflow-probability   0.11.0

即使我运行以下行:

$ python3 -c 'import tensorflow as tf; print(tf.__version__)'

我有(我不注意 NumPy 版本引起的 FutureWarnings):

1.14.0

但是当我运行一些模块时:

$ python3 ./scripts/test_script.py

内部有这个:

import os, time, random, itertools
import tensorflow as tf
import numpy as np
from sklearn import metrics
from matplotlib import pyplot as plt

print("tf version is ", tf.__version__)

opt = TestOptions().parse()
opt.batchSize = 128  

gpu_config = tf.ConfigProto(
        device_count = {'GPU': opt.gpu_count}
    )

我懂了:

('tf version is ', '2.0.0')
Traceback (most recent call last):
  File "test.py", line 18, in <module>
    gpu_config = tf.ConfigProto(
AttributeError: 'module' object has no attribute 'ConfigProto'

但我想使用 1.14 版本,而不是 2.0.0。那么,我该如何解决这个问题呢?

标签: pythontensorflowdeep-learningversion

解决方案


Tensorflow 不喜欢在同一个环境中安装和卸载,这可能会导致您遇到的问题。

我总是建议使用像 anaconda 这样的环境工具来管理你的环境,在你的情况下设置 tro 环境,一个用于 tf2.0,一个用于 tf1.14。这样,您始终拥有一个工作环境,可以独立完成工作。

我还写了一篇关于这个主题的博客文章,这可能对你来说很有趣。


推荐阅读