Codong's Development Diary RSS 태그 관리 글쓰기 방명록
시작 (5)
2021-02-18 21:35:42

🔥Pytorch를 이용한 딥러닝


Pytorch를 사용해 딥러닝 모델을 사용하려고 한다면 당연히 설치가 우선 아닌가? 이제 하나씩 해보자.


1. Pytorch 설치


간단하다. 공홈으로 가서 >>공식홈페이지링크<<

start 버튼을 누르고,


본인 컴퓨터 환경에 맞게 눌러주면 명령어가 뙇.


.
.
.
.
.


은 개뿔 cuda 설치하러 가자~~


2. CUDA 설치


CUDA는 NVIDIA 에서 개발한 GPU 개발 툴이다. GPU를 이용해 프로그램의 계산을 병렬로 처리하도록 한다. CUDA를 설치하려면 우선 본인의 그래픽카드를 알아야 한다. 자 그러면 우선 그래픽 카드부터 확인하러 가자.


🧐window 10 그래픽 카드 확인 법

시작 - 검색 - 장치 관리자 - 디스플레이 어댑터를 보면 NVIDIA 어쩌고 적힌 것을 확인할 수 있다.

위의 내용을 기억하고, https://developer.nvidia.com/cuda-gpus 이곳에 들어가서 본인 그래픽 카드 시리즈에 맞는 것을 눌러보면


Compute Capability 를 알 수 있다.(필자는 Geforce GTX 1060이라 6.1임을 알 수 있다.) 다음으로 이곳을 보면,


6.1에 맞는 것이 여러개 있음을 알 수 있다. 조건에 맞는 원하는 버전을 설치하면 된다. (필자는 pytorch1.4가 호환이 되는 cuda10.1으로 설치)

마지막으로 https://developer.nvidia.com/cuda-toolkit-archive 이 링크에서 이제 맞는 것을 설치하면 된다. OS에 맞게 고르고 Installer type은 local을 선택해서 한번에 받는다.


3. cuDNN 설치


CUDA 설치가 끝났으면 https://developer.nvidia.com/cudnn 이 링크에 들어가서 CUDA 버전에 맞게 cnDNN설치를 하자. 참고로 NDIVIA 로그인을 해야 받을 수 있다.

파일을 받은 후에, 압축을 풀고 CUDA가 설치된 경로로 들어가서 ex) C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
그 경로 안에 압축 푼 파일안의 내용물을 전부 옮긴다. 이후 커맨드창에 nvcc --version 입력하여 설치가 완료된지 확인한다.

.
.
.
.

자! 이제 다 설치했으니, 다시 파이토치 설치화면으로 가자! 🥳


그런데 봤더니 1.7.1 최신버전 기준이라 필자는 1.4를 쓸 예정이기 때문에 파란 밑줄 부분을 누르면 다른 버전의 커맨드를 알 수 있다.
어서 커맨드 창 키고 pip install torch==1.4.0 torchvision==0.5.0 가즈아아~~


마무리

결국 ERROR: Could not find a version that satisfies the requirement ... error가 떳다고 한다,,, 😱
아마 pip이 torch 1.4 버전과 내 피시의 환경과 맞는 whl파일을 못찾아서 그런 것 같다. 저와 같은 에러 뜨시는 분들 맞는 버전을 찾아서 -f (설치URL)로 해결이 된다고 하네요. pytorch 1.4 쓰실거면 파이썬 3.6 64bit 에서 호환이 되는 것 같습니다. 혹시라도 도움 되시길 바라면서 오늘도 마칩니다~~

2021-02-15 17:42:11

1. 🧐python 가상환경이란?


한 PC local 환경에서 하나의 프로젝트만 진행한다면 아무런 문제가 없다. 하지만 여러개의 프로젝트를 진행하게 되거나 협업시 각자의 버전대로 진행할 경우 문제가 발생한다. 프로젝트마다 라이브러리들의 버전이 다를 수 있고, 각 모듈에 대한 의존성이 다르기에 막 설치하다보면 충돌이 날 수도 있다. 그렇다고 다른 버전의 라이브러리를 일일히 지웠다가 설치 할 수 없기에 이를 방지하기 위한 독립적인 가상환경을 제공한다.

 

2. 📃python 가상환경의 종류 및 간단한 사용법


2.1 venv

파이썬3 에서는 pip install을 통해 설치할 필요도 없는 venv 라는 가상환경 라이브러리가 기본적으로 제공된다.

  1. 생성 : 원하는(프로젝트를 진행할) 폴더에서 아래와 같은 명령어를 작성하면 끝.

    python -m venv 가상환경이름
    # 또는 python -m venv 가상환경이름 --system-site-packages
    # 뒤에 --system-site-packages을 붙이면 기본 파이썬 사용시 설치했던 전역 패키지들을 깔고 시작.

    그러면 가상환경이름과 같은 폴더가 하나 생기는데, 실제 작업은 그 폴더에 들어가지 말고, 있는 곳(프로젝트 폴더)에서 하면된다.

  2. 활성화 및 비활성화

    # 윈도우 cmd
    > 가상환경이름\Scripts\activate.bat
    # bash
    $ source 가상환경이름/bin/activate

    비활성화는 deactivate를 입력하면 된다.

  3. 가상환경 내 패키지 설치 및 삭제
    pip install과 pip uninstall을 사용하면 된다.

  4. 패키지 목록 관리
    pip freeze를 입력하면 확인할 수 있다.

  5. 삭제 : 만들었던 가상환경 폴더를 제거하면 끝.


2.2 virtualenv

거의 venv와 동일하다.
pip install virtualenv 명령어로 라이브러리 다운 받고, virtualenv 가상환경명으로 생성한다.
+ 추가로 --python=python3.7과 같이 뒤에 옵션을 붙여서 원하는 파이썬 버전으로 생성이 가능하다.

pip freeze > requirements.txt를 사용하여 설치한 패키지들을 명시해두는 것이 팁. 다른 개발환경에서 변경된 패키지 의존성을 반영할 때에는 pip install -r requirements.txt을 사용한다.


2.3 pipenv

pipenv는 프로젝트 의존성 관리에 필요한 세세한 설정을 개발자가 일일이 신경쓸 필요가 없다는 것이 큰 장점이다. 의존성을 pipfile로 관리를 해주므로 requirements.txt를 대신한다. 그런 기능엔 대가가 따르는 법. 가장 큰 단점은 속도 문제이다.

  • 작동법

    # 설치
    pip install pipenv
    # 생성 및 활성화 (원하는 프로젝트 폴더에서 실행)
    pipenv shell
    # 비활성화
    exit
    # 패키지 설치
    pipenv install (패키지명. 생략시 pipfile에 적혀있는 패키지들이 한번에 설치됨)

※ 카카오 PyPI 미러 서버로 pip 설치 속도 높이기

+ pipenv 관련 정리 잘해두신분 링크 pipenv속도 올리기
pip 문서(pip문서 바로가기)의 configuration 부분에서 Global에 운영체제에 맞는 곳에 pip.ini 파일을 만들어서 아래의 내용을 편집기를 이용해 작성해주면 된다. 나의 경우 window 10 을 사용하는데 경로는 C:\ProgramData\pip\pip.ini 이곳에다 작성했다.

[global]
index-url=http://ftp.daumkakao.com/pypi/simple
trusted-host=ftp.daumkakao.com

설치중에 Looking in indexes: http://ftp.daumkakao.com/pypi/simple 이런 부분이 뜬다면 성공! 그래도 pipenv는 패키지를 다운 받을 때 locking 도 하므로 시간이 걸릴 수 밖에 없다.


2.4 pyenv

위의 가상환경들은 패키지 관리를 해줘서 편리하지만, 파이썬 버전을 다르게 가상환경을 생서할 때 설치되어있는 버전만 가능하다. 하지만 pyenv는 파이썬 여러 버전을 손쉽게 바꿔가면서 쓸 수 있도록 해주는 도구이다. 그야말로 위의 가상환경들과의 짝궁이라 보면 되겠다.

window

참고 링크 : https://github.com/pyenv-win/pyenv-win#pyenv-win-commands

mac

home brew로 간편하게 설치.

brew install pyenv

 

마무리


위의 가상환경 도구들 말고 또 다른 다양한 많지만, 각각 장단점이 있는 것 같다. 본인이 진행하는 프로젝트나 상황에 맞춰 사용을 하는 것이 좋은 것 같다. 이후에도 더 좋은 것들을 알게 되면 포스팅 해야지 오늘은 20000 ~~ 👋

reference

2021-02-14 15:58:09

🤔git 이란?

형상 관리 도구(Configuration Management Tool) 중 하나. 그 중 분산 버전 관리 시스템이다. 중앙 집중 방식인 SVN(SubVersion)과 차이는 SVN은 중앙 서버에 문제가 생기면 모든 작업이 중단된다. 개발 PC와 저장소에 분산하여 저장되어 있기에 중앙 서버에 장애가 있어도 로컬 저장소에 커밋을 할 수 있다. 후에 정상화 되었을 때 다시 업로드를 하면 되므로 중앙 저장소의 복원이 가능하다.

🧩git 구조

  1. working directory : untracked / tracked 파일, unmodified / modified 파일로 나뉨. modified 파일만 staging area로 옮겨갈 수 있음. git add를 통해 파일을 tracked 파일로 만들 수 있다. ex) 해당 폴더의 .txt 파일만 추가 git add *.txt
  • add하여 다음 단계로
  1. staging area : 이곳에 올라온 파일이라도 수정된다면 modified 라고 나온다. 이 수정된 파일을 또 올릴라면 git add (파일명). staging area에서 내릴꺼면 git rm --cached (파일명)
  • commit하여 다음 단계로.
  1. local .git directory (history) --push--> <--pull-- remote .git directory (서버 저장소에 저장)
  • commit시 staging area에 있던 파일들이 local .git directory에 올라간다. 그것을 원격 git directory에 옮겨 저장하고 싶다면 push를 이용해 저장하면 되고, 다른 컴퓨터에서 원격 저장소에 저장된 내 작업파일을 내려받고 싶으면 pull 명령어를 사용한다.

commit 규모는 기능별로 하는 것이 좋음. 커밋 메시지는 현재형 동사로, 꼭 메시지에 적힌 것만 작업해서 commit 하기!

🎮명령어

기본적으로 git + 명령어 + -옵션 형식으로 이루어짐 ex) git config --global
더 자세히 알고 싶다면 공식 문서 ㄱㄱ! 😋 Git 공식문서

  • git --list : 깃 설정 확인가능
  • git --global -e : 터미널에서 설정 확인
  • git config --global core.editor "code" : vscode에서 확인
  • git init : 폴더안에 깃 초기화
  • git rm -rf .git : 깃 제거
  • git status : 상태확인
  • git log : 로그 확인
  • git diff : working directory의 변경된 내용확인 가능. staging area까지 확인시 git diff -staged or cached
  • 명령어 줄이기 ex) status를 st로 줄이기 git config --global alias.st status
  • 명령어 확인해보기 ex) git config --h

🔜초기 설정

--global을 사용하면 딱 한 번만 하면 되고, 프로젝트마다 다른 이름과 이메일 주소를 사용하고 싶으면 --global을 빼고 사용하면 된다.

  • git config --global user.name "이름" : 이름 설정 (깃헙아이디)
  • git config --global user.email "이메일" : 이메일 설정 (깃헙이메일)
  • git remote add origin (깃헙주소) : git init 후 원격 저장소에 연결 ex) https://github.com/Park-DongHo/WebPractice.git
  • git config --global core.autocrlf true (window or mac input) : git 저장소 저장시 줄바꿈 문제 해결

reference

2021-01-08 19:53:58

왜 파이썬인가?

요즘 핫한 데이터 분석 등 Ai 기술들을 사용하기 위해 파이썬을 선택했다!
파이썬에는 이미 개발되어 있는 다양한 라이브러리를 이용하여 쉽게 개발을 진행할 수 있기 때문이다!

자. 그러면 파이썬을 설치하러 가보자. 설치 또한 간단하다. 공식 홈페이지에 들어가서 Download Python 버튼을 누르면 끝.


빨간 네모 상자의 버튼을 누르면 최신 버전을 다운 받을 수 있다. 최신 버전은 호환성 문제 같이 오류가 발생할 수 있으니,
좀 밑으로 내려보면 다른 버전들도 다운 받을 수 있다. 나는 3.8.4 버전을 다운 받았다

>> 파이썬 공식 홈페이지 다운로드 링크 : https://www.python.org/downloads/ <<

 

아나콘다는 뭐지?

아나콘다(Anaconda)는 수학 및 과학 계산(데이터 과학, 기계 학습 애플리케이션, 대규모 데이터 처리, 예측 분석 등)을 위해 만들어진 파이썬의 배포판이다. 게다가 각 라이브러리의 의존성(Dependency) 관리를 위해 패키지 관리 시스템도 제공한다.
요약하면, 머신러닝, 데이터 분석과 같은 작업을 할 때 설치해야 할 라이브러리들을 파이썬과 함께 설치하여 수고를 덜어준다.

이것 또한 공식 홈페이지에서 다운 받으면 된다.

>> 아나콘다 다운로드 링크 : https://www.anaconda.com/products/individual <<

 

의존성은 뭐지?

둘 중 하나가 다른 하나를 어떤 용도를 위해 사용하기에 의존성을 가지게 되는 것이다. 예를 들어 numpy가 없으면 tensorflow가 실행이 안된다. 버전이 서로 달라도 호환의 문제로 인해 그렇게 될 수 있다는 것이다. 그렇기에 conda, pipenv, pyenv, virtualenv 등등 가상환경을 사용하여 각 프로젝트마다 의존성 관리를 편리하게 할 수 있다!

 

마무리

아무튼 나는 프로젝트를 진행할 때, 가상환경을 사용해서 어차피 라이브러리들을 설치해야 한다. 내 컴퓨터에 이것저것 전부 깔리는 것이 용량도 아깝고 지저분해서 파이썬만 깔아서 진행했다. 하지만 jupyter 뿐만아니라 numpy, sklearn 등등 여러 예제 진행을 바로 시작해도 무리없게 해주는 아나콘다를 설치하는 것도 아주 편리하다고 생각한다.

2020-12-10 18:03:24

개요


나는 대학교에서 나름 전공인 듯 전공 아닌 전공 같은 정보통신공학과를 졸업했다.
1학년 때 필수 교양으로 C 프로그래밍을 배우면서,
'오? 생각보다 재밌는데?' 라고 생각하다가 포인터 배울 때부터 코딩에 손을 땐 것 같다..🤣

다시 코딩을 하게 된 것이 바야흐로 대학교 4학년(2020년) 때...
광주 인공지능 사관학교를 통해 개발의 맛을 알게 되었다!

실제로 내가 직접 뭔갈 만들어서 낸 것을 통해 얻는 성취감... 크... 😵 너무 취한다...
기쁨도 잠시.. 아는 만큼 보인다고 파고들수록 내가 알아야 하는 것들이 해일처럼 밀려오는 것이다.
쉽게 생각했던 나 자신이 부끄러웠다..

But ❗ 여기서 쓰러진다면 내가 이렇게 글을 쓰고 있지도 않을 것이다 😁
그래서 첫 번째로 생각을 한 것이,
.
.
.

🎇개발 블로그 만들기🎇

(개발자들은 블로그 하나 정돈 있어야 한담스 ~ ❓❗)

그렇지만 문제는... 어디 블로그를 사용할지 모르겠다...!!😫😫
완전 쌩초보인 필자의 주관적인 생각으로 시작해보겠슴둥~!


플랫폼 종류


1. 네이버 블로그

블로그 하면 네이버 블로그가 제일 먼저 떠오른다. 내가 한국 사람이라 그런가?😅

장점 : 아무것도 안 해도 된다. 이미 다 짜여진 틀에 맞춰서 글을 적으면 된다.
그리고 네이버 검색 시 잘 뜬다.
단점 : 모르는 거 찾을 때 구글 검색을 선호하는데 구글에 잘 검색되지 않는다..
게다가 마크다운 지원 ❌

2. 카카오 티스토리

사실 나는 티스토리가 어디 건지 몰랐는데 카카오꺼라니.. (어쩐지 네이버 검색에 잘 안나오더라)

장점 : 스킨도 제공하고 html 편집도 가능하다. 쉽게 접근 가능한 흔히 생각하는 블로그
같다. 구글 검색도 잘 나옴!
단점 : 네이버 검색 시 안나옴.. 그리고 코드 적을 때 불편하다 하시는 데 써봐야 알듯!

3. Github Pages

Github에 블로그가 있다고❓❗

장점 : Github과의 호환!! Jekyll theme을 이용한 다양한 테마!! 가볍고 자율성 최고!!
단점 : 나 같은 초짜들에게는 초기 설정 너무 어려운 것 같다.. 기본적으로 제공되는
것이 없어 하나부터 열까지 본인이 직접 해야 한다..

4. Medium

여기서부터는 나는 잘 몰랐다. 구글링 하다가 스쳐 지나간 것 같긴 하다...

장점 : 다른 것에 신경 쓸 필요 없이, 글쓰기에 집중할 수 있다. 쉽고 깔끔하다!
단점 : 글쓰기에 초점을 둔 플랫폼이라 다른 미디어를 추가하는데 제한이 있다.

5. Brunch

한국의 미디엄이라 불리는 Brunch.

장점 : 디자인이 깔끔하고 이쁘다. medium과 같이 글쓰기를 목적으로 많이 사용하는 것 같다.
단점 : 테마 커스터마이징, 코드 지원 ❌ 플러그인 부족


마무리


본문에 작성한 블로그 종류 외에도 벨로그(Velog), 워드프레스(Wordpress) 등이 있는데, 각각이 특성별로 다양하게 있는것 같다. 그 중에서

제일 중요한 것은, '나는 왜 블로그를 만드려 하는가?' 인 것 같다. 각 블로그들은 사용될 도구일 뿐이다.
그렇기에 내가 왜 블로그를 만드는지 생각하면서 용도에 맞는 블로그를 선택하여 나만의 공간을 만드는 것이 중요하다 생각한다.

나는 프로젝트를 진행하면서 예전에 사용했던 알고리즘, 방법 등이 자주 사용되는 것들이 있음을 알게 되었다.
내가 사람인지라 '아 이거 예전에 했는데 어떻게 했더라?' 라는 생각을 많이 했다...😩
아무튼 매번 검색하게 되고, 그것으로 인한 시간 소요가 장난 아니었다.😥

그래서 나는 이렇게 블로그를 만들어서 내가 자주 사용할 법한 것들, 힘들게 해결했던 문제들 등을
남겨놓고 싶어서 블로그를 만들게 되었다. (+ 나의 일상이나 경험했던 것도 앨범처럼 남겨두고 싶었다)

결국 나는 개발과 일상적인 나만의 스토리를 남겨놓고 싶어서 ✨Tistory✨를 선택했다~~🎉

'시작' 카테고리의 다른 글

PyTorch 설치하기.(with CUDA, cuDNN)  (0) 2021.02.18
Python 가상환경 개요 및 사용법  (0) 2021.02.15
Git 개요 및 설정  (0) 2021.02.14
파이썬 설치하기! (feat. 아나콘다)  (0) 2021.01.08