AI_in_Practice: Scikit-learn and Keras 가장 쉬운 기계학습 강의록 [Scikit-learn and Keras] [예제 프로그램 묶음] by 바죠

2021년 1월 6일 (5일 강의)

강의제목: Artificial Intelligence in Practice : Scikit-learn and Keras
강의목적: 인공지능 기초 및 실습 ( scikit-learn, Xgboost, lightGBM, keras ) 상세내용은 하단 컨텐츠 참조. 
한국표준과학연구원(KRISS) / 한국물리학회 통계물리학 분과 겨울학교 / 카이스트 / 고등과학원 / 서울시립대학교 강의 자료를 기본으로 하고 있다. (각각 8시간, 5시간, 3시간, 2시간) 하지만, 범용성을 가지고 있는 인공지능 강의 자료입니다.
강의 자료 (주석 포함): 무료 소프트웨어 설치 안내 및 강의자료 
KRISS 원내 강의/실습분 5편 동영상은 이메일로 전달 가능합니다.
비공개 덧글로 이메일 주소를 남겨주십시요. 감사합니다.


강의 기본 실습자료 (각자의 PC에 설치된 아나콘다/주피터 노트북을 활용한 실습을 진행한다.)[윈도우즈, 맥, 리눅스]:
강의 일자별 상세 실습자료 (별도 자료) 다운로드: http://incredible.egloos.com/7508607
깃허브 자료 참조 바랍니다. https://github.com/inholeegithub/summer2022/tree/main/ML

testAI.zip 파일은 사용자 디렉토리 (예를 들어, C:/Users/ADMIN, C:/Users/ihlee) 아래에서, 압축을 풀어놓으면 되는 파일입니다.
(내 PC 로컬디스트 (C:) 사용자(또는 Users) ADMIN(또는 각자 PC 관리자 영문 이름))

주피터 노트북 처음 사용하시는 분들을 위한 자료:
Machine learning은 결국 좌표변환과 같은 것이다. 저 특별한 좌표변환은 최적화를 통해서 이루어진다. 
3요소를 확실히 기억해야 한다. 3요소를 기억하면 항상 편리하다. 3요소를 가지지 않으면 기계학습이 될 수 없다. 모델을 구성하는 것은 tensorflow/keras가 도와 준다. keras는 tensorflow에 완전히 포함되었다. 아주 친절하게 도와준다. 모델이 만들어지면 그 모델을 평가할 것이다. 이 모델이 얼마나 좋은 성능을 발휘하는가? 이것이 evaluation이다. 모델을 어떻게 수치적으로 만드는가? 그것은 최적화를 통해서 가능하다. 이것이 optimization이다.  어떠한 데이터를 넣어야 하는가? 데이터를 그냥 넣어주면 되는가? 그렇지 않다. 잘 가공해서 넣어야 한다. 관측자와 무관한 양을 넣어야 한다. 해당분야 전공지식이 반드시 필요한 영역이다. 관측자에 무관한 양이 텐서이다. 예를 들면, 실제 좌표 숫자보다는 결합거리, 결합 각도처럼 텐서를 넣어야 결국에 텐서의 흐름, 텐서플로우를 얻어낼 수 있다. 이렇게 텐서를 잡아주는 것 그것이 표현자(표현식)이다. representation이다. 가장 중요한 작업은 좋은, 유효한 representation을 찾는 것이다. 각 분야별로 전문 지식이 필요하다. 인공지능은 모든 분야에서 활용되는 공통의 방법이다. 즉, 기초 수학같은 것이다. 실제 데이터를 잘 설명하려고 하면 실제 데이터를 잘 설명하는 모델을 만들어야 한다. 이 모델을 만드는 과정이 최적화 과정이다. 최적화를 이루기 위해서는 목적함수를 정의해야 한다. 목적함수는 오류 함수 일 수 있다. 회귀문제는 실측값과 예측치의 차이들을 모두 제곱해서 더한 것. 분류에서는 교차 엔트로피 또는 쿨백-라이블러 발산을 계산하는 것. 이들이 좋은 목적함수가 될 수 있다. 목적함수를 최적화 해야 한다. 
---------------------------------------------------------------------------------------------------------------------

통계 물리학분과 겨울학교 [2020년 1월13일--17일](http://incredible.egloos.com/7477666) 강의록  
Machine Learning in Practice: Scikit-learn & Keras [강의 자료][슬라이드 주석이 포함됨.]
pdf 파일 합치는 방법: adobe acrobat reader DC [acrobat] 도구   파일 결합을 선택합니다.
학회 홈페이지 (교장: 고광일 교수) : [APCTP - The 17th KIAS-APCTP Winter School on Statistical Physics]
학회 홈페이지 강의자료 모음 : APCTP - The 17th KIAS-APCTP Winter School on Statistical Physics  [슬라이드 주석이 포함되지 않음.]

전반적인 세팅은 동일한 강의자료이다. 하지만, 이 겨울학교 강의에서는 실습을 직접 강의시간에 수행하지 않았다. [시간 부족]

---------------------------------------------------------------------------------------------------------------------

--컨텐츠--
기계학습의 분류와 요소 : http://incredible.egloos.com/7394445
가장 쉬운 딥러닝 (deep learning) : http://incredible.egloos.com/7454154
파이썬을 활용한 딥러닝 (deep learning) : http://incredible.egloos.com/7447256
가장 쉬운 드랍아웃 (dropout) : http://incredible.egloos.com/7479504 
가장 쉬운 CNN (convolutional neural network) : http://incredible.egloos.com/7473416
텐서플로우(2.0, CPU, GPU) : https://www.tensorflow.org/
가장 쉬운 랜덤 포레스트(random forest) : http://incredible.egloos.com/7480340
가장 쉬운 보팅 앙상블 (voting ensemble) : http://incredible.egloos.com/7478090
가장 쉬운 XGBoost : http://incredible.egloos.com/7478695
가장 쉬운 LightGBM [분류, 회귀] (regression, classification) : http://incredible.egloos.com/7479081
가장 쉬운 가우시안 프로세스 (Gaussian process) : http://incredible.egloos.com/7482529
가장 쉬운 베이지안 옵티마이제이션 (Bayesian optimization) : http://incredible.egloos.com/7479039
가장 쉬운 디노이징 오토인코더 (denoising autoencoder) : http://incredible.egloos.com/7479749
유전 알고리듬 (genetic algorithms; GA) : http://incredible.egloos.com/4856511
입자 군집 최적화 (particle swarm optimization) : http://incredible.egloos.com/4731015
GA vs VAE/GAN(GA vs variational autoencoder/generative adversarial network) : http://incredible.egloos.com/7506440
표현식(representation)과 다양성(diversity)에 대해서 : http://incredible.egloos.com/7499983 
conformational space annealing : http://incredible.egloos.com/6208916
물리학과 첨단기술 2017, 초기능성 소재 설계 및 탐색의 방법과 응용 : 지난호 보기 | 물리학과 첨단기술 (kps.or.kr) 
물리학과 첨단기술 2018, 현대의 유전 알고리듬 : 지난호 보기 | 물리학과 첨단기술 (kps.or.kr)
---------------------------------------------------------------------------------------------------------------------

인공지능 강의가 구체적으로 추구하는 목표:
인공지능의 역사, 목적을 이해한다. 특히, 2012년 딥러닝의 출현을 역사적으로 이해한다.
기존에 존재하는 수학적 절차와의 차별성을 이해한다. 새로운 수학적 방법이 탄생함을 이해한다. 신뢰도를 유지하고 있는 것.
인공지능으로 자신의 과학적/인문학적 문제를 풀 수 있는지 생각한다. 
비연역적 접급법의 유용성과 귀납적 데이터 처리의 차별성을 이해한다.
기계학습의 3요소와 4가지 형식을 정확히 인지한다. 자신이 하고 있는 것이 어떠한 작업인지를 인식한다.
인공지능의 3가지 도구들을 모두 이해한다. 적용분야를 정확히 인식한다.
기계학습의 핵심은 차원축소, feature importance의 유도이다. 
표현식(representation)의 개발에 집중한다.
기계학습은 분류성능을 극대화하기 위한 일반적이고 새로운 좌표계의 도입이다.
매우 다양한 비지도학습의 의미들과 그들의 적용범위/유용성을 이해한다.
통계학 기반 decision tree, random forest, XGBoost, lightGBM, Bayesian optimization을 모두 이해한다.
이들 통계학 기반 모델들이 잘 적용될 수 있는, 즉, 딥러닝 분야의 것들 보다 뛰어날 수 있는 분야를 이해한다.
다양한 인공신경망의 구성들은 분류모델과 생성모델을 각각 가능하게끔한다.
생성모델들의 구성과 훈련을 모두 이해한다.
CNN의 도입과 응용을 실습한다. 이 모델의 계산상의 이득과 성능상의 이득을 동시에 이해한다.
딥러닝을 활용한 분류와 회귀 성능을 각각 경험한다.
인공신경망의 역할이라는 관점에서 특정문제 풀이에 적용될 수 있는 가능성을 도출한다.
응용분야별로 중요해질 수밖에 없는 표현식의 중요성을 검증한다.
응용분야별로 특화된 신뢰도 높은 새로운 수학적 계산 절차를 구성할 수 있음을 이해한다..
응용분야별로 특화된 역방향 계산들이 광역최적화 방법을 통해서 가능함을 이해한다.
변이와 교차의 특성을 각각 이해하고 이것의 역할이라는 관점에서 문제 풀이를 이해한다.
GPU(쿠다 툴키트, cuDNN, tensorflow-gpu)를 활용한 가속화에 필요한 장비와 소프트웨어를 이해하고 실습한다.

---------------------------------------------------------------------------------------------------------------------

--사전 준비물--
Anaconda3 [파이썬 3.7] 설치, 딥러닝 연구환경 준비 : http://incredible.egloos.com/7504545
가장 친절한 Anaconda3 설치, 가상환경(자신만의 이름을 지어준다.) 설정, 그리고  딥러닝 연구환경 구축  
Anaconda3 설치, 가상환경 설정하기 : https://www.youtube.com/watch?v=vNzPRwzaDS4
jupyter notebook 실행 그리고 딥러닝 도구 텐서프로우 설치 확인 : https://www.youtube.com/watch?v=Qh_zGt4ZOZw
jupyter notebook 사용법 : https://www.youtube.com/watch?v=SLPo0o_HArs
Anaconda3에서 일반적인 패키지 설치하는 세가지 방법들 : https://www.youtube.com/watch?v=EI_xyppkWCA
conda 또는 pip에 대한 전반적인 설명 : https://www.youtube.com/watch?v=HCIJC0jnMEQ

Python 3.7, tensorflow, keras (CPU/GPU 버전) 이외에도 아래의 라이브러리를 사용하실 수 있는 컴퓨터에 추가로 설치한 후 강의에 참가해 주십시요. [scikitlearn, numpy, scipy, matplotlib는 자동으로 설치되어 있습니다.]
Anaconda3 설치한 후 각종 패키지를 추가로 설치해 주십시요.

---------------------------------------------------------------------------------------------------------------------

Anaconda3 설치 방법 (윈도우즈10 환경 기준):
Anaconda | Individual Edition "URL 클릭 https://www.anaconda.com/products/individual"  
 접속 후 "download" 문구 클릭
"64-Bit Graphical Installer (457 MB)" 문구를 확인하여 파일을 다운로드 받는다.
 내 PC에 저장된 다운로드 파일을 클릭하여 실행시킨다. 
Anaconda3 설치를 할 때 아래 두가지 항목에 주의 한다.  
[두가지 선택 버튼들을 아래와 같이 한다.]
all user를 대상으로 사용할 수 있게 설치한다. 
경로(path)가 잡히도록 설치한다.

Anaconda3 설치 직후:
시작   Anaconda Prompt (Anaconda3) 클릭한다. 
→ 생성된 검은색 창 Anaconda Prompt (Anaconda3)에서 몇 가지 종류의 명령어들을 넣어 준다.
이 명령어들은 이름을 가지는 가상환경 생성 그리고 그 가상환경에 꼭 필요한 패키지 설치와 관련된 것들이다. 
자신이 원하는 가상환경, "testAI"라는 이름으로 가정한다. 
[고유의 이름을 가지는 가상환경 생성 명령어] 
[여기에서는 특별히 AI 학습에 필요한 것들을 의미한다.]
입력해야하는 명령어들의 순서는 아래와 같다. 
이미 생성되어 있는 기본(base) 가상환경에서 출발 하여 새로운 가상환경을 만든다.
conda create -n testAI
conda activate testAI
conda install tensorflow
pip install keras
pip install jupyter notebook
pip install matplotlib
pip install opencv-python
pip install imageio
pip install imgaug
pip install xgboost
pip install lightgbm
pip install catboost
pip install bayesian-optimization
pip install scikit-optimize
pip install mlens
pip install deslib
pip install graphviz
pip install pydot

{cuda를 이용할 경우, NVIDIA GPU 장비가 있는 경우.}
{
conda install -c anaconda cudatoolkit
conda install -c anaconda cudnn
conda install -c anaconda tensorflow-gpu

conda list cudatoolkit
conda list cudnn
nvidia-smi
nvcc --version
}

이미 설치된 패키지에 대해서는 기존 설치정보를 출력하고 설치작업을 자동으로 건너뛴다.
아래의 세 줄의 명령어들은 주피터 노트북과 관련된 명령어들이다. 
[위의 명령어들에 연속해서 실행하는 것들이다.] [설치작업의 연속이다.]
pip install  ipykernel
python   -m    ipykernel    install     --user     --name=testAI
jupyter notebook  --generate-config
[여기에서 가상환경 구성 작업이 종료된다.] 
아래의 명령어를 입력하면 Anaconda Prompt (Anaconda3) 창에서 나올 수 있다.
exit
Anaconda Prompt (Anaconda3) 에서 나오기 전에 설치된 패키지를 볼 수 있는 명령어:
conda env list
현재 보유하고 있는 가상환경들의 목록을 확인할 수 있다.
exit를 이용하여 Anaconda Prompt (Anaconda3)에서 나올 수 있다.

새롭게 들어가고자 할 때, 즉, 이번에는 설치가 아니고 jupyter notebook으로 프로그램을 만들 때:
시작  → Anaconda Prompt (Anaconda3) 클릭한다.
→   
conda activate  testAI 
→   
jupyter notebook
검은색 창과 브라우저가 동시에 생성된다.
웹브라우저 창은 창닫기로 종료한다.
검은색 창에서 jupyter notebook 실행을 중지하는 방법: "control + C"를 입력하는 것이다.

주피터 노트북(jupyter notebook)을 실행하는 방법:
시작 -->  jupyter notebook (anaconda3)  클릭 
검은색 창과 웹브라우저가 동시에 생성된다.

jupyter notebook 실행 후, 아래의 파이썬 코드를 이용해서 텐서플로우의 설치 여부를 확인할 수 있다.
→  new →  testAI 선택한다. python3을 선택하지 않는다.
import keras
print(keras.__version__)
2.4.3
import sklearn
print(sklearn.__version__)
0.23.2
import tensorflow as tf
print(tf.__version__)
2.3.0

jupyter notebook 실행애서 kernel error 발생할 때 아래와 같은 추가 패키지 설치가 필요합니다.:
pip install pywin32

주피터 노트북 connection fail 에러가 발생할 경우:
conda install -c conda-forge pywin32
conda install -c anaconda jupyter_client
conda install -c conda-forge jupyter_core


---------------------------------------------------------------------------------------------------------------------

사용자(Users) 폴더 밑에 한글명 또는 빈칸(blank)이 포함된 사용자 이름의 경우
사용자(Users) 폴더에 새로운 폴더를 만든다. 영문으로 하고 빈칸없이 만든다. 쓰기 권한을 준다.
그곳에 anaconda3을 설치한다. anaconda3 설치할 때, 이 폴더위치를 정확하게 직접 설정해 준다. 이곳 아래에 있는
anaconda3\Scripts 폴더를 경로에 넣어주어야 한다.
[제어판  시스템 및 보안  시스템  고급 시스템 설정  환경변수  path  편집
환경변수설정, 편집, 경로에 새롭게 추가 작업을 한다.

C:\Users\ ....... 처럼 넣어 준다.

---------------------------------------------------------------------------------------------------------------------

위에서 설치한 graphviz 프로그램의 경우, 설치후, 설치된 경로를 알아내어야 한다. 
graphviz는 인공신경망 구성을 나타내는 그림 그리기, decision tree를 표시하는 그림 그리기에 사용된다.
반드시 설치해야 하는 것은 아니다.
이 경로를 환경변수 설정에 추가해주어야 한다.
1. conda install graphviz
2. conda install python-graphviz
graphviz 가 설치된 곳으로 이동하여, 경로를 복사한다.
환경변수의 PATH에 추가하는 것이 목표이다. 
시스템 어디에서나 dot.exe를 실행 할 수 있도록 합니다. 
예를 들어, 아래와 같은 문구를 환경변수 PATH에 추가한다.
C:Program Files (x86)Graphviz2.38bin
(
위 설치만으로도 graphviz 는 문제 없이 실행될 것임. 하지만 만약 문제가
발생한다면, 아래와 같이 해결 시도:
① https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi
URL 을 통해 graphviz-2.38.msi 다운로드 및 설치
② 디폴트 설치 경로인, C:Program Files (x86)Graphviz2.38 에 설치
③ 환경변수 설정: 내 PC → 마우스 우 클릭 → 속성 → 고급 시스템 설정 →
환경 변수 → 시스템 변수 섹션에서 Path 환경 변수를 찾아 “편집” 클릭 →
찾아보기 → 위 grapgviz 설치 경로의 bin 폴더 설정 후 확인 (C:Program
Files (x86)Graphviz2.38bin)
)
환경변수 설정:
내 PC → 마우스 우 클릭 → 속성 → 고급 시스템 설정 →  환경 변수 → 
환경 변수를 누릅니다. 
시스템 변수 섹션에서 PATH 환경 변수를 찾아 선택합니다. 
편집을 누릅니다. 
PATH 환경 변수가 존재하지 않을 경우 새로 만들기를 누릅니다.

---------------------------------------------------------------------------------------------------------------------

jupyter notebook 작업관련 디폴트 작업위치 : 유저 디렉토리 이다.
이곳이 기준점이 된다. 예를 들면 C:/Users/ihlee
이 디렉토리에"testAI"라는 폴더를 만들 수 있다. [이것이 가장 간단한 방법이다.]
새롭게 생성된 인터넷 웹브라우저로 만들어진 jupyter notebook에서, 우측 상단  -->  new  -->  testAI
아래의 두 줄을 박스안에 타이핑하고, 위에 보이는 실행버튼을 누른다. [Run 버튼을 클릭해 준다.]
좌우로 길게 늘어진, 긴 직사각형 창(셀)에 아래 두 줄을 타이핑해서 넣어준다. [code 양식이다. markdown양식이 아니다. ][Markdown 타입은 Markdown으로 셀의 내용을 작성할 수 있다. 코드로 실행되지는 않으며, 수식을 작성할 수 있다. 수식은 MathJax에 의해 지원된다.] 
아래와 같이 수식이 레이텍 수준에서 적히기 때문에 계산결과를 수식과 함께 정리를 할 수 있다. 
jupyter notebook이 진정한 공책이 되는 것이다.
\[ \vec{a}, \vec{b}, \vec{c}  \]
\[ H\psi_i = \epsilon_i \psi_i  \]
따라서, 완성된 jupyter notebook 파일은 매우 다양한 양식으로 저장할 수 있다. 
[File  Download 에서 다양한 저장방식을 선택할 수 있다.] 
[슬라이드, html, pdf, latex 형식으로 곧바로 변환할 수 있다.]

jupyter notebook을 잘 활용하면, 무료 CPU/GPU/TPU를 제공하는 구글 코랩에서도 별 문제없이 적응할 수 있다.
 jupyter notebook 사용법 [간략한 정리]
* Shift + Enter 키를 누르면 셀이 실행되고 커서가 다음셀로 이동합니다.
* Enter 키를 누르면 다시 편집상태로 돌아옵니다.  [편집 모드]
* ESC 키를 누르고  [명령어 모드]
* a 키를 누르면 위에 셀이 추가됩니다.
* b 키를 누르면 아래에 셀이 추가 됩니다.
* dd 키를 누르면 셀이 삭제됩니다.
* m 키를 누르면 문서 셀로 변경됩니다.
* y 키를 누르면 코드 셀로 변경됩니다.
h 단축기 설명
스톱 버튼으로 실행 중지.
kernel 
→  clear output [출력 결과 제거함]

---------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------
주피터 노트북에서 생산성을 높이기 위해서 여러 가지 확장 기능을 지원한다. 주피터 노트북에 조금 익숙해지면 그 때 추가 설치하면 된다. 다양한 extensions 기능을 활용할 수 있다. 그 중에서 코드를 이쁘게 만들어 주는 기능이 있다. 
pip install yapf
pip install autopep8
pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

------------------------------------------------------------------------------------------------

주피터 노트북에서 파일을 저장할 때, 디폴트는 유저 디렉토리이다. 이곳에 .jupyter 폴더가 있다.
이 디폴트 폴더를 바꾸고 싶다면 아래와 같이 한다.

아나콘다 프롬프트에서 아래 명령어 실행한다. [jupyter notebook 명령어를 실행하는 곳과 같은 곳에서 아래의 명령어를 수행한다.]

jupyter notebook --generate-config

유저 디렉토리로 이동한다. .jupyter  폴더로 이동한다. 아래 작업을 완성한다.
 .jupyter/  폴더 및에 있는 파이썬 프로그램 (jupyter_notebook_config.py) 편집한다. 
파일 속에서 아래와 같이 제일 앞쪽에 코멘트를 삭제한다.  [콘트롤 F를 이용하여 notebook_dir 를 검색한다.]
검색한 다음. 그리고 아래와 같이 바꾸고 저장하고 나온다.

c.NotebookApp.notebook_dir="C:/testAI"

마지막으로 주피터 노트북 프로그램 파일 위치로 이동하여 우클릭으로 속성을 변경해야 한다. 다음과 같이 수행한다.
시작 -- > 주피터노트북 (폴더모양에서 선택, 프로그램 실행이 아니다. 프로그램 파일 위치로 이동하려고 한다.) --> 우클릭 --> 자세히 --> 파일위치 열기 실행 --> 주피터 노트북 찾기 (아이콘으로 확인 가능하다)  --> 속성 (우클릭) --> 대상(target) 편집하기를 시도한다. 
 C:/testAI 를 추가해준다. 
예를 들어, 아래와 같이 끝나게 만들어 준다.
 C:/testAI "%USERPROFILE%/"

---------------------------------------------------------------------------------------------------------------------

개발환경은 jupyter notebook 이 많이 활용된다. 하지만, jupyter notebook 대신에 spyder를 사용하여 프로그램을 개발할 수 있다. spyder를 선호하는 분들도 있다. pycharm을 이용하시는 분도 많다. 다양한 에디터들이 있다. 이들 중에서 하나를 선택한다. vs code를 사용하는 분들도 많다.
물론, 사용자가 하나를 선택하는 것이다.

 jupyter notebook 으로 프로그램을 개발했다면, 이것을 아주 손쉽게 스크립트 형식으로 변환할 수 있다. 
File → Download → Python (*.py) 로 내려받으면 다운로드 폴더에 *.py 형식으로 파일이 저장된다.
이것을 복사하면 쉽게 spyder 에서 사용할 수 있다.

---------------------------------------------------------------------------------------------------------------------

윈도우 시작, 우클릭   장치 관리자  디스플레이 어댑터 클릭   NVIDIA GeForce GTX 750 Ti
장치 관리자로 디스플레이 어댑터 장치를 확인함. [<-- 장치 확인 방법]

NVIDIA 그래픽 장비가 있어야 함. PC 윈도우즈, Mac은 NVIDIA 장치를 사용하지 않음. 따라서, GPU 가속화를 할 수 없음.
GPU 계산을 원하는 경우:
1. Anaconda 설치
    - Python 3.7 version
    - Anaconda Prompt 실행
    - VirtualEnv 설치: pip install virtualenv
    - VirtualEnv 생성: conda create -n venv pip python=3.7
       -- VirtualEnv 진입: conda activate venv
       -- VirtualEnv 해제: conda deactivate
 
2. CUDA 툴키트 설치 및 cuDNN 설치(실제는 폴더 속 파일 복사하기 작업으로 귀결됨.)
     - 예를들면, 현재 기준 (2019.07.14) Tensorflow (>= ver 1.13)은 CUDA 10 만 지원
        -- (https://developer.nvidia.com/cuda-toolkit-archive)
     - CUDA 10 기준 CuDNN 설치  [엔비디아 회원 등록을 해야함.]
        -- (https://developer.nvidia.com/cudnn)
     - 설치 후 PATH 설정 (윈도우 커맨드 창에 입력)
        1) SET PATH=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0bin;%PATH%
        2) SET PATH=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0extrasCUPTIlibx64;%PATH%
        3) SET PATH=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0include;%PATH%        
        4) SET PATH=C:toolscudabin;%PATH% 
        * 위 4) 의 경우 CuDNN 압축 푼 폴더를 해당 디렉토리에 복사 후 PATH 등록 [뒤에 나오는 방법, 이 방법이 아주 간단함.][압축 해제한 폴더 속 4개의 파일들을 복사는 방식이 가장 손쉬운 cuDNN 설치 방법이다.]
 
3. Tensorflow-gpu 설치
     - VirtualEnv 진입 상태에서,
     - pip install tensorflow-gpu
 
4. Keras 설치
     - VirtualEnv 진입 상태에서,
     - pip install keras

위에서 언급한 path 설정 대신에 아래와 같은 절차를 밟을 수도 있다. 
아주 간단한 방법이다. 경로 설정이 필요없는 간단한 방법니다. 4가지 항목을 모두 복사하는 방식이다. 
아주 간단한 방법이 있다.
그냥 덮어쓰기를 하는 것이다.
{ 아래의 3개 명령어를 사용하는 것이 훨씬 편리하고 정확하다. 엔비디아 그래픽 카드가 있는 경우에만 적용됨.
conda install -c anaconda cudatoolkit
conda install -c anaconda cudnn
conda install -c anaconda tensorflow-gpu


conda list cudatoolkit
conda list cudnn
nvidia-smi
nvcc --version
}
------------------------------------------------------------------------------------------------------------

윈도우즈에서 Cuda 사용률을 확인하는 방법 (Cuda toolkit  cuDNN 순서대로 모두 설치한 후, 응용 프로그램 실행할 때):
1) 작업관리자 (Ctrl + Shift + ESC) 또는 Ctrl + alt + del
2) 성능 탭  GPU
3) 선택 항목(↓표시) 중 1개를 Cuda로 변경하여 설정함. 실시간 그래프로 Cuda 사용률을 직접 확인할 수 있다. 또한, GPU 메모리 사용량을 직접 확인할 수 있다. 
[Cuda toolkit  cuDNN  tensorflow-gpu 설치이후, 주피터 노트북에서 응용 프로그램 실행하면서 GPU 장치의 사용을 실제로 확인하는 방법]
------------------------------------------------------------------------------------------------------------

 'Windows로고 + R'
실행창에 아래 명령어 입력
dxdiag
'DirectX 진단 도구' 화면  여기서 '디스플레이1' 메뉴를 선택
제조업체가 NVIDIA인지 확인함. [NVIDIA 제조사가 아니면 과학기술용 계산, 인공지능 프로그램의 가속화 기능을 사용을 사용하기가 어렵다. ]

------------------------------------------------------------------------------------------------------------
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
from keras import backend as K
K.tensorflow_backend._get_available_gpus()

--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------

2012년이 딥러닝의 원년이다.
2011년 Relu 함수의 출현 : vanishing gradient problem 해결, 표현력이 높은 딥러닝이 시작됨.
2012년 Dropout 방법의 출현 : overfitting problem 해결, 정규화된 훈련이 가능함. regularization의 도입.
2012년 CNN 출현 : 방대한 이미지 데이터 처리 문제 해결, 비대칭 데이터에 대한 처리가 가능함.
2013년 VAE 출현: 생성모델로서 다양한 가능성을 제안함.
2014년 GAN 출현: 생성모델로서 많은 응용 가능성을 제안함.
2015년 TensorFlow 구현의 출현과 보급 : 실질적인 딥러닝의 민주화가 단행됨.
2016년 알파고 출현 : 바둑 정복
2017년 알파고 제로 출현 : tabula rasa, first-principles 방법을 이용하여 바둑 정복, 진정한 바둑의 정복이 가능함. 기보없이 바둑 정복함. 프로기사에게 절대로 지지 않는 사실상 바둑의 신이 탄생함. 바둑의 역사 5000년 Mastering the game of Go without human knowledge | Nature http://incredible.egloos.com/7372719
2017년 cycleGAN 출현 http://incredible.egloos.com/7530913
2018년 알파폴드 출현
2021년 플로어플랜닝 (반도체 칩 설계) A graph placement methodology for fast chip design | Nature
2021년 나우캐스팅 (단기 일기예보) https://www.nature.com/articles/s41586-021-03854-z
2022년 알파코드  https://alphacode.deepmind.com/

--------------------------------------------------------------------------------------------------------------


--------------------------------------------------------------------------------------------------------------



핑백

덧글

  • 바죠 2022/09/06 14:37 # 답글

    1
    자신이 원하는 가상환경을 활성화시킨 후 패키지 설치함. [가상환경 활성화 명령어]
    conda activate testAI

    자신이 필요한 일에 꼭 필요한 패키지들을 순서대로 모두 설치하여 최종적으로 가상환경 구축을 완성함. [패키지 설치 명령어들]

    conda install -c conda-forge lightgbm
    conda install jupyter notebook
    pip install matplotlib
    pip install opencv-python
    conda install -c conda-forge bayesian-optimization
    conda install catboost
    conda install xgboost
    conda install tensorflow

    또는
    pip install jupyter notebook
    pip install lightgbm
    pip install xgboost
    pip install catboost
    pip install bayesian-optimization
    pip install matplotlib
    pip install opencv-python
    pip install imageio
    pip install imgaug
    pip install graphviz
    pip install pydot

    {cuda를 이용할 경우, NVIDIA GPU 장비가 있는 경우.}
    {
    conda install -c anaconda cudatoolkit
    conda install -c anaconda cudnn
    conda install -c anaconda tensorflow-gpu

  • 바죠 2022/08/14 12:48 # 답글

    Markdown and equations

    https://www.tablesgenerator.com/markdown_tables
    https://jakebathman.github.io/Markdown-Table-Generator/
    https://tableconvert.com/

    https://www.codecogs.com/latex/eqneditor.php
    http://mathurl.com/
    https://upmath.me/





    pip install yapf

    pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

    --------------------------------------------------------------------------------------------------------------
    주피터 노트북에서 extensions을 설치하기

    - 예를 들어, 각 셀마다 실행시간 자동으로 기록해주기
    - 코드를 이쁘기 (pep8 양식으로 정렬) 만들어 주기

    pip install yapf
    pip install autopep8
    pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

    리눅스 파이썬 프로그램 파일을 아래와 같은 명령어를 이용해서 터미널 창에 직접 표시한다.
    cat abc.py
    마우스를 이용해서 전체를 포집한다(control C). 파일 속에서 하는 것 보다 이것이 훨씬 편리하다.
    이것을 주피터 노트북 셀에 붙여넣기(control V)를 시도한다.
    그 다음, 해머를 이용해서 pep8 양식으로 만든다.
    그 다음, 다시 마우스를 이용해서 전체 셀을 포집한다(control C).
    이것을 리눅스 파일 속에서 붙여넣기(control V)를 한다.
    [ vim의 경우, set paste 모드를 사용할 수도 있다.]

    ---------------------------------------------------------------------------------------------------------------






  • 2020/12/28 17:39 # 답글 비공개

    비공개 덧글입니다.
  • 바죠 2021/01/02 16:39 # 삭제 답글

    After copying the scripts to Jupyter cells from sublime:

    Select all the lines with arrows
    Press Tab - This will remove the arrows and add a tab at the beginning of each line
    Press Shift + Tab - This will delete all the added tabs in the step above
  • 바죠 2021/01/14 14:20 # 답글


    kernel error 발생할 때:

    pip install pywin32

  • 바죠 2021/02/05 20:55 # 답글

    https://github.com/WegraLee/deep-learning-from-scratch
    https://github.com/WegraLee/deep-learning-from-scratch-2
    https://github.com/WegraLee/deep-learning-from-scratch-3

  • 바죠 2021/06/10 17:14 # 답글

    https://data-flair.training/blogs/machine-learning-project-ideas/
  • 2021/06/18 19:09 # 답글 비공개

    비공개 덧글입니다.
  • 바죠 2021/06/24 10:06 # 답글

    cuDNN 8.0.4 works with TF 2.4 and CUDA 11.0
    https://alejandro-gc.medium.com/setting-up-your-gpu-for-tensorflow-2-4-2021-d98cac79a686
  • 바죠 2021/06/26 10:52 # 답글

    https://horizon.kias.re.kr/17443/
  • 바죠 2021/07/25 13:17 # 답글

    https://towardsdatascience.com/install-tensorflow-with-cuda-cudnn-and-gpu-support-in-4-easy-steps-954f176daac3

    GPU 사용방법
  • 바죠 2021/07/27 08:49 # 답글

    https://towardsdatascience.com/17-clustering-algorithms-used-in-data-science-mining-49dbfa5bf69a
    clustering algorithms
  • 바죠 2021/08/03 20:08 # 답글

    주피터 노트북 connection fail 에러가 발생할 경우:

    conda install -c conda-forge pywin32
    conda install -c anaconda jupyter_client
    conda install -c conda-forge jupyter_core
  • 2021/09/03 20:24 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 바죠 2021/09/04 13:32 #

    https://webnautes.tistory.com/1454
  • 2021/09/03 21:05 # 답글 비공개

    비공개 덧글입니다.
  • 바죠 2021/09/18 09:54 # 답글

    https://medium.datadriveninvestor.com/mathematics-for-machine-learning-part-4-8032bec2aa3d
    Mathematics for Machine Learning Part-4
  • 바죠 2021/09/29 08:51 # 답글

    mirrored_strategy = tf.distribute.MirroredStrategy()
    #mirrored_strategy = tf.distribute.MirroredStrategy(devices=["/gpu:0", "/gpu:1"])

    with mirrored_strategy.scope():
    model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(1,))])
    model.compile(loss='mse', optimizer='sgd')

    dataset = tf.data.Dataset.from_tensors(([1.], [1.])).repeat(100).batch(10)
    model.fit(dataset, epochs=2)
    model.evaluate(dataset)
    import tensorflow as tf
    tf.compat.v1.disable_eager_execution()


    https://keras.io/guides/distributed_training/
  • 바죠 2021/09/29 10:47 # 삭제 답글

    https://blog.ksc.re.kr/157

    from keras.utils import multi_gpu_model

    model = multi_gpu_model(model, gpus=2)




  • 바죠 2021/10/06 08:17 # 답글

    pip list
    conda list

    conda --version
    conda info
  • 바죠 2021/10/09 18:06 # 삭제 답글

    https://scikit-network.readthedocs.io/en/latest/reference/hierarchy.html
  • 바죠 2022/01/04 09:43 # 답글

    http://incredible.egloos.com/7531681
    <2022 KIAS - APCTP>
    The 2nd KIAS-APCTP

    Electronic Structure Calculations Winter School

    January 18(Tue) ~ 21(Fri), 2022 l Online

    http://events.kias.re.kr/h/ka2022/?pageNo=4483

  • 바죠 2022/01/12 18:57 # 답글

    표준과학연구원에서 진행한 강의 내용, 동영상 5편은 연락주시면 메일로 전달해 드립니다.
    비공개 덧글에 이메일 주소를 남겨주십시요.
  • 바죠 2022/09/06 09:44 # 답글

    한글 아이디는 영문 아이디로 수정해야 합니다.
    로고 + x
    cmd (관리자 권한으로 실행)
    net user administrator /active:yes
    로고 + x 종료 또는 로그아웃
    administrator 계정으로 로그인 함.
    로고 + x
    컴퓨터 관리
    컴퓨터 관리--> 사용자 및 그룹 --> 사용자, 우클릭, 한글 --> 영문, 종료
    로고 + x
    cmd (관리자)

    ren C:\Users\한글 ENGNAME


    윈도우 + R -->
    regedit 입력
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\ProfileList
    영문명으로 수정
    C:\Users\english


    administrator 계정에서 로그아웃
    이름이 변경된 계정으로 로그인
    로고 + x
    cmd(관리자)
    net user administrator /active:no
    administrator 계정이 해제 됩니다.





    로고 +x
    제어판
    사용자 계정
    계정이름 변경, 이름변경 클릭


    ----------------
    사용자(Users) 폴더 밑에 한글명 또는 빈칸이 포함된 사용자 이름의 경우
    사용자(Users) 폴더에 새로운 폴더를 만든다. 영문으로 하고 빈칸없이 만든다. 쓰기 권한을 준다.
    그곳에 anaconda3을 설치한다. anaconda3 설치할 때, 이 폴더위치를 정확하게 직접 설정해 준다. 이곳 아래에 있는
    anaconda3\Scripts 폴더를 경로에 넣어주어야 한다. [제어판 --> 시스템 및 보안 --> 시스템 --> 고급 시스템 설정 --> 환경변수 --> path --> 편집, 환경변수설정, 편집, 경로에 새롭게 추가 작업을 한다.


  • 바죠 2022/01/15 09:33 # 삭제 답글

    https://www.youtube.com/watch?v=gFEE3w7F0ww
  • 2022/01/19 14:03 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 2022/01/19 14:03 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 2022/01/19 14:05 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 2022/01/19 14:28 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 2022/01/19 15:56 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 2022/01/19 23:13 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 바죠 2022/02/27 09:56 # 답글

    conda install tensorflow
    pip install keras
    pip install jupyter notebook
    pip install matplotlib
    pip install opencv-python
    pip install imageio
    pip install imgaug

    pip install xgboost
    pip install lightgbm
    pip install catboost
    pip install bayesian-optimization
    pip install scikit-optimize

    pip install mlens
    pip install deslib

    pip install graphviz
    pip install pydot

    {
    conda install -c anaconda cudatoolkit
    conda install -c anaconda cudnn
    conda install -c anaconda tensorflow-gpu
    }
  • 바죠 2022/03/01 16:52 # 답글

    conda env list
    conda env remove -n spektral
    conda create -n spektral
    conda activate spektral
    pip install ipykernel
    python -m ipykernel install --user --name=spektral
    pip install spektral
    pip install jupyter notebook
  • 바죠 2022/03/16 19:22 # 답글

    conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
  • 바죠 2022/07/26 19:04 # 답글

    https://ahsanzaman.net/blog/computerScience/macs-for-ml

  • 바죠 2022/08/02 09:25 # 답글

    books:

    https://mml-book.github.io/book/mml-book.pdf
    https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf
    https://www.deeplearningbook.org/

  • 바죠 2022/08/11 16:18 # 답글

    pubchemqc

    1천만개 분자

    ECFP

    tmqm database


    https://laidd.org/


  • 바죠 2022/09/03 16:09 # 삭제 답글

    conda install pip

    python -m pip install --upgrade pip
댓글 입력 영역

최근 포토로그