Tensorflow_io는 GPU를 사용하여 파일 로드, 디코딩, 전처리 등을 빠르게 할 수 있어서 매우 유용한 툴이다. 필자 또한 다수의 파일을 읽고 전처리할 때 사용하고 있다. 처음에는, 각 파일별로 전처리한 결과를 저장해 놓고 그때 그때 저장해둔 전처리 결과물을 로딩하여 사용했으나, Tensorflow_io를 사용한 이후 부터는 실행하는 Runtime 시점에 파일로딩->전처리까지 실시간으로 처리하여도 속도 측면에서 뛰어남을 체감하고 있다.
더욱이, 전처리하는 과정에서 일부 수정이 발생하면, 미리 저장해둔 전처리 결과물을 재 생성해야 한다. 이 때문에, 전처리 과정에서 파라미터 변경 등에 따른 실험이 필요하다면 필수적으로 Tensorflow_io를 사용하게 될 것 이다.
그런데,
Tensorflow_io를 실행하자 마자 에러가 발생하는 경우가 있다.
보통 tensorflow_io의 Audio 모듈을 사용할 경우이다.
아래와 같이 NotImplementedError가 발생하기도 한다. 특히 Tensorflow 최신버전을 사용하는 경우, 이러한 현상이 더욱 빈번하게 발생하는 듯 하다. 구글링을 통하여 검색해 보면, Conda repository에서 아직 지원을 하지 않는다는 등의 이야기가 있는데, 거두 절미하고 필자가 얻은 답은 "버전 문제" 때문이다. 버전 미스매칭 때문에 발생하는 일인데, 최근 Tesnorflow_io에서 라이브러리의 경로 등이 변경된것이 아닌가 추정하고 있다.
NotImplementedError: in user code:
(중략)
File "/home/svcapp/.local/lib/python3.9/site-packages/tensorflow_io/python/ops/__init__.py", line 69, in _load_library
raise NotImplementedError(
NotImplementedError: unable to open file: libtensorflow_io.so, from paths: ['/home/svcapp/.local/lib/python3.9/site-packages/tensorflow_io/python/ops/libtensorflow_io.so']
caused by: ['/home/svcapp/.local/lib/python3.9/site-packages/tensorflow_io/python/ops/libtensorflow_io.so: undefined symbol: _ZNK10tensorflow4data11DatasetBase8FinalizeEPNS_15OpKernelContextESt8functionIFNS_8StatusOrISt10unique_ptrIS1_NS_4core15RefCountDeleterEEEEvEE']
여러가지 시도를 해 보았으나, 필자가 해결한 방법은 특정 버전으로 다시 설치하는 방법이다. 필자는 아래와 같이 기존 tensorflow_io를 삭제하고 0.23.1 버전으로 재설치한 후 문제가 해결 되었다.
!pip uninstall tensorflow_io -y
!pip install tensorflow_io==0.23.1
참고적으로, 구글링의 결과로 아래와 같이 "--no-deps" 옵션으로 재설치하라는 가이드도 존재하였으나, 필자의 경우 문제가 해결 되지 않았다. 경우에 따라서는 도움이 될 수 있으나, 추가로 첨부하고자 한다.
pip uninstall tensorflow
pip uninstall tensorflow-io
pip install tensorflow-gpu
pip install --no-deps tensorflow-io
머신러닝을 어떻게 시작할것인가? (7) | 2020.03.15 |
---|---|
머신러닝 개념 (2) | 2020.03.15 |
댓글 영역