은공지능 공작소 :: '딥러닝 공부' 카테고리의 글 목록 (3 Page)

안녕하세요. 은공지능 공작소의 파이찬입니다.
오늘은 간단하게 주피터 노트북에서 ipynb 커널을 바꾸는 방법을 알아보겠습니다.
엄청 간단하지만 생각보다 헤매시는 분들이 많더라구요..

 

 

 

 

 

Git 이나 다른 사이트에서 파일을 가져왔을 경우,
파일이 실행이 안되어 골치가 아픈 경우가 있습니다.

그 이유는 바로 해당 파일이 기본 커널로 동작(Python3)하도록 설정이 되어 있거나,
애초에 다른 커널로 동작하도록 세팅되어 있기 때문입니다.

커널마다 설치된 라이브러리나 패키지가 맞지 않아서
발생하는 현상입니다.

 

 

 

 

 

이는 주피터 노트북 안에서 간단하게 해결할 수 있습니다.
① kernel 탭 → ② change kernel -> ③ 자신이 변경하고자 하는 커널 선택

정말 간단하죠?
위의 방법을 통해서 자신이 원하는 커널에서 외부 파일을 동작시킬 수 있습니다.
물론 그 이전에, 자신이 변경하고자 하는 커널 세팅이 완료가 되어 있어야 합니다.

 

 

 

 

2019/07/22 - [딥러닝 공부/설치 및 환경설정] - [Anaconda/window10] Tensorflow 2.0 GPU 시원하게 설치해보자! (visual studio 2017 / cuda toolkit 10.0 / cuDNN 10.0 )

 

[Anaconda/window10] Tensorflow 2.0 GPU 시원하게 설치해보자! (visual studio 2017 / cuda toolkit 10.0 / cuDNN 10.0 )

안녕하세요! 은공지능 공작소의 파이찬입니다. 오늘은 텐서플로 2.0 GPU를 설치해보겠습니다. Anaconda 설치부터 주피터노트북 설정까지 논스톱으로 진행합니다. 프로그램 호환성 때문에 정말 많은 시행착오가 있..

chan-lab.tistory.com

만약, 새로운 커널 추가 방법을 모르시는 분들은 위의 포스팅을 참고해 주세요.
자잘한 설치는 건너뛰시고 2-2, 2-3, 2-7, 2-8 정도 보시면 될 것 같습니다.

 

반응형
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

,

안녕하세요! 은공지능 공작소의 파이찬입니다.
오늘은 텐서플로 2.0 GPU를 설치해보겠습니다.
Anaconda 설치부터 주피터노트북 설정까지 논스톱으로 진행합니다.
프로그램 호환성 때문에 정말 많은 시행착오가 있었습니다 ㅜㅜ
제가 고생한 만큼 여러분의 고통이 덜어지길 바라며... 시작해보겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

1. 설치 개요 및 호환성 요약

(19.07.27 업데이트됨)

 

 

 

NVIDIA DRIVER (최신버전으로)
AnacondaAnaconda3-2019.03-Windows-x86_64
vs_community_2017_15.9.14
cuda_10.0.130_411.31_win10
cudnn-10.0-windows10-x64-v7.6.0.64

여러 시행착오 결과... 위의 조합이 가장 최신버전이면서
설치가 잘 되는 것을 확인했습니다.
위에서 아래로 순서대로 진행하시면 됩니다.

아 한 가지 주의할 점은 주피터 노트북에서 ipykernel 설치까지 하신 후

텐서플로 2.0 gpu 설치를 해주셔야 한다는 것입니다.

즉, 먼저 텐서플로 2.0을 설치 후 ipykernel을 추가할 시,

다시 텐서플로를 아나콘다 커널에서 해줘야 하는 번거로움이 있었습니다.

그러니 여러분들은 꼭 ipykernel을 설치 후 텐서플로를 설치해주셔야 겠습니다.

 

그럼 아나콘다 설치부터 차례대로 진행해보겠습니다.
+
(19.07.27 업데이트 내용)
만약 최신버전의 NVIDIA 드라이버가 없으신 분들은 아래 포스팅을 참조하셔서
NVIDIA 드라이버를 최신버전으로 업그레이드 해주시길 바랍니다.
window10 최소 설치 시, 자동으로 업데이트가 되지 않기 때문에
꼭 수동으로 업그레이드 해주셔야 합니다.
만약 작업표시줄에 뜨는 NVIDIA 아이콘 우클릭 -> 제어판을 실행했을 때,
제어판이 열리지 않는 분들은 최신 버전이 아닌 것입니다.

 

 

https://chan-lab.tistory.com/1

 

Tensorflow-gpu 개발환경 구축

1. NVIDIA를 최신버전으로 업그레이드 합니다. 처음 환경을 구축하시는 분들은 NVIDIA 제어판이 안 열립니다. 드라이브를 너무 오래 전에 설치하신 분들도 새로 다운받아서 설치하셔야 할 겁니다. 아래 링크로 들..

chan-lab.tistory.com

 

 

 

 

 

 

 

2-1. 아나콘다 설치

 

 

 

https://www.anaconda.com/distribution/#download-section

 

Anaconda Python/R Distribution - Anaconda

The open-source Anaconda Distribution is the easiest way to perform Python/R data science and machine learning on Linux, Windows, and Mac OS X. With over 15 million users worldwide, it is the industry standard for developing,…

www.anaconda.com

위의 페이지로 들어가셔서 자신의 OS에 맞는 아나콘다를 다운로드 하시면 됩니다.
저는 19년 07월 기준으로 2019.03 버전을 다운받았습니다.

 

 

 

 

 

자신에 맞는 OS를 선택하여 다운로드 하시길 바랍니다.
참고로 현재 포스팅은 19년 07월 22일이며, 2019.03 anaconda가 최신입니다.

 

 

 

 

 

 

2가지 체크박스에 모두 체크를 해주고 진행합니다.
설치가 완료되었다면 바로 이어서 conda update를 실행해보겠습니다.

 

 

 

 

 

 

 

2-2. conda update 수행

 

 

 

conda update conda
conda update anaconda
conda update python
conda update --all
(base)라고 뜬 상태에서, 위의 명령어들을 차례대로 입력해 줍니다.
저는 최신전의 콘다를 깔아서 그런지 대부분의 업데이트에서
이미 최신버전이라는 메시지가 떴습니다.

하지만 나중에 이 포스팅을 보시는 분들은 꼭 위의 4가지 명령어를 치셔서
업데이트를 제대로 해주시길 바랍니다.
일종의 보험처리라고 생각하시면 마음이 편합니다.

 

 

 

 

 

 

 

2-3. conda 가상환경 만들기

 

 

 

conda info --envs
위의 명령어를 치시면, 자신이 가지고 있는 가상환경의 리스트가 쭉 나옵니다.
저희는 방금 anaconda 설치를 끝냈기 때문에 가상환경이 하나만 있습니다.
base 라고 되어 있는 것이 가상환경 이름입니다.
이제 새로운 가상환경을 하나 추가해 보겠습니다.

 

 

 

 

 

conda info --envs 입력 후 화면

 

 

 

 

 

conda create --name tf2.0-gpu
위의 명령어를 입력하시고 y 버튼을 눌러 진행을 하면
새로운 가상환경이 금방 만들어 집니다.

가상환경이 제대로 만들어졌는지 확인하고 싶으시다면?
 conda info --envs 를 입력하시면 됩니다!

 

 

 

 

 

새로운 가상환경이 성공적으로 추가된 후 모습

 

 

 

 

 

 

 

2-4. Visual Studio 2017 설치하기

 

 

 

https://docs.microsoft.com/ko-kr/visualstudio/releasenotes/vs2017-relnotes

 

Visual Studio 2017 15.9 릴리스 정보

Visual Studio 2017의 향상된 최신 기능에 대한 릴리스 정보입니다. Visual Studio를 사용하여 더 효과적으로 계획하고, 함께 코딩하여 빠르게 제공하세요.

docs.microsoft.com

위의 사이트에 들어가서 비쥬얼 스튜디오 최신버전을 다운받습니다.
19년 7월 9일 기준으로 15.9.14 버전이 출시되었는데,
이것을 다운받으시면 됩니다.


반드시 2019버전 말고 2017 버전을 받으시길 바랍니다!
그렇지 않으면 텐서플로 2.0 호환성 때문에
설치가 제대로 되질 않습니다.

 

 

 

 

 

워크로드는 따로 구성하지 않으셔도 상관 없습니다.

 

 

 

 

 

이렇게 로그인 화면까지 떴다면 정상적으로 설치가 완료가 된 것입니다.
로그인은 굳이 하실 필요 없습니다.

 

 

 

 

 

 

 

2-5. Cuda Toolkit 10.0 설치하기

 

 

 

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

위의 사이트에 들어가셔서 Cuda Toolkit 10.0 버전을 다운받으시길 바랍니다.
여기서도 호환성을 위하여 Cuda 10.1 버전 말고
반드시 10.0 버전을 받아 주셔야 합니다.

 

 

 

 

 

위와 같이 선택된 상황에서 Base installer를 다운받아주시면 됩니다.
만약에 새로운 패치가 있다면 패치버전까지 모두 받아서 설치해주세요.

 

 

 

 

 

※ 위와 같은 화면이 뜨시는 분들만 진행하세요.

위의 화면은 비쥬얼 스튜디오 프로세스가 진행되고 있어서 나타나는 화면입니다.
설치를 제대로 해주기 위해서는 해당 프로세스를 종료해주시면 됩니다.

위의 화면을 보시면 프로세스 아이디가 나와있습니다. (ID: 9420)
해당 아이디를 가진 프로세스를 작업관리자를 통해 종료해주시면 됩니다.
작업관리자는 Ctrl + Alt + Del 로 실행합니다. 

 

 

 

 

 

위의 그림처럼 진행하면, 비쥬얼스튜디오 프로세스를 찾아 종료할 수 있습니다.
저의 경우 PID가 9420이 할당이 되어있었는데요, PID는 매번 달라지므로
반드시 자신의 PID를 확인 후 작업을 끝내주시기를 바랍니다.

 

 

 

 

 

위와 같은 화면이 떴다면 설치가 정상적으로 완료가 된 것입니다.
Sample과 Documentation은 체크 안해주셔도 됩니다.

 

 

 

 

 

 

 

2-6. CuDNN 파일 옮겨주기

 

 

https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks.

developer.nvidia.com

위의 사이트에 접속하셔서, Download cuDNN이라고 된 부분을 눌러주세요.
해당 작업은 맴버쉽이 필요합니다. 하지만 유료는 아니니 안심하세요 ^^

가입은 생각보다 어렵지 않으니, 각자 잘 진행하실 수 있습니다.
가입이 완료되면 다시 해당 페이지로 돌아오셔서
Download cuDNN v7.6.0 (May 20, 2019), for CUDA 10.0 를
클릭해주시면 됩니다.

저희는 지금 윈도우 10 기준으로 설치를 하고 있으므로,
window10 버전을 선택해서 다운받아주시면 됩니다.

 

 

 

 

 

이제 2가지 폴더를 열어주셔야 합니다.

① C드라이브 → Program Files →NVIDIA GPU Computing Toolkit  CUDA → v10.0
② 방금전에 다운받은 파일 압출풀고 실행 → cuda

이제 다운받은 파일을 복사 후 ① 경로에 붙여넣기 해줍니다.
총 3가지 파일을 복붙해주시면 됩니다.


제일먼저 ② 경로의 bin 안의 cudnn64_7.dll 이라는 파일을 복사합니다.
이를 ① 경로의 bin 안에 붙여넣기 해주면 됩니다.

그 다음으로 ② 경로의 include 폴더 안의 cudnn.h 이라는 파일을 복사합니다.
이를 ① 경로의 include 안에 붙여넣기 합니다.

마지막으로 ② 경로의 lib/x64 폴더 안의 cudnn.lib 이라는 파일을 복사하고,
이를 ① 경로의 lib/x64 안에 붙여넣기 해주세요.


좀 쉽게 정리하면, 이름이 같은 폴더에 있는 것을
그대로 복붙한다고 생각하시면 편합니다.
이렇게 cuDNN 파일 환경설정까지 완료했습니다.

 

 

 

 

 

 

 

2-7. jupyter ipykernel 설치하기

 

 

 

conda activate tf2.0-gpu
conda intstall ipykernel jupyter
아나콘다 프롬프트를 실행하고, 아까 만들어두었던 가상환경을 활성화합니다.
(base)라고 표시되었던 부분이 (tf2.0-gpu)라고 뜬다면,
정상적으로 활성화가 된 것입니다.

만약 자신이 만든 가상환경의 이름을 잊어버리셨다면,
conda info --envs 명령어로 확인해보세요.

 

 

 

 

 

python -m ipykernel install --user --name tf2.0-gpu --display-name "tf-gpu"
설치가 정상적으로 되었다면,
이제 주피터 노트북에 나타날 커널 이름을 새롭게 지정해 줍니다.

--display-name 뒤에 나오는 큰따옴표 안은
여러분이 임의로 이름을 지으셔도 상관 없습니다.

 

 

 

 

 

 

 

2-8. Tensorflow 2.0 GPU 설치하기

 

 

 

pip install tensorflow-gpu==2.0.0-beta1
(tf2.0-gpu) 가상환경이 활성화된 상태에서, 위의 명령어를 입력합니다.
커널에서 python을 실행시켜 텐서플로 설치를 확인해도 되지만,
바로 주피터 노트북에서 확인을 해보도록 하겠습니다.

 

 

 

 

 

 

2-9. Jupyter notebook 실행 후 테스트

 

 

 

위와 같이 New 버튼을 눌러보시면, tf-gpu라고 셀렉박스가 뜹니다.
이는 아까 저희가 ipykernel 환경설정에서 새로 만들어준 것입니다.
해당 버튼을 클릭하여 다음으로 진행합니다.

 

 

 

 

 

import tensorflow as tf
print(tf.__version__)
tf.test.is_gpu_available()
output:
2.0.0-beta1
True
주피터 노트북에서, 위와 같이 2.0 버전을 사용중이라는 메시지와
GPU 사용이 가능하다(True)는 메시지가 떴다면 설치가 성공적으로 된 것입니다.

축하드립니다!

 

 

 

 

 

 

 

3. 향후 주피터 노트북 실행법

 

 

 

(base) conda activate tf2.0-gpu
(tf2.0-gpu) jupyter notebook
아나콘다 프롬프트를 이용하여, 위와 같이 주피터 노트북을 실행해도 되지만
아나콘다 프롬프트를 밥먹듯이 들락날락 거리는 사람이 아니라면
상당히 번거로운 일입니다. 그러므로 아래의 방법을 추천드립니다.

 

 

 

 

 

위의 그림처럼, 새로 추가한 앱에 주피터 노트북 커널이 자동으로 뜨게 됩니다.
이 아이콘을 바탕화면에 두시거나, 단축메뉴 모음에 둔다면
조금 더 편리하게 실행이 가능합니다.

막힘없이 진행이 되셨는지 모르겠습니다.
도움이 되셨다면 다행입니다.

긴 포스팅 읽어주셔서 감사합니다.

 

반응형
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

,

 

 

 

안녕하세요! 은공지능 공작소의 파이찬입니다.

올 여름은 비교적 시원한 느낌이 드네요.

그래도 컴퓨터 앞에 오래 앉아있으면 더운 느낌이 들곤하죠...

모두 학교에서 직장에서 파이팅 하시길 바랍니다!!

 

오늘은 tf.where 함수에 대해 알아보겠습니다.

이전 텐서플로 버전과는 다르게, 이펙티브 텐서플로 2.0에서는

where 함수에 broadcasting 기능이 추가가 되었습니다.

그럼 기본적인 사용법부터, broadcasting 개념까지

하나하나 알아보도록 하겠습니다.

 

 

 

 

 

 

 

 

1. 사전준비

 

 

 

import tensorflow as tf

print(tf.__version__) 
output:
2.0.0-beta1

텐서플로를 불러와 줍니다.

버전을 출력했을 때, 위의 결과창처럼 결과가 떠야 합니다.

이전 버전에서도 tf.where 함수가 있지만 broadcasting은 지원하지 않습니다.

만약 텐서플로 2.0 설치와 conda 가상환경 설정법이 궁금하신 분들은

아래의 포스팅을 참고하시면 되겠습니다.

 

https://chan-lab.tistory.com/11

 

Tensorflow 2.0 Beta!! 아나콘다 가상환경 설정하기 (For window 10)

안녕하세요! 은공지능 공작소의 파이찬입니다. 지금 포스팅을 쓰는 날짜 19년 7월 17일 기준 최신버전 텐서플로 2.0 Beta 버전이 출시가 된 상태입니다. 이에 맞춰 은공지능 공작소에서는 초보자도 따라하기 쉬운..

chan-lab.tistory.com

 

 

 

c1 = tf.constant([1, 1])
c2 = tf.constant([2, 2])
c3 = tf.constant([0, 3])
cond = tf.constant([True, False])

tf.where의 기본적인 사용법을 알려드리겠습니다.

위와 같이 4가지 텐서를 만들어 둡니다.

c1 ~ c3는 숫자 들어간 상수 텐서이고, cond 함수는 True/False를 넣었습니다.

 

 

 

c1
c1.numpy()
print(c1.numpy())
def prt(input):
    print(input.numpy()) # 리턴값은 없습니다.

텐서플로 2.0에서는 따로 세션을 통해 출력을 하지 않아도 됩니다.

그래도 깔끔한 출력을 위해서 내용물을 프린트 하는 함수를

하나 만들어 두고 가겠습니다.

 

 

 

2. where 함수의 기본적인 사용법

 

 

 

tf.where(  bool type 텐서,   True일 때 출력값,   False일 때 출력값  )
tensor list:

c1:[1 1]
c2:[2 2]
c3:[0 3]
cond:[ True False]
prt(tf.where(cond, c1, c2))
prt(tf.where(tf.less(c1, c2), c1, c2))
prt(tf.where(tf.greater(c1, c3), c1, c3))
output:

[1 2]
[1 1]
[1 3]

위의 코드를 실행하면서 결과를 확인해보시길 바랍니다.

각 텐서의 원소별로 True일 때, False일 때 출력되는 것이 달라집니다.

bool type 텐서의 원소가 True 일때와 False 일때의 출력값이

달라진다는 것이 포인트입니다.

 

 

 

 

 

3. where 함수를 통해 알아보는 Broadcasting

 

 

 

브로드캐스팅(broadcasting)을 한마디로 정의하자면 바로 '확장'입니다.

where 함수에서 서로 다른 모양의 2가지 텐서가 사용되는 경우,

서로의 shape에 맞추어 행과 열을 확장해야 할 필요가 있습니다.

이럴 때 사용되는 것이 브로드캐스팅, 즉 확장입니다.

아래 코드와 그림을 통해 더 자세히 설명드리겠습니다.

 

 

 

c4, c5 = tf.constant([[1], [2], [3]]), tf.constant([[1, 2, 3, 4]])
output:

[[1]
 [2]
 [3]]
[[1 2 3 4]]

 

c4는 3 x 1 텐서, c5는 1 x 4 텐서입니다. 이 두 텐서는 서로 모양이 다릅니다.

그렇기 때문에 tf.less같은 비교연산을 위해서는 각각 행과 열을 '확장'해야 합니다.

이렇게 확장된 후에는 서로 3 x 4로 shape가 같아집니다.

이것이 바로 브로드캐스팅(broadcasting)의 개념입니다.

 

 

 

prt(tf.where(tf.less(c4, c5), tf.multiply(c4, c4), tf.multiply(c5, -1)))
output:

[[-1  1  1  1]
 [-1 -2  4  4]
 [-1 -2 -3  9]]

 

이제 브로드캐스팅된 텐서 c4, c5를 통해 tf.less 연산이 수행이 됩니다.

연산은 각각의 원소마다 적용이 됩니다.

즉, c4의 1행 1열 원소는 c5의 1행 1열의 원소와 비교가 되는 방식입니다.

연산의 결과는 위에 보시는 대로 입니다.

 

 

 

 

이제 cond 결과에 따라서 True일때 출력값, False일때 출력값이 달라지게 됩니다.

초록색은 True와 연관이 있이고, 빨간색은 False와 연관이 있습니다.

즉, True일때는 c4 원소들을 제곱을 하고

False일 때는 c5 원소에 -1을 곱해주는 코드입니다.

 

 

 

prt(tf.where(tf.less(c4, c5), tf.multiply(c4, c4), tf.multiply(c5, -1)))
output:
[[-1  1  1  1]
 [-1 -2  4  4]
 [-1 -2 -3  9]]

결과를 다시 한 번 확인하면, 위와 같습니다.

 

 

 

이렇게 하여 오늘은 텐서플로 2.0 버전의 where 함수,

그리고 where함수의 브로드캐스팅 기능까지 알아보았습니다.

도움이 되셨다면 하단의 하트 버튼 한번씩 부탁드리겠습니다.

 

감사합니다.

 

반응형
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

,

안녕하세요! 은공지능 공작소의 파이찬입니다. 지금 포스팅을 쓰는 날짜

19년 7월 17일 기준 최신버전 텐서플로 2.0 Beta 버전이 출시가 된 상태입니다.

이에 맞춰 은공지능 공작소에서는 초보자도 따라하기 쉬운

콘다 가상환경 설정법을 준비해 보았습니다.

 

그리고 이번 포스팅 부터는 핸드폰이 아닌 데스크탑 모니터 사용자에 최적화하여

포스팅을 작성하려고 합니다. 아무래도 은공지능 공작소를 방문하시는 분들은

데스크탑 및 노트북으로 코딩을 하시는 분들이라고 생각이 들었습니다.

그래서 이번 포스팅 부터는 모바일 보다는 데스크탑에 화면 비율에 맞추어서

포스팅을 작성하겠습니다.

 

 

 

관련 동영상을 유튜브에 올려두었습니다.

참고하시기 바랍니다.

 

 

1. 가상환경 업데이트

 

 

 

먼저 여러가지 가상환경을 업데이트 해주겠습니다.

이러한 것들을 사전에 해주는 이유는 설치 중간에 일어날 수 있는 일들을

사전에 방지하기 위함입니다. 일종의 보험이라고 할 수 있는 작업입니다.

아래의 명령어들을 차례대로 입력해주시면 되겠습니다.

(설치는 시간이 다소 걸릴 수 있습니다. 진행이 안된다고 종료하시면 안됩니다 ^^;)

 

 

 

conda update conda
conda update anaconda
conda update python
conda update --all

저의 경우, python 업데이트 시 경고창이 하나가 떴습니다.

(유튜브 동영상 기준 2:25)

하지만 알아서 디버그가 된 모양인지 제대로 오류없이 업데이트가 잘 되었습니다.

만약 문제가 있으신 분들은 댓글이나 쪽지 부탁드립니다.

 

 

 

 

 

2. conda 가상환경 추가하기

 

 

 

conda info --envs
output:

# conda environments:
#
base                  *  C:\Users\white\Anaconda3
tf-gpu                   C:\Users\white\Anaconda3\envs\tf-gpu

위의 명령어를 입력해 현재 가지고 있는 가상환경 리스트를 확인합니다.

저 같은 경우 base와 tf-gpu 2가지 가상환경이 존재하는 것을 확인할 수 있군요.

하지만 처음 가상환경을 설정하시는 분들은 tf-gpu가 없는것이 당연합니다.

tf-gpu는 제가 만든 것이거든요.

 

이제 텐서플로 2.0 beta 버전을 위한 가상환경을 하나 만들어 보겠습니다.

가상환경의 이름은 tf-2.0-beta로 정하겠습니다.

그리고 바로 이어서 다시 위의 명령어를 날려보겠습니다.

 

 

 

conda create --name tf-2.0-beta
conda info --envs
output:

# conda environments:
#
base                  *  C:\Users\white\Anaconda3
tf-2.0-beta              C:\Users\white\Anaconda3\envs\tf-2.0-beta
tf-gpu                   C:\Users\white\Anaconda3\envs\tf-gpu

이제 tf-2.0-beta라는 가상환경이 새롭게 추가된 것을 확인할 수 있습니다.

이제 이 가상환경을 활성해 주어야 합니다.

현재 가상환경은 base로 된 것을 알 수 있는데, 코드 실행창에 (base)라고

뜬 부분이 바로 현재 실행하고 있는 가상환경입니다.

가상환경 활성화 코드는 아래와 같습니다.

 

 

 

conda activate tf-2.0-beta

(base)라고 되어있는 부분이 잘 바뀐 것을 확인하셨다면, 

성공적으로 가상환경을 활성화 하신 것입니다.

이제 활성화한 tf-2.0-beta라는 가상환경에서

텐서플로 2.0 버전을 설치해 보겠습니다.

 

 

 

pip install tensorflow==2.0.0-beta1

위의 명령어를 입력하여 텐서플로 2.0 베타 버전을 설치해주시면 됩니다.

설치가 제대로 되었다면 가상환경 내 파이썬 프로그램을 통해

설치 성공 여부를 확인하실 수 있습니다.

 

 

 

python
output:

Python 3.7.3 (default, Apr 24 2019, 15:29:51) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

단순히 명령어 창에 python이라고 입력하시면 파이썬이 실행이 됩니다.

파이썬 실행이 되었다면 '>>>'라는 부분이 입력줄에 활성화가 됩니다.

이제 여기서 텐서플로를 import 해주고 버전정보를 확인해 봅시다.

 

 

 

import tensorflow as tf
print(tf.__version__)
output:
2.0.0-beta1

결과창을 보시면 2.0.0-beta1이라고 된 것을 확인하실 수 있을 겁니다.

이로서 conda 내에서 텐서플로를 설치하는 과정이 끝났습니다.

이제 이를 주피터 노트북에 추가해주면 모든 가상환경설정이 마무리 됩니다.

(tf.__version__ ← 이 명령어는 언더바(_)가 2개이니 조심하십시요)

 

 

 

exit()

exit()을 입력하여

원래의 콘다 가상환경으로 빠져나옵니다.

 

 

 

 

 

3. jupyter notebook에 커널 추가하기

 

 

 

주피터 노트북에 앞에서 만들었던 가상환경을 커널로 추가해 보겠습니다.

그러기 위해서는 우선 ipykernel이 먼저 설치가 되어야 합니다.

 

 

 

conda intstall ipykernel jupyter
python -m ipykernel install --user --name tf-2.0-beta --display-name "Tensorflow-2.0-beta"

위의 명령어를 차례대로 입력하여 ipykernel 라이브러리를 설치하고,

Tensorflow-2.0-beta라는 커널을 추가해 줍니다.

여기서 저는 Tensorflow-2.0-beta라는 다소 긴 이름을 사용했지만,

이 부분은 사용자가 마음대로 설정할 수 있는 부분입니다.

 

 

 

jupyter notebook

이제 위와같이 명령어를 입력하여

주피터 노트북을 실행해 보겠습니다.

 

 

 

위의 그림처럼 'New'라는 버튼을 클릭해 보시면

새롭게 만든 가상환경이 커널로 추가된 것을 확인하실 수 있습니다.

이제 해당 가상환경을 클릭하여 주피터 노트북에서

제대로 tensorflow가 작동하는지 확인해야 합니다.

 

 

 

위와 같이 입력하였을 때,

2.0.0-beta1이 제대로 출력이 된다면 이제 모든 준비가 끝난 것입니다.

 

 

4. 쉬운 실행법

 

 

 

성공적으로 tensorflow 2.0을 설치를 했지만, 매번 콘다 prompt에 들어가서

conda activate를 통해 가상환경을 실행하는 것은 상당히 번거롭습니다.

그래서 더 쉬운 접근법을 알려드리려고 합니다.

 

 

 

바탕화면에서 윈도우 키를 눌러보시면 저런 화면이 뜹니다.

저 같은 경우 위의 빨간색 박스처럼 바로 jupyter notebook을

실행할 수 있는 어플이 자동으로 추가가 되었습니다.

 

해당 어플을 클릭하면, 번거롭게 많은 명령어를 입력할 필요 없이 

바로 주피터 노트북이 실행이 됩니다.

다만 주의하셔야 할 점은, 주피터 노트북에서 커널을 고를 때

이번에 만들어준 'Tensorflow-2.0-beta' 커널을 선택하셔야 한다는 것입니다.

 

이로써 Tensorflow 2.0 beta 버전의

아나콘다 설정 포스팅을 마치겠습니다.

 

많은 도움이 되셨으면 좋겠습니다.

감사합니다.

반응형
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

,

 

 

 

안녕하세요! 은공지능 공작소의 파이찬입니다.

오늘은 텐서플로를 이용한

논리연산에 대해 알아보겠습니다.

(아래 YouTube 동영상도 참고해 주세요)

 

 

 

 

 

 

 

 

 

1. 논리연산의 개념

 

 

 

논리연산이란,

참과 거짓 두 가지 결과를 내놓는

연산을 말합니다.

 

수학기으로 따지자면,

등호(=)와 부등호(<, >, >=, <=) 연산이

여기에 포함됩니다.

 

파이썬에서 참은 True,

거짓을 False로 표현되는데요.

이러한 결과들을 내놓는 논리연산을

알아보기 이전에,

먼저 간단한 텐서와 함수들을

만들어 두고 시작하겠습니다.

 

 

 

 

 

2. 사전 준비

 

 

 

import tensorflow as tf

c1, c2 = tf.constant([1, 3]), tf.constant([5, 7])
v1, v2 = tf.Variable([1, 9]), tf.Variable([7, 7])
def sRun(input):
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        rst = input.eval()
        return(rst)

def spr(a):
    print(sRun(a))

c1, c2는 Constant이고,

v1, v2는 Variable입니다.

 

sRun은 session run이라는 것을 줄여서

만들어 보았습니다.

텐서를 쉽게 보기 위한 함수입니다.

 

spr함수는 session print를 줄여서

이름을 붙였습니다.

이는 단순히 프린트를 위한 함수로,

리턴값은 없습니다.

 

 

 

 

 

3. 텐서플로 등호비교 함수

(tf.equal, tf.not_equal)

 

 

tensor list:
c1:  [1 3]
c2:  [5 7]
v1:  [1 9]
v2:  [7 7]
spr(tf.equal(c1, v1))
spr(tf.not_equal(c1, v1))
[ True False]
[False  True]

tf.equal 함수는

c1과 v1을 비교하여

두 텐서의 원소가 같다면 True를,

같지 않다면 False를 출력합니다.

 

 

 

tf.not_equal 함수는

tf.equal 함수와 정반대 개념이라고

이해하시면 편리합니다.

비교 원소가 같이 않으면 True를,

같다면 False를 출력하는 것이지요.

 

 

 

 

 

4. 텐서플로 대소비교 함수

(tf.less, tf.less_equal, tf.greater, tf.greater_equal)

 

 

 

텐서플로 대소비교함수는

두 텐서의 원소들을 비교해

True, False 두가지 결과를 내놓습니다.

 

위에 tf.less를 설명해놓은

그림을 보신다면 쉽게 이해하실 수 있을 겁니다.

 

 

 

tensor list:
c1:  [1 3]
c2:  [5 7]
v1:  [1 9]
v2:  [7 7]
spr(tf.less(c1, v1))
spr(tf.less_equal(c1, v1))

spr(tf.greater(c1, v1))
spr(tf.greater_equal(c1, v1))
output:
[False  True]
[ True  True]

[False False]
[ True False]

tf.less 이외에도 tf.less_equal,

tf.greater, tf.greater_equal 함수가

존재합니다.

 

문법은 less와 동일하므로

자세한 설명은 생락하도록 하겠습니다.

 

 

 

 

 

 

5. and, or, xor, not

 

 

 

 

지금부터 살펴볼 연산들의

input은 모두 bool type 입니다.

즉, input으로 True 와 False만

사용할 수 있습니다.

 

 

 

tf.logical_and 연산은

input들이 모두 True 여야 True를

출력합니다.

 

 

 

tf.logical_or 함수는

input 들을 비교했을 때, 하나라도 True라면

True를 출력합니다.

 

 

 

tf.logical_xor 함수는 input들을 비교해서,

같지 않다면 True, 같다면 False를

출력합니다.

 

만약 True를 1이라고 하고

False를 0이라고 한다면,

이 연산은 원소들을 더한 값을

tf.mod 2하는 결과와 동일합니다.

 

햇갈리시는 분들은 그냥

"같지 않다면 True를 출력!"

이 점을 기억해주시면 됩니다.

 

 

 

tf.logical_not은

input과 반대의 결과를 내놓습니다.

 

input이 True라면 False를

False라면 True를 내놓는 것입니다.

 

 

 

c3 = tf.constant([True, False])
c4 = tf.constant([False, False])
c5 = tf.constant([True, True])
spr(tf.logical_and(c3, c5))
spr(tf.logical_or(c3, c4))
spr(tf.logical_xor(c3, c4))
spr(tf.logical_not(c3))
output:
[ True False]
[ True False]
[ True False]
[False  True]

연산들을 정리한 코드입니다.

설명은 그림을 통해 자세하게 설명했으니

여기서는 실행 결과를 봐주시면 되겠습니다.

 

 

 

네 이렇게 오늘은 equal 부터 시작해서

logical_not까지 텐서플로의 논리연산에 대해

살펴보는 시간을 가졌습니다.

 

 

 

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

긴 글 끝까지 읽어주셔서 감사합니다 :)

 

 

 

 

반응형
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

,

 

 

 

안녕하세요! 은공지능 공작소입니다.

오늘은 텐서플로를 이용한

사칙연산에 대해서 알아보는

시간을 갖겠습니다.

 

 

 

 

 

 

 

텐서플로로 머신러닝, 딥러닝을

수행하다보면

많은 수학적인 연산이 필요합니다.

 

이러한 수학적인 연산의

기초가 되는 것이

오늘 다룰 사칙연산입니다.

 

 

 

 

 

 

1. 사전준비

 

 

 

import tensorflow as tf

c1 = tf.constant([[1, 2], [3, 4]]) # 2 x 2 행렬
c2 = tf.constant([[4, 7], [-1, 0]])
e = tf.constant([[1, 0], [0, 1]]) # 단위 행렬
v1 = tf.Variable([[10, 9], [8, 7]])
v2 = tf.Variable([[3, 6], [5, -1]])
def sRun(input): 
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        rst = input.eval()
        print(rst)
        return(rst)

기본적인 텐서들을 만들어주고

이를 실행하기 위한 함수(sRun)도

하나 만들었습니다.

 

이제 덧셈부터

나눗셈과 나머지까지

텐서연산법에 대해 알아보겠습니다.

 

 

 

 

 

2. 덧셈 (tf.add vs tf.add_n)

 

 

sRun(tf.add(c1, c2))
sRun(tf.add_n([c1, c2, c1]))

sRun(tf.add(c1, v1))
output:
[[5 9]
 [2 4]]
[[ 6 11]
 [ 5  8]]
[[11 11]
 [11 11]]

덧셈의 결과는 각각의 원소들의

덧셈입니다.

 

예를 들어 tf.add(c1, c2)의 1행 1열은

1(c1) + 4(c2) = 5(output)

과 같은 수식을 통해 도출됩니다.

 

tf.add_n도 tf.add와 마찬가지입니다.

다만, tf.add_n과 tf.add의 차이는

tf.add_n은 많은 양의 텐서를 

한 번에 처리할 수 있다는 것입니다.

 

여기서 주의할 점은

tf.add_n은 텐서들을 반드시

대괄호 안에 넣어줘야

한다는 것입니다.

(그렇지 않으면 TypeError가 발생)

 

또한 tf.add(c1, v2)처럼

constant 텐서와 variable 텐서 간의

연산도 가능하니,

이 점 참고해 주시면 되겠습니다.

 

 

 

 

 

3. 뺄셈 (tf.subtract)

 

 

 

sRun(tf.subtract(v1, v2))
output:
[[7 3]
 [3 8]]

다음으로 알아볼 것은 뺄셈입니다.

이전 텐서플로 버전에서는

tf.sub라는 명령어였던 것으로

기억하고 있습니다.

새로운 텐서플로 버전에서는

tf.sub -> tf.subtract로 업데이트

되었습니다.

 

텐서플로 뺄셈도 덧셈과 동일하게

원소들의 뺄샘으로 이루어집니다.

그러니 자세한 설명은

생략하도록 하겠습니다.

 

 

 

 

 

4. 곱셈 (tf.multiply vs tf.matmul)

 

 

 

sRun(tf.multiply(c1, e)) # 원소곱
sRun(tf.matmul(c1, e)) # 행렬곱
output:
[[1 0]
 [0 4]]
[[1 2]
 [3 4]]

텐서플로의 곱셈입니다.

곱셈 함수는 크게 2가지가 있습니다.

tf.multiply와 tf.matmul 입니다.

 

 

 

tf.multiply는 원소들의 곱입니다.

같은 색 숫자끼리의 곱셈이라고

이해하시면 쉬울 것입니다.

그러나 이는 우리가 흔이 알고있는

행렬의 곱셈은 아닙니다.

 

행렬의 곱셈은

tf.matmul 이라는 함수를 통해

구현할 수 있습니다.

 

 

 

 

tf.matmul을 통해

행렬의 곱셈을 구현할 수 있습니다.

연산방식은 위의 그림을

참조해주시면 됩니다.

 

 

 

 

 

5. 나눗셈 (tf.divide, tf.mod)

 

 

 

c3 = tf.constant(10)
c4 = tf.constant(7)

sRun(tf.divide(c3, c4))
sRun(tf.mod(c3, c4))
output:
1.4285714285714286
3

텐서플로 나눗셈을 쉽게 이해하기 위해

c3, c4 텐서를 새롭게 만들었습니다.

 

 

 

tf.divide(~를, ~로 나누면?)         
tf.mod(~를, ~로 나눈 나머지는?)

위와 같은 문법으로 이해하시면

쉬울 것 같습니다.

코드 결과를 참조해주시면 됩니다.

 

아, 참고로 행렬의 나눗셈도 동작하며

행렬의 나눗셈은 원소들의 나눗셈으로

연산이 됩니다.

 

 

 

 

 

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

오늘 포스팅은 여기서 마치겠습니다.

감사합니다.

 

반응형
블로그 이미지

pychan

딥러닝에 관련된 시행착오, 사소하지만 중요한 것들, 가능한 모든 여정을 담았습니다.

,