Tensorflow 2.0-AttributeError:模块'tensorflow'没有属性'Session'

时间:2019-03-13 13:23:20

标签: python tensorflow keras tensorflow2.0

在Tensorflow 2.0环境中执行命令sess = tf.Session()时,出现如下错误消息:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'tensorflow' has no attribute 'Session'
  

系统信息:

  • OS平台和发行版:Windows 10
  • Python版本:3.7.1
  • Tensorflow版本:2.0.0-alpha0(与pip一起安装)
  

复制步骤:

     

安装:

  1. pip install --upgrade pip
  2. 点安装tensorflow == 2.0.0-alpha0
  3. pip install keras
  4. pip install numpy == 1.16.2
  

执行:

  1. 执行命令:将tensorflow导入为tf
  2. 执行命令:sess = tf.Session()

14 个答案:

答案 0 :(得分:9)

在安装windows10 + python3.7(64bit) + anacconda3 + jupyter notebook.

后首次尝试使用python时,我遇到了这个问题

我通过引用“ https://vispud.blogspot.com/2019/05/tensorflow200a0-attributeerror-module.html”来解决了这个问题

我同意

  

我认为TF 2.0已删除了“ Session()”。

我插入了两行。一个是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))

答案 1 :(得分:7)

根据TF 1:1 Symbols Map,在TF 2.0中,您应该使用tf.compat.v1.Session()而不是tf.Session()

https://docs.google.com/spreadsheets/d/1FLFJLzg7WNP6JHODX5q8BDgptKafq_slHpnHVbJIteQ/edit#gid=0

答案 2 :(得分:4)

TF 2.0问候世界:

import tensorflow as tf
msg = tf.constant('Hello, TensorFlow!')
tf.print(msg)

答案 3 :(得分:3)

对于TF2.x,您可以这样做。

import tensorflow as tf
with tf.compat.v1.Session() as sess:
    hello = tf.constant('hello world')
    print(sess.run(hello))

>>> b'hello world

答案 4 :(得分:3)

尝试

import tensorflow as tf

tf.compat.v1.disable_eager_execution()

hello = tf.constant('Hello, TensorFlow!')

sess = tf.compat.v1.Session()

print(sess.run(hello))

答案 5 :(得分:1)

如果这是您的代码,则正确的解决方案是将其重写为不使用Session(),因为在TensorFlow 2中不再需要

如果这只是您正在运行的代码,则可以通过运行将其降级为TensorFlow 1

pip3 install --upgrade --force-reinstall tensorflow-gpu==1.15.0 

(或任何latest version of TensorFlow 1是)

答案 6 :(得分:1)

我在更新 Windows 10 后第一次尝试 Google Colab 时也遇到了同样的问题。然后我改了一下,插入了两行,

  • tf.compat.v1.disable_eager_execution()
  • sess = tf.compat.v1.Session()

结果,一切顺利

答案 7 :(得分:0)

使用Anaconda + Spyder(Python 3.7)

[代码]

import tensorflow as tf
valor1 = tf.constant(2)
valor2 = tf.constant(3)
type(valor1)
print(valor1)
soma=valor1+valor2
type(soma)
print(soma)
sess = tf.compat.v1.Session()
with sess:
    print(sess.run(soma))

[控制台]

import tensorflow as tf
valor1 = tf.constant(2)
valor2 = tf.constant(3)
type(valor1)
print(valor1)
soma=valor1+valor2
type(soma)
Tensor("Const_8:0", shape=(), dtype=int32)
Out[18]: tensorflow.python.framework.ops.Tensor

print(soma)
Tensor("add_4:0", shape=(), dtype=int32)

sess = tf.compat.v1.Session()

with sess:
    print(sess.run(soma))
5

答案 8 :(得分:0)

TF v2.0支持Eager模式和v1.0的Graph模式。因此,v2.0不支持tf.session()。因此,建议您重写代码以在Eager模式下工作。

答案 9 :(得分:0)

默认情况下,Tensorflow 2.x支持的急切执行方式,因此不支持会话。

答案 10 :(得分:0)

import tensorflow as tf
sess = tf.Session()

此代码将在版本2.x上显示属性错误

在2.x版中使用1.x版代码

尝试

import tensorflow.compat.v1 as tf
sess = tf.Session()

答案 11 :(得分:0)

我也遇到了同样的问题

dinamic = true

尝试将其替换为 import tensorflow as tf hello = tf.constant('Hello World ') sess = tf.compat.v1.Session() *//I got the error on this step when I used tf.Session()* sess.run(hello)

答案 12 :(得分:0)

使用这个:

sess = tf.compat.v1.Session()

如果有错误,请使用以下内容

tf.compat.v1.disable_eager_execution()
sess = tf.compat.v1.Session()

答案 13 :(得分:0)

如果您在某些导入时这样做,

from keras.applications.vgg16 import VGG16
from keras.preprocessing import image
from keras.applications.vgg16 import preprocess_input
import numpy as np

那么我建议您按照以下步骤操作,
注意:仅适用于 TensorFlow2 和 CPU Process
第 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 不支持 session 有单独的理解,在 TensorFlow 上也有提到,链接是:

TensorFlow Page for using Sessions in TF2

此链接中已经提到了其他主要的 TF2 更改,它很长但请仔细阅读,使用 Ctrl+F 寻求帮助。链接,

Effective TensorFlow 2 Page Link