머신러닝, 딥러닝 연습할 때 책이나 블로그에서 가장 많이 사용되는 예제 데이터를 들라고 하면 아마도 손으로 쓴 숫자 '0~9' 이미지를 모아놓은 MNIST dataset 인것 같습니다.  훈련용으로 6만개, 테스트용으로 1만개 손 글씨 숫자 이미지 데이터가 들어있으니 연습하기에 제격입니다.  사이즈도 표준화 되어 있고, 가운데로 정렬도 잘 되어 있어서 훈련을 시키면 매우 높은 정확도로 훈련이 아주 잘 되지요. (실전 데이터도 과연? ㅎㅎ)


28x28 행렬에 숫자가 들어가 있구요, 이를 이미지로 그리면 손으로 쓴 숫자 글자가 됩니다.  아래 이미지는 이런 '0~9'까지의 손글씨 숫자들을 모아놓은 것입니다.  필체가 조금씩 다른데, 단번에 알아보기 쉬운 것도 있구요, 사람이 보기에도 헷갈리는 것들도 섞여 있습니다. 


[ 손으로 쓴 '0~9' 숫자들의 이미지 데이터 셋 MNIST ]




이번 포스팅에서는 tensorflow 설치 후 MNIST dataset을 사용하여 DNN 이나 CNN 연습해보려고 했더니 'SSL: CERTIFICATE_VERIFY_FAILED' 에러가 날 경우 조치 방법을 소개하겠습니다. 


제가 사용하는 환경은 아래와 같았는데요, 처음 MNIST dataset 다운로드 하려니 'SSL: CERTIFICATE_VERIFY_FAILED' 에러가 나더군요.  


 구분

버전/내용

[참고] terminal shell script 

 OS

 mac OS X 10.12.5

 

 Python

 3.6.1

# python 버전 확인

$ python3 --version

Python 3.6.1

 tensorflow

 1.2.1

# tensorflow 버전 확인

$ python3 -c 'import tensorflow as tf; print(tf.__version__)'

1.2.1

 CPU or GPU

 CPU

 

 설치/사용 환경

virtual env.

(가상환경)

# virtualenv (가상환경활성화 : activate

$ source /Users/Desktop/tensorflow/bin/activate


# 가상환경(virtual env.)에서 Jupyter Notebook 열기

$ jupyter notebook


구글링 해보니 아마도 Python 3.5 버전 이하로 설치를 했어야 했는데 3.6.1 최신 버전으로 설치하다 보니 에러가 난 것 같습니다.  Python 2.7 버전이나 Python 3.5 버전으로 재설치해보라는 답변이 있는 것으로 봐서는요. 



가상환경에서 Jupyter Notebook 띄우고, tensorflow importing 한 다음에, 아래 처럼 MNIST dataset 불러오는 script를 실행했더니 'SSL: CERTIFICATE_VERIFY_FAILED' 에러가 났습니다. 



# importing tensorflow

import tensorflow as tf

 

# mnist dataset loading

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("./mnist/data/", one_hot=True)



urllib.error.URLError: 
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>


Python 3.6.1을 그대로 사용하는 상태에서 MNIST dataset 다운로드 시 'SSL: CERTIFICATE_VERIFY_FAILED' 에러를 해결하려면 터미널에서 아래 bash script 를 실행시켜주면 됩니다. 



# solution for 'SSL: CERTIFICATE_VERIFY_FAILED' error (=> type in below bash script at terminal)

$ /Applications/Python\ 3.6/Install\ Certificates.command 

 


-- pip install --upgrade certifi

Requirement already up-to-date: certifi in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages

 -- removing any existing file or link

 -- creating symlink to certifi certificate bundle

 -- setting permissions

 -- update complete





위 bash script로 certificate update 해주고 나니 tensorflow 에서 MNIST dataset 다운로드 제대로 되네요. 


== terminal 에서 가상환경 활성화 후 Jupyter Notebook 열고...


# virtualenv (가상환경활성화 : activate

$ source /Users/Desktop/tensorflow/bin/activate


# 가상환경(virtual env.)에서 Jupyter Notebook 열기

$ jupyter notebook 



* (주의사항) 가상환경(virtual env.) 에 python, tensorflow 설치한 분의 경우, Anaconda 에서 Jupyter notebook 을 열면 가상환경에 깔린 python 3.6.1, tensorflow를 Jupyter notebook이 인식 못해요. 가상환경에서 사용할 수 있도록 python 이랑 jupyter notebook 설치하고, 가상환경 활성화 한 후에 jupyter notebook 실행해서 tensorflow 사용하셔야 합니다. (Anaconda 사용하려면 conda 로 별도로 tensorflow setting 필요해요.)

(이걸 몰라서 왜 안되나 하고 한참을 애먹었네요. ㅜ_ㅜ)



== Jupyter Notebook 에서 tensorflow importing 하고 MNIST dataset 읽어오기


# importing tensorflow

import tensorflow as tf

 

# mnist dataset loading

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("./mnist/data/", one_hot=True) 


Extracting ./mnist/data/train-images-idx3-ubyte.gz

Extracting ./mnist/data/train-labels-idx1-ubyte.gz
Extracting ./mnist/data/t10k-images-idx3-ubyte.gz
Extracting ./mnist/data/t10k-labels-idx1-ubyte.gz



많은 도움 되었기를 바랍니다. 


이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾸욱 눌러주세요. 



저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by R Friend R_Friend

집에서 개인 컴퓨터, 노트북으로 텐서플로우 공부하려는 분들을 위해 CPU를 지원하는 맥 OS X 에 텐서플로우 (tensorflow) 를 설치하는 방법을 소개하겠습니다. 그리 어렵지 않으므로 아래 소개해드린 내용을 그래로 차근차근 따라서 하면 금방 설치가 될 것입니다. 


(GPU 지원 텐서플로우 설치는 좀 복잡한데요, NVIDIA 설치 가이드 사이트를 참고하시기 바랍니다)




=========  Python 3 설치하기  ==========


혹시 컴퓨터에 Python 3 설치 안하신 분은 아래 참고해서 설치하시기 바랍니다. 

(Python 설치되어 있는 분이나 혹은 Python 2.7 사용하는 분은 pass)


1. Python 공식 사이트에 접속해서 Python 3.5 설치 파일 다운로드 하기

   https://www.python.org/downloads/


2. 다운로드한 Python 3.5 클릭해서 디폴트 세팅으로 설치하기 






(1) CPU 지원 환경에서 텐서플로우 (tensorflow) 설치 


(* reference : https://www.tensorflow.org/install/install_mac )



텐서플로우를 설치해서 사용하는 방법에는 서너가지가 있는데요, 


  • virtualenv (가상환경)
  • Native pip
  • Docker (https://www.docker.com/)

등의 방법이 있습니다. 

텐서플로우 공식 사이트에 가보면 첫번째 방법인 virtualenv 를 강력히 추천(strongly recommend) 한다고 나와있습니다. virtualenv (가상환경) 은 다른 Python 개발환경으로 부터 분리된 가상환경을 제공하여 줌으로써 Python 버전이나 설정의 차이에 따른 충돌, 간섭 없이 편리하게 사용할 수 있는 장점이 있기 때문입니다. 

컴퓨터 사용에 능숙한 개발자라면 Native pip 로 직접 설치, 사용할 수 있겠구요, 애플리케이션 아키텍터에 텐서플로우를 설치해서 Docker의 컨테이너에 올려 완전히 격리된 상태에서 개발을 하고자 하는 분이라면 Docker 를 사용하면 되겠습니다. 

그래서 이 포스팅에서는 cpu 지원 컴퓨터에 virtualenv (가상환경)에서 Python 3.n 버전으로 텐서플로우를 설치하고 활성화(activate) 하는 방법만 소개하겠습니다. 


(1-1) 터미널 실행



(1-2) 터미널로 pip 설치


$ sudo easy_install pip

 




(1-3) 터미널로 virtualenv (가상환경) 설치
 


$ sudo pip install --upgrade virtualenv

 




(1-4) virtualenv (가상환경) 생성

아래에 파란색 부분의 directory 경로명에는 사용자가 원하는 경로를 써주시면 됩니다. 저는 /Users/Desktop/ 안에 tensorflow 폴더를 하나 만들고 그곳에 virtualenv 를 생성해보겠습니다. 아래의 명령어를 실행시키고 나면 아래 지정해주신 경로의 폴더 안에 'bin', 'include', 'lib' 폴더가 생기고 거기에 virtualenv 관련 파일들이 여러게 새로 추가되어 있을 겁니다. 


virtualenv --system-site-packages -p python3 /Users/Desktop/tensorflow # for python 3.n

 




혹시 Python 2.7 버전 사용자라면 아래처럼 터미널에 명령어 실행하면 됩니다. 

$ virtualenv --system-site-packages directory  # for python 2.7




(1-5) virtualenv (가상환경) 활성화 : activate

가상환경 활성화는 $ source directory/bin/activate 명령어를 사용합니다. 

아래의 파란색 부분에는 위의 (1-4)번 virtualenv 가상환경 생성 시 설정했던 directory 경로명을 표기해주면 됩니다. 

(참고로, 맥북의 Finder 에 들어가서 tensorflow 폴더에 커서를 대고 손가락 두개로 클릭한 후 -> '정보 가저오기'를 선택 -> '위치' 내용을 마우스로 블록 설정 -> 복사 -> 아래의 터미널에 '붙여넣기' 하면 경로 복사해올 수 있습니다.)


제대로 가상환경 활성화가 되었다면 아래 화면캡쳐한 것처럼 (tensorflow) ~:$  처럼 되어있을 겁니다. 



source /Users/Desktop/tensorflow/bin/activate

 





(1-6) 텐서플로우가 필요로 하는 패키지들 설치하기 (for python 3.n)


$ pip3 install --upgrade tensorflow # for Python 3.n 






혹시 python 2.7 사용자라면 아래 처럼 텐서플로우가 필요로 하는 패키지를 설치하면 됩니다. 

pip install --upgrade tensorflow # for Python 2.7



 (2) 텐서플로우 가상환경 설치 완료 후 텐서플로우 사용 하기


virtualenv (가상환경) 에서 텐서플로우를 사용하기 위해서는 virtualenv 활성화(activate) 를 먼저 꼭 해야한다는 점 유념하시기 바랍니다.    



(2-1) virtualenv (가상환경) 활성화 : activate



source /Users/Desktop/tensorflow/bin/activate

 




(2-2) Jupyter Notebook 열고 텐서플로우 불러오기 (import tensorflow)



===== 터미널에서 Jupyter Notebook 설치하기 =====  (이미 설치하신 분은 pass)

$ pip3 install jupyter



===== 터미널에서 Jupyter Notebook 실행하기 =====

$ jupyter notebook

 


* 가상환경에 Python, tensorflow를 설치했으므로 Anaconda 에서 Jupyter notebook 실행시켜서 사용하면 안됩니다. 가상환경에 jupyter notebook 설치하고 가상환경에서 jupyter notebook 실행해서 tensorflow importing 해야 제대로 인식을 합니다. 




localhost:8888 로 Jupyter Notebook 열고 나서 => import tensorflow as tf로 텐서플로우를 불어와서 사용하면 됩니다. 





(2-3) 텐서플로우 사용 끝나면 => virtualenv (가상환경) 비활성화 시키기 : deactivate



(tensorflow) ~:$ deactivate

 



virtualenv(가상환경)에 텐서플로우를 설치하였으니 이제 딥러닝의 세계로 떠나보시기 바랍니다. 


Bon Voyage ~ Tensorflow!


이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾸욱 눌러주세요. 






저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by R Friend R_Friend


티스토리 툴바