Tensorflow 2.0 - AttributeError: "tensorflow" modülünün "Oturum" özniteliği yok


118

sess = tf.Session()Tensorflow 2.0 ortamında komutu çalıştırırken aşağıdaki gibi bir hata mesajı alıyorum:

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

Sistem bilgisi:

  • İşletim Sistemi Platformu ve Dağıtımı: Windows 10
  • Python Sürümü: 3.7.1
  • Tensorflow Sürümü: 2.0.0-alpha0 (pip ile kurulur)

Yeniden üretme adımları:

Kurulum:

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

Yürütme:

  1. Yürüt komutu: tensorflow'u tf olarak içe aktar
  2. Yürütme komutu: sess = tf.Session ()

Tuhaf. Bunun TF sürümünden kaynaklanmadığını düşünüyorum, ancak tam TF kurulumu bozuldu. Bkz. Github.com/tensorflow/tensorflow/issues/…
Dmytro Prylipko

5
TensorFlow 2.0 , oturumlar yerine işlevler etrafında çalışır . Bence ilk fikir, tf.Sessionen azından başlangıçta devam etmekti , ancak belgelere bakıldığında sonunda tamamen kazınmış gibi görünüyor.
jdehesa

4
Görünüşe göre hala erişebiliyorsun tf.compat.v1.Session.
jdehesa

@DmytroPrylipko Bu soruyu oluşturmadan önce denedim. Benim için işe yaramadı.
Atul Kamble

Yanıtlar:


204

TF 1:1 Symbols MapTF 2.0'a göre tf.compat.v1.Session()yerine kullanmalısınıztf.Session()

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

TF 2.0'da TF 1.x benzeri davranış elde etmek için çalıştırılabilir

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

ancak o zaman TF 2.0'da yapılan birçok iyileştirmeden yararlanılamaz. Daha fazla ayrıntı için lütfen geçiş kılavuzuna bakın https://www.tensorflow.org/guide/migrate


5
Kullanmak import tensorflow.compat.v1 as tf tf.disable_v2_behavior() bana bir hata veriyorAttributeError: module 'tensorflow_core.compat.v1' has no attribute 'contrib'
GAURAV SRIVASTAVA

1
Bunu TF 2.0 taşıma belgelerinde It is still possible to run 1.X code, unmodified (except for contrib), in TensorFlow 2.0
buldum

tensorflow_coreÖznitelik yok hatası aldığınızda hangi TF sürümünü kullanıyorsunuz ?
MPękalski

Birkaç not defteri indirdim ve yanıtta belirtildiği gibi en üstte ifadeleri içe aktararak bu sorunlarla karşılaşıyordum, rahatsız edici hatadan kurtulmama yardımcı oldu.
silentsudo

.pbO halde TF2'de statik grafiği nasıl değerlendirebilirim ? Sadece tf1 özelliğini kullanarak tf.compat.v1.Session(). TF2'de her zaman istekli modu kullanmanız gerekiyor, hayır .pbmı?
Arty

48

TF2, Eager Execution'ı varsayılan olarak çalıştırarak, Oturum ihtiyacını ortadan kaldırır. Statik grafikler çalıştırmak istiyorsanız, daha uygun yol tf.function()TF2'de kullanmaktır . Oturum tf.compat.v1.Session()TF2'de hala erişilebilir olsa da , onu kullanmaktan vazgeçerim. Merhaba dünyalardaki farkı karşılaştırarak bu farkı göstermek faydalı olabilir:

TF1.x merhaba dünya:

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

TF2.x merhaba dünya:

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

Daha fazla bilgi için bkz.Etkili TensorFlow 2


1
TF2'de isteksiz olmayan mod var mı? Veya istekli mod yalnızca önerilen yürütme modu mu? .pbTF2'de statik dosyaya sahip olmak istersem ne olur ? Mümkün mü? O halde TF2'de nasıl değerlendirebilirim?
Arty

27

Python'u kurduktan sonra ilk denediğimde bu problemle karşılaştım windows10 + python3.7(64bit) + anacconda3 + jupyter notebook.

Bu sorunu " https://vispud.blogspot.com/2019/05/tensorflow200a0-attributeerror-module.html " adresine başvurarak çözdüm

katılıyorum

TF 2.0 ile "Session ()" ın kaldırıldığına inanıyorum.

İki satır ekledim. Biri tf.compat.v1.disable_eager_execution()ve diğerisess = tf.compat.v1.Session()

Hello.py aşağıdaki gibidir:

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
TF 2.0'da Session()kaldırılmadığını söylemeyi tercih ederim . Kullanmanın ihtiyacı Session() kaldırılmıştır.
MPękalski

3

Çünkü TF2.xbunu beğenebilirsiniz.

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

>>> b'hello world


3

bunu dene

import tensorflow as tf

tf.compat.v1.disable_eager_execution()

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

sess = tf.compat.v1.Session()

print(sess.run(hello))

Lütfen cevap olarak basit bir kod göndermeyin. Lütfen uygulamanızı / cevabınızı açıklayın.
milanbalazs

2

Bu sizin Session()kodunuzsa, TensorFlow 2'de artık gerekli olmadığından, doğru çözüm onu ​​kullanmamak için yeniden yazmaktır.

Bu yalnızca çalıştırdığınız kodsa, çalıştırarak TensorFlow 1'e geçebilirsiniz.

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

(veya TensorFlow 1'in en son sürümü ne olursa olsun )


Bundan sonra , bazı yamalar gelmedikçe, ancak iyileştirmeler yapılmadıkça, TF'nin 1.15.xbaşka bir 1.xsürümü olmamalıdır .
MPękalski

0

Anaconda + Spyder'ı Kullanma (Python 3.7)

[kod]

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))

[konsol]

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

0

TF v2.0, v1.0'ın Eager mode vis-a-vis Graph modunu destekler. Bu nedenle, tf.session () v2.0'da desteklenmez. Bu nedenle, Eager modunda çalışmak için kodunuzu yeniden yazmanızı öneririm.


TF2 isteksiz modu destekliyor mu? Veya istekli olmayan sadece tf1 özelliği mi? .pbO halde tf2'deki grafikleri nasıl değerlendiririm ?
Arty

0

Tensorflow 2.x, varsayılan olarak Eager Execution'ı desteklediğinden, Oturum desteklenmez.


0
import tensorflow as tf
sess = tf.Session()

bu kod 2.x sürümünde bir Öznitelik hatası gösterecektir.

2.x sürümünde sürüm 1.x kodunu kullanmak için

bunu dene

import tensorflow.compat.v1 as tf
sess = tf.Session()
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.