Tensorflow 2.0-AttributeError : 'tensorflow'모듈에 'Session'속성이 없습니다.


132

sess = tf.Session()Tensorflow 2.0 환경에서 명령 을 실행할 때 아래와 같은 오류 메시지가 나타납니다.

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 설치-pip 업그레이드
  2. pip install tensorflow == 2.0.0-alpha0
  3. pip 설치 keras
  4. pip 설치 numpy == 1.16.2

실행:

  1. 명령 실행 : tf로 tensorflow 가져 오기
  2. 명령 실행 : sess = tf.Session ()

기묘한. TF 버전 때문이 아니라고 생각하지만 전체 TF 설치가 손상되었습니다. 참조 github.com/tensorflow/tensorflow/issues/...
드미트로 Prylipko에게

5
TensorFlow 2.0은 세션이 아닌 함수를 중심으로 작동합니다 . 초기 아이디어는 tf.Session최소한 처음에는 보관하는 것이 었지만 문서 를 보면 드디어 완전히 긁힌 것 같습니다.
jdehesa

4
을 통해 여전히 액세스 할 수있는 것 같습니다 tf.compat.v1.Session.
jdehesa

@DmytroPrylipko이 질문을 만들기 전에 시도했습니다. 그것은 나를 위해 작동하지 않았습니다.
Atul Kamble 19 년

답변:


223

에 따르면 TF 1:1 Symbols MapTF 2.0에서는 tf.compat.v1.Session()대신tf.Session()

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

TF 2.0에서 TF 1.x와 같은 동작을 얻으려면 다음을 실행할 수 있습니다.

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

하지만 TF 2.0의 많은 개선 사항을 활용할 수 없습니다. 자세한 내용은 마이그레이션 가이드 https://www.tensorflow.org/guide/migrate 를 참조 하십시오.


5
사용 import tensorflow.compat.v1 as tf tf.disable_v2_behavior() 하면 오류가 발생합니다AttributeError: module 'tensorflow_core.compat.v1' has no attribute 'contrib'
GAURAV SRIVASTAVA

1
TF 2.0 마이그레이션 문서에서 발견It is still possible to run 1.X code, unmodified (except for contrib), in TensorFlow 2.0
GAURAV SRIVASTAVA

tensorflow_core속성 없음 오류가 발생 하면 어떤 TF 버전을 사용하고 있습니까?
MPękalski 2010 년

나는 몇 개의 노트북을 다운로드했으며 대답에서 언급 한 것처럼 맨 위에 진술을 가져 와서 짜증나는 오류를 제거하는 데 도움이되는 이러한 문제에 직면했습니다.
silentsudo

그렇다면 .pbTF2에서 정적 그래프를 어떻게 평가 합니까? 같은 tf1-feature를 사용하는 경우에만 tf.compat.v1.Session(). TF2에서는 항상 eager 모드를 사용해야합니다 .pb.
Arty

55

TF2는 기본적으로 Eager Execution을 실행하므로 세션이 필요하지 않습니다. 정적 그래프를 실행하려면 tf.function()TF2 에서 사용하는 것이 더 적절한 방법입니다 . 세션은 tf.compat.v1.Session()TF2 를 통해 액세스 할 수 있지만 사용하지 않는 것이 좋습니다. hello world의 차이점을 비교하여이 차이점을 입증하는 것이 도움이 될 수 있습니다.

TF1.x 안녕하세요 세계 :

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

TF2.x 안녕하세요 세계 :

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

자세한 내용은 효과적인 TensorFlow 2를 참조하세요.


1
TF2에 eager 모드가 없나요? 아니면 eager 모드는 제안 된 실행 모드 일 뿐입니 까? .pbTF2에 정적 파일 을 갖고 싶다면 어떻게 하나요? 가능합니까? TF2에서 어떻게 평가하나요?
아티

28

설치 후 처음 파이썬을 시도했을 때이 문제에 직면했습니다. windows10 + python3.7(64bit) + anacconda3 + jupyter notebook.

" 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
차라리 TF 2.0에서 Session()제거되지 않고 이동되었다고 말하고 싶습니다 . 사용의 필요성 Session() 이 제거되었습니다.
MPękalski

5

의 경우 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

이 시도

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
간단한 코드를 답변으로 게시하지 마십시오. 구현 / 답변을 설명하십시오.
milanbalazs 2012-08-13

3

이것이 코드 인 경우 올바른 해결책은 Session()TensorFlow 2에서 더 이상 필요하지 않으므로 사용하지 않도록 다시 작성하는 것입니다.

이것이 실행중인 코드 일 경우 다음을 실행하여 TensorFlow 1로 다운 그레이드 할 수 있습니다.

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

(또는 TensorFlow 1최신 버전이 무엇이든간에 )


1.15.x다른이 없어야합니다 1.xTF의 버전, 일부 패치는 오지 있지만 개선하지 않는 한.
MPękalski

1

Tensorflow 2.x는 기본적으로 Eager Execution을 지원하므로 Session은 지원되지 않습니다.


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

0

TF v2.0은 v1.0의 Eager 모드 vs-a-vis 그래프 모드를 지원합니다. 따라서 tf.session ()은 v2.0에서 지원되지 않습니다. 따라서 Eager 모드에서 작동하도록 코드를 다시 작성하는 것이 좋습니다.


TF2는 non-eager 모드를 전혀 지원합니까? 아니면 열망하지 않는 것이 tf1 기능입니까? 그러면 .pbtf2에서 그래프를 어떻게 평가 합니까?
Arty

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

이 코드는 버전 2.x에서 속성 오류를 표시합니다.

버전 2.x에서 버전 1.x 코드를 사용하려면

이 시도

import tensorflow.compat.v1 as tf
sess = tf.Session()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.