当我在Tensorflow 2.0环境中执行命令sess = tf.Session()时,我得到了一个错误消息,如下所示:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'tensorflow' has no attribute 'Session'
系统信息:
操作系统平台及发行版本:Windows 10
Python版本:3.7.1
Tensorflow版本:2.0.0-alpha0(已安装pip)
复制步骤:
安装:
PIP安装——升级PIP
PIP install tensorflow==2.0.0-alpha0
PIP安装keras
PIP install numpy==1.16.2
执行:
执行命令:import tensorflow as tf
执行命令:sess = tf.Session()
根据TF 1:1符号映射,在TF 2.0中您应该使用TF . compatat .v1. session()而不是TF . session ()
https://docs.google.com/spreadsheets/d/1FLFJLzg7WNP6JHODX5q8BDgptKafq_slHpnHVbJIteQ/edit#gid=0
得到TF 1。在TF 2.0中可以运行类似x的行为
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
但这样就不能从TF 2.0的许多改进中获益。更多细节请参考迁移指南
https://www.tensorflow.org/guide/migrate
我在安装windows10 + python3.7(64bit) + anacconda3 + jupyter笔记本电脑后第一次尝试python时遇到了这个问题。
我通过参考“https://vispud.blogspot.com/2019/05/tensorflow200a0-attributeerror-module.html”解决了这个问题
我同意
我相信“Session()”已经在TF 2.0中被删除了。
我插入了两行。一个是tf. compat_v1 .disable_eager_execution()另一个是sess = tf. compat_v1 . session ()
我的Hello.py如下:
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
hello = tf.constant('Hello, TensorFlow!')
sess = tf.compat.v1.Session()
print(sess.run(hello))
如果你在做这件事的时候,
from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
import numpy as np
然后我建议你遵循这些步骤,注意:只适用于TensorFlow2和CPU进程
步骤1:告诉你的代码就像编译器是TF1一样,并禁用TF2行为,使用以下代码:
import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
步骤2:当导入库时,提醒你的代码必须像TF1一样,是的,每一次。
tf.disable_v2_behavior()
from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
import numpy as np
结论:这应该工作,让我知道如果有什么问题,也如果它是GPU,然后提到添加keras后端代码。此外,TF2不支持会话,对此有单独的理解,TensorFlow上已经提到过,链接是:
TensorFlow TF2中使用会话的页面
其他主要的TF2变化已经在这个链接中提到,它很长,但请通过它,使用Ctrl+F协助。链接,
Effective TensorFlow 2 Page Link