요즘 Tensorflow 로 강화학습(Reinforcement Learning) 관련해서 공부를 하고 있습니다.

 

여기서 대부분의 자료가 Tensorflow 1.x 버전을 기반으로 소스코드가 만들어져있어 이를 위해 2.x 버전을 사용중인 저는 다운그레이드를 해야한다는 생각이 들어 자료를 찾다가 나름의 솔루션을 찾아서 공유드리고자 글을 간단히 작성해봅니다.

 

먼저, Tensorflow 2.x 환경에서 1.x 코드를 돌려볼 수 있는 간단한 솔루션이 있긴 합니다.

 

이를 위한 코드는 아래와 같습니다. 

 

해당코드는 강제로 Tensorflow 환경을 1.x로 import 시키고, 2.x 에서 기본설정된 즉시 실행을 비활성화 한다고 이해했습니다.

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

 

하지만, 확실히 완전한 호환은 되지 않는 점을 확인해서 완전한 Tensorflow 1.x 환경을 만들자는 생각이 들어 이를 위한 자료를 찾게 되었습니다.

 

 

 

<현재의 Tensorflow 버전 및 Python 버전 확인>

 

앞서 말씀드렸듯, 콘솔 커맨드 창에서 현재의 tensorflow 버전을 확인 해보신 후 현재버전이 2.x 버전이라면 1.x 소스코드 구동이 원활히 잘 되지 않으실껍니다.

 

현재의 Tensorflow 버전을 확인하는 코드는 아래와 같습니다.

import tensorflow as tf
print(tf.__version__)

 

 

또 다른 주의사항은 tensorflow 1.x (저는 1.15.5 버전 설치) 설치를 위해서는 Python 3.7 이하가 필요한것을 확인했습니다.

 

현재 Python 버전 확인은 아래와 같습니다.

python --version

 

 

<새로운 가상환경 세팅>

 

 Python 버전을 3.7 버전으로 (저는 3.7.16 버전으로 설치) 세팅된 가상환경을 세팅해야 Tensorflow 1.x 버전이 설치가 된다는 사실을 확인 후 새로운 가상환경을 꾸며보기로 했습니다.

 

먼저 새로운 가상환경을 만듭니다.

conda create -n (새로운 가상환경 이름) python 3.7

 

위와 같이 가상환경을 만들면 기본적으로 3.7 버전의 python 기반으로 코드가 돌아가기때문에 Tensorflow 1.x 구동을 위한 기본 환경은 완성됫습니다.

 

다음으로 Tensorflow 1.x 를 설치해줍니다. (저는 임시로 1.15.5 CPU 버전을 설치해줬습니다)

# cpu기반 개발환경일 때, 
pip install tensorflow==1.15.5

#gpu기반 개발환경일 때, 
pip install tensorflow-gpu==1.15.5

 

 

<강화학습을 위한 OpenAI 의 GYM 과 기타 파일 설치>

강화학습을 위해 OpenAI 에서 제공하는 간단한 게임들 기반으로 강화학습을 테스트 해볼 수 있는 Gym 이라는 환경을 설치 해줍니다.

 

그리고 키보드 입력값을 받기 위한 readchar도 설치 해줍니다.

 

마지막으로 이미지와 그래프등을 통해 결과를 확인하기 위한 matplotlib 를 설치 해줍니다.

 

pip install gym
pip install readchar
pip install matplotlib

 

 

이렇게 해서 Tensorflow 1.x 버전 기반으로 강화학습 공부를 해볼 수 있는 Python 3.7버전 기반의 환경이 완성되었습니다.

 

다양한 분들의 블로그에서 자료를 찾아서 저 나름대로 정리를 하여 공유드렸는데, 저처럼 완전 초보인분들께 혹시나 조금이라도 도움이 되셨으면 좋겠습니다.

 

참고했던 블로그는 아래와 같으며, 더 자세한 정보는 해당 사이트들을 통해 확인해보시기 바랍니다.

 

- [Tensorflow] 텐서플로우 버전 확인, 업그레이드, 다운그레이드 방법 (https://jimmy-ai.tistory.com/107)

 

- [Tensorflow]tf 2.x에서 tf1.x 코드 실행하기 (https://nsbg.tistory.com/entry/TensorFlow-tf-2x%EC%97%90%EC%84%9C-tf-1x-%EC%BD%94%EB%93%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0)

 

- I cannot install Tensorflow Version 1.15 through pip (https://stackoverflow.com/questions/61491893/i-cannot-install-tensorflow-version-1-15-through-pip)

 

- ERROR: Could not find a version that satisfies the requirement... (https://lynnn.tistory.com/138)

 

 

 

 

 

Posted by Tommy™
,

홍콩 과기대의 김성훈 교수님의 강의 자료 중에서 CNN 기반 MNIST dataset을 학습시키는 강좌가 있다.

- URL: https://github.com/hunkim/DeepLearningZeroToAll/blob/master/tf2/tf2-11-1-mnist_cnn.py

 

현재 CUDA 와 Tensorflow 2.0 기반으로 환경이 세팅되어있는데, 해당 코드를 돌려보니 갑자기 오류가 발생하면서 디버깅이 되지 않았다.

 

에러코드와 내용은 다음과 같다.

- Loaded cuDNN version 8600 could not locate zlibwapi.dll. Please make sure it is in your library path!

 

이를 해결하기 위해 구글링을 하다보니, 해당 문제를 겪고 있는 사람이 의외로 많이 존재하며, 해결책에 대한 다양한 방법도 제시가 많이 되어있었다. 그중에서 가장 간단하며 눈에 띄는 한가지 솔루션을 발견했는데, 이를 간단히 요약하면, CUDA 가 설치된 폴더에서 zlib.dll 파일을 찾아서 복사 후 zlibwapi.dll 파일명으로 변경하고, 특정 폴더에 복사하라는 내용이었다.

- URL: https://stackoverflow.com/questions/72356588/could-not-locate-zlibwapi-dll-please-make-sure-it-is-in-your-library-path/74298473#74298473?newreg=d2b975f85b5c49e793202e372ccb7505 

 

Could not locate zlibwapi.dll. Please make sure it is in your library path

I am working on a object detection project and wanting to process the project with my GPU. I have completed the NVIDIA setup tutorial and everything works fine. My object detection code originally ...

stackoverflow.com

 

해당 댓글대로 나의 세팅 환경에 따라 적용 해보았더니 해당 오류코드가 사라지면서 문제없이 잘 컴파일 되고 디버깅이 되었다.

- Copy from : C:\Program Files\NVIDIA Corporation\Nsight Systems 2023.1.2\host-windows-x64\zlib.dll

- Renamed file : from "zlib.dll" to "zlibwapi.dll"

- Paste to : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin

 

 

혹시나 동일한 문제를 겪으시는 분들이 계시다면 문제 해결을 위해 투자될 시간을 아끼시는데 조금이라도 도움이 되셨으면 좋겠다는 마음으로 솔루션에 대한 저의 해결책을 이 글을 통해 공유합니다.

 

 

 

 

 

Deep learning 공부 시작과 참고한 관련 자료 소개

 

Deep learning 공부 시작과 참고한 관련 자료 소개

2010 초중반부터 현재까지 매우 핫한, 하지만 관련 연구는 오랫동안 진행되어온 연구분야인 인공지능과 머신러닝, neural network, 그리고 deep learning 관련 공부를 뒤늦게나마 매우 열심히 하고 있다.

tommyhsm.tistory.com

 

Posted by Tommy™
,

2010 초중반부터 현재까지 매우 핫한, 하지만 관련 연구는 오랫동안 진행되어온 연구분야인 인공지능과 머신러닝, neural network, 그리고 deep learning 관련 공부를 뒤늦게나마 매우 열심히 하고 있다.

 

특히, deep learning 과 관련된 공부를 하다보니, 그 성능에 대한 놀라움과 환희를 넘어 걱정까지도 드는 상황이다.

 

스페인에서 박사과정을 진행하고 있었던 2016년 3월, 대한민국의 이세돌 9단과 영국의 AI 프로그램 개발 회사인 DeepMind 에서 만든 알파고(AlphaGo) 간의 바둑 대결이 펼쳐졌었다. 이는 당시 세계 최고의 바둑 인공지능 프로그램과 바둑의 최고 실력자로 손꼽히는 인간과의 대결로 주목을 받았었는데, 놀랍게도 1승 4패로 인공지능이 완승해버리는 어처구니 없는 상황이 발생했다. 

 

이때까지만 해도 인공지능과 deep learning 의 가능성을 느끼고 흥미와 관심은 두었었지만, 깊게 공부는 시도 할 엄두가 나지 않았었다. 아니, 용기가 없었다고나 할까..? 하지만 몇년이 지난 지금은 인공지능 프로그램에 번역을 의뢰하고, 시험 문제 정답을  물어보는 학생들로 인해 학교에서는 크나 큰 논란이 되고 있다. 또한, 사용자의 간단한 명령어 입력 만으로 그림도 알아서 그려주며, 심지어 인간의 영역으로만 손꼽혔던 작곡과 시를 짓는 상황까지 와버렸다. 강화학습을 통해 이제는 게임도 인간보다 잘하는 시대가 온 것이다. 가히 놀라움을 넘어 경외스러울 정도로 발전한 인공지능 기술을 확인 할 수 있는 요즘이다.

 

이러한 인공지능을 이제라도 맛을 보며 시작해보고 공부해보자는 생각이 강하게 들어 틈틈히 관련 공부를 시작하기로 했으며, 열심히 인터넷 교수님들의 도움을 받아 시간나는대로 수강을 시작했다.

 

현재 참고하고 있는 자료를 혹시나 필요하신 분이 계실 수도 있으니, 간단히 공유하고자 한다.

 

제일 먼저 참고했었던 곳은 "So Dabang" 님의 블로그인데, 해당 페이지에서 deep learning 공부를 위한 첫 시작에 필요한 자료를 참고 할 수 있었다. 해당 페이지에는 deep learning 관련 강좌에 대한 설명과 링크를 공유해주셔서 쉽게 접근할 수 있었다.

- URL: https://sodabang.wordpress.com/2016/06/26/deep-learning-%EC%9E%85%EB%AC%B8%EC%9E%90%EB%93%A4%EC%9D%84-%EC%9C%84%ED%95%9C-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-%EB%AA%A8%EC%9D%8C/

 

Deep Learning 입문자들을 위한 튜토리얼 모음

그동안 외면해왔던 딥러닝의 열풍을 무시할 수 없음을 받아들이고 여름 방학 동안 드디어 딥러닝을 본격적으로 공부해보기로 했다. 학계야 계속 그때 그때 여러가지 토픽들이 새롭게 떠오르고

sodabang.wordpress.com

 

두번째는 HongLab 대표이신 홍정모 박사님 (자료 공유 당시였던 2016년 쯤에는 동국대 교수님 이셨던거 같다.)의 C++ 로 배우는 deep learning 강좌였다. 지금까지 C 와 C++ 을 주로 활용하여 연구개발 및 공부를 해왔던 한 사람으로써, 해당 강좌를 통해 기본 컨셉과 C++ 기반으로 deep learning 코드를 작성하는 방법, 심지어 코드까지 공유해주셔서 첫 프로그래밍을 시작하는데 크나 큰 도움을 받았던 홈페이지다. 2016년에 이런 훌륭한 강좌가 무료로 오픈되었었고 또 지금까지도 유익하게 잘 활용되고 있다는 점에서 정말 놀라우며, 너무나도 감사한 마음으로 deep learning 공부를 위한 첫 시작을 할 수 있었다.

- URL: https://blog.naver.com/honglabcokr/220697890605

 

C++로 배우는 딥러닝

  New in 2018 무엇이든 물어보세요! Gram Matrix 설명 (Style transfer) New in 2017 Sutton ...

blog.naver.com

 

세번째이자 deep learning을 이해하는데 가장 큰 도움을 받았던 홍콩 과기대의 김성훈 교수님의 deep learning 강좌였다. Deep learning에 대한 기초 개념부터 역사, 그리고 강좌를 오픈하셨던 2016년 당시까지의 연구근황 등을 천천히 차근차근 구체적으로 설명 해주셨으며, 매 실습강좌에 활용하셨던 Tensorflow 1.0 과 2.0 코드 전체를 Github을 통해 공유해주셨다. Tensorflow에 대해 생소했던 나는 해당 강좌를 통해 쉽게 접근 할 수 있었으며, 간결한 코드로 인해 이론과 실습을 동시에 잘 진행 할 수 있었다. 다회차 시청을 통해 이제는 코드를 원하는대로 시험 해볼 수 있는 단계까지 발전하는데 크나 큰 도움을 받았다. 

- URL: http://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

 

이제는 neural network와 deep learning 기반으로 간단한 프로젝트를 수행하고, 지금까지 해왔던 나의 연구분야와 잘 버무려서 시너지효과가 날 수 있도록 재밋는 연구를 하기 위한 준비를 하고 있는 상황이다. 앞으로 관련된 공부 혹은 문제 해결 등의 자료를 시간나는대로 틈틈히 공유할 계획이다. 

 

현실판 아이언맨이라고 불리우며, 테슬라와 스페이스X, 그리고 X(구 트위터) 최고 경영자인 일론 머스크가 했던 말을 마지막으로 인용하고자 한다. 일론 머스크는 미래에는 '20 대 80의 사회'가 될것이라고 예측했으며, 이는 오직 20% 사람들만 의미있는 직업을 갖게 될것이며, 80% 는 인공지능이 대체할 것이라고 했다. 또한, 인공지능 개발자가 인류 최후의 마지막 직업이 될 것이며, 이마저도 인공지능에 의해 사라질 것이다고 예견했다.

 

인공지능의 가능성과 잠재력을 확인한 지금의 나로써는 이에 정말 공감하며, 한편으로는 조금은 끔찍할 수도 있는 걱정스러운 말로 받아들여졌지만, 현 상황에서 아직까지는 조금 먼 이야기라 생각이 든다. 가장 중요한 핵심은 인공지능 관련 연구는 사람이 풀지 못하는 난제를 해결하는데 큰 도움을 주는 등 그 가능성을 여실히 잘 보여주고 있고, 많은 분야에 긍정적인 영향을 끼치고 있으며, 현 인류에게 있어 많은 도움을 줄 연구분야인건 틀림없는 사실이다.

 

이제 막 인공지능에 눈을 뜬 한명의 이름모를 듣보잡 연구자 이지만, 사회와 과학의 발전에 미약하나마 조금이라도 기여하기 위해 인공지능과 deep learning을 좀 더 깊이 파보고 또 이를 혹시나 다른분들께 도움이 되는 부분이 있다면 마땅히 공유하고자 한다. 화이팅!

 

 

'[ Topics ] > Deep learning' 카테고리의 다른 글

Tensorflow 2.x 에서 1.x 로 다운그레이드  (0) 2024.03.25
zlibwapi.dll error in Tensorflow 2.0  (0) 2023.09.01
Posted by Tommy™
,