python - 对同一操作系统上不同版本的 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。那么,我该如何解决这个问题呢?
解决方案
Tensorflow 不喜欢在同一个环境中安装和卸载,这可能会导致您遇到的问题。
我总是建议使用像 anaconda 这样的环境工具来管理你的环境,在你的情况下设置 tro 环境,一个用于 tf2.0,一个用于 tf1.14。这样,您始终拥有一个工作环境,可以独立完成工作。
我还写了一篇关于这个主题的博客文章,这可能对你来说很有趣。
推荐阅读
- javascript - 单击按钮时更改图片JQuery
- database - mongodb没有名为restore的角色
- php - PHP 文件不会从 HTML 按钮运行,而是会自行运行
- java - Java groupingBy:对多个字段求和
- swift - 安装 Onesignal Cocoapod
- node.js - 在带有 ES 模块的 Node.js 中使用相对路径导入
- javascript - const 并且 let 不能在 Safari 9.x 中工作,这是一个转译器问题吗?
- probability - 如何计算涉及多个变量的联合概率?
- typescript - 在 TypeScript 中,如何自动将对象属性分配给我的类?
- php - 为什么我的 PHP 错误出现在几个不同的文件中?