반응형
tensorflow-gpu를 설치하고 기본 예제코드를 돌렸을때는 문제가 없었으나 cudnn의 연산을 사용해야하는 cnn을 실행시켰을 때에 지속적으로 이런 메시지를 만나게 되었다.
nvidia driver부터 cuda, cudnn의 재설치를 반복해도 계속 같은 에러를 만나게 되었다. (지친다...)
UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
공식문서를 확인해보니 처음에는 메모리를 조금만 할당하고, 프로그램이 실행되어 더 많은 GPU 메모리가 필요하면, 텐서플로 프로세스에 할당된 GPU 메모리 영역을 확장할 수 있게 해줘야 한다.
해결방법
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
# Currently, memory growth needs to be the same across GPUs
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
except RuntimeError as e:
# Memory growth must be set before GPUs have been initialized
print(e)
이 코드를 맨위에 놓고 kernel restart를 해주면 epoch가 잘 돌아가는걸 확인할 수 있다.
반응형
'개발 > Tensorflow' 카테고리의 다른 글
Tensorflow v2.3 Object Detection API fine tuning (3) (1) | 2021.03.14 |
---|---|
Tensorflow v2.3 Object Detection API fine tuning (2) (1) | 2021.03.14 |
Tensorflow v2.3 Object Detection API fine tuning (1) (0) | 2021.03.14 |
Google Colab session 유지 (2) | 2021.02.06 |
Ubuntu 20.04 tensorflow-gpu 사용하기 nvidia, cuda, cudnn (0) | 2021.02.02 |