Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코로나19
- 편스토랑
- ChatGPT
- 데이콘
- Git
- 파이썬
- Real or Not? NLP with Disaster Tweets
- SW Expert Academy
- PYTHON
- AI 경진대회
- leetcode
- programmers
- ubuntu
- 프로그래머스 파이썬
- 편스토랑 우승상품
- 자연어처리
- 맥북
- Docker
- 우분투
- dacon
- 금융문자분석경진대회
- Kaggle
- 백준
- 캐치카페
- 더현대서울 맛집
- gs25
- 프로그래머스
- hackerrank
- github
- Baekjoon
Archives
- Today
- Total
솜씨좋은장씨
[TF1.x] Tensorflow RuntimeError: Attempted to use a closed Session 오류 해결 방법 본문
머신러닝 | 딥러닝/TensorFlow | Keras
[TF1.x] Tensorflow RuntimeError: Attempted to use a closed Session 오류 해결 방법
솜씨좋은장씨 2021. 1. 8. 02:49728x90
반응형
with tf.Session() as sess:
# Initialize TensorFlow variables sess.run(tf.global_variables_initializer())
sess.run(tf.global_variables_initializer())
for step in range(10001):
cost_val, _ = sess.run([cost, train], feed_dict={X: x_data, Y: y_data})
if step % 200 == 0:
print(step, cost_val)
# Accuracy report
h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})
print("\nHypothesis: ", h, "\nCorrect (Y): ", c, "\nAccuracy: ", a)
친구의 과제를 도와주던 중 위와 같이 with tf.Session() as sess: 를 활용하였을 때
아래와 같이 Attempted to use a closed Session. 이라는 오류가 나는 것을 보았습니다.
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-69-1b454afcd20f> in <module>()
7 print(step, cost_val)
8 # Accuracy report
----> 9 h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})
10 print("\nHypothesis: ", h, "\nCorrect (Y): ", c, "\nAccuracy: ", a)
1 frames
/tensorflow-1.15.2/python3.6/tensorflow_core/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1101 # Check session.
1102 if self._closed:
-> 1103 raise RuntimeError('Attempted to use a closed Session.')
1104 if self.graph.version == 0:
1105 raise RuntimeError('The Session graph is empty. Add operations to the '
RuntimeError: Attempted to use a closed Session.
이 글에서는 이 오류를 해결하는 방법을 적어보려 합니다.
원인
먼저 해당 오류가 발생하는 원인은 with tf.Session() as sess:를 활용하면
학습이 끝나고 나면 sess ( Session )를 알아서 자동으로 close를 하였는데
with 바깥에서 다시 sess를 호출하려고 할 때 이미 close 된 sess를 호출 하려고 하여 발생하는 문제입니다.
해결 방법
먼저 위의 코드에서는
h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})
이 부분을 with 범위 안으로 넣어주면 됩니다.
with tf.Session() as sess:
# Initialize TensorFlow variables sess.run(tf.global_variables_initializer())
sess.run(tf.global_variables_initializer())
for step in range(10001):
cost_val, _ = sess.run([cost, train], feed_dict={X: x_data, Y: y_data})
if step % 200 == 0:
print(step, cost_val)
# Accuracy report
h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})
print("\nHypothesis: ", h, "\nCorrect (Y): ", c, "\nAccuracy: ", a)
다른 방법은 with tf.Session() as sess:를 사용하지 않고 sess = tf.Session() 을 활용하는 방법입니다.
sess = tf.Session()
# Initialize TensorFlow variables sess.run(tf.global_variables_initializer())
sess.run(tf.global_variables_initializer())
for step in range(10001):
cost_val, _ = sess.run([cost, train], feed_dict={X: x_data, Y: y_data})
if step % 200 == 0:
print(step, cost_val)
# Accuracy report
h, c, a = sess.run([hypothesis, predicted, accuracy], feed_dict={X: x_data, Y: y_data})
print("\nHypothesis: ", h, "\nCorrect (Y): ", c, "\nAccuracy: ", a)
sess.close()
sess = tf.Session()을 활용할 경우 마지막에 모든 작업이 끝나고 난 후 sess.close( )로 close 해주면 됩니다.
읽어주셔서 감사합니다.
'머신러닝 | 딥러닝 > TensorFlow | Keras' 카테고리의 다른 글
[TF2.0] Tensorflow 2.0 GPU 사용 가능 여부 확인하기 (0) | 2020.10.06 |
---|---|
[TensorFlow] ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory 해결 방법 (0) | 2020.07.20 |
[TF2.0] MNIST - ValueError: Shapes (32, 10) and (32, 1) are incompatible 해결 방법 (10) | 2020.06.28 |
[Keras]기사 제목을 가지고 긍정 / 부정 / 중립으로 분류하는 모델 만들어보기 (56) | 2019.10.07 |
[Keras]영화 평점, 줄거리를 가지고 평점 예측 모델 만들어보기 (6) | 2019.09.27 |
Comments