IT_World

[Python] device_lib.list_local_devices() log error 본문

Artificial intelligence, AI/error

[Python] device_lib.list_local_devices() log error

engine 2021. 5. 6. 16:46

현 작업 상황을 기록하고 싶던 중 tensorboard, plt, scalar 고민하다가 log text file로 남기기로 결정했다.

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

를 사용하면 CPU랑 GPU 모두 출력되야 하는데 cpu만 출력되는 문제 발생

 

device_lib.list_local_devices () no gpu

print(device_lib.list_local_devices()) none 

 

log 정보를 파일로 저장하기 위해 코드를 돌리던 중

  IndexError: list index out of range 에러발생

logger.INFO:OS : Linux
logger.INFO:OS Version : #
logger.INFO:CPU : Intel(R) Core(TM) i9-10900K CPU 
logger.INFO:Process information : x86_64
logger.INFO:RAM Size : 
logger.INFO:Disk Size : 

Tensor flow가 내 GPU를 보지 못하는 것 같다. cpu만 주르륵 나오고 gpu관련 내용을 보려 하면 error 파티였다.

1 step : protobuf 제거

pip uninstall protobuf

2 step : Tensor flow 제거

pip uninstall tensorflow
pip install tensorflow-gpu

3 step : GPU 지원으로 Tensor flow 강제 재설치

pip install --upgrade --force-reinstall tensorflow-gpu

4 step : 아직 설정하지 않은 경우 CUDA_VISIBLE_DEVICES를 설정

 os : Ubuntu 

 1) cmd 창 열기 : ctrl + t

 2) vi bashrc./

  (1) GPU가 1개 일 경우 : 

export CUDA_VISIBLE_DEVICES=0

  (2) GPU가 2개 일 경우 : 

export CUDA_VISIBLE_DEVICES=0,1

 

 저장하고 나가기 : ESC :wq Enter 

 수정 후 적용  : source ~/. bashrc

 

5 step : tensor flow-gpu 구성 셀 추가

import tensorflow as tf
with tf.device('/gpu:0'):
  a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
  b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
  c = tf.matmul(a, b)

다 실 패

 

그러던 중 대망의

6 step : conda 설치

conda install tensorflow-gpu

발견해서 혹시나 하는 마음에 설치했더니

드디어 gpu 로그 출력 성공!

 

 

Comments