[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와 함께 설치됨)
재현 단계 :
설치:
- pip 설치-pip 업그레이드
- pip install tensorflow == 2.0.0-alpha0
- pip 설치 keras
- pip 설치 numpy == 1.16.2
실행:
- 명령 실행 : tf로 tensorflow 가져 오기
- 명령 실행 : sess = tf.Session ()
답변
에 따르면 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
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은 지원되지 않습니다.