[python] Tensorflow 2.0-AttributeError : ‘tensorflow’모듈에 ‘Session’속성이 없습니다.

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 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 를 참조
하십시오.


답변

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를 참조하세요.


답변

설치 후 처음 파이썬을 시도했을 때이 문제에 직면했습니다. 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))


답변

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


답변

이 시도

import tensorflow as tf

tf.compat.v1.disable_eager_execution()

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

sess = tf.compat.v1.Session()

print(sess.run(hello))


답변

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

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

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

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


답변

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