Windows 10에서 Tensorflow-gpu 처음부터 끝까지 설치하기.

이번에 컴퓨터를 포멧하면서 텐서플로우를 처음부터 다시 설치해야 되는데, 까먹지 않게 처음부터 했던 방법을 기록하는 중.
  1. miniconda를 설치해주자.
    1. 기본 세팅으로 끝까지 설치하자.
    2. 윈도우 검색창에 Anaconda Prompt를 실행하자
    3. conda create -n ml python=3.6
      를 입력하고 엔터를 친뒤 쭉쭉 진행시키자.
    4. 다 됐으면 일단 여기까지
    GPU 설정일단 텐서플로우-gpu를 설치하기 전에 텐서플로우가 GPU를 쓸 수 있도록 이것저것 다 설치해야 한다. 지원 가능한 GPU이고 최신 드라이버가 설치되어있다고 가정한다.텐서플로우 공식 웹사이트를 가면 가이드를 준다. 링크를 확인해보자.링크에 따르면 Cuda Toolkit, CUPTI, cuDNN을 설치하란다.
    1. CUDA 설치하려면 비쥬얼 스튜디오 부터 설치해야됨 시발
      링크로 가서 2017 커뮤니티 버전을 다운받고 실행하자. 이것 저것 중에서. 
      아래만 설치하자. 이거 누르면 다른것도 자동 체크 됨.
      VC++ 2017 버전 15.6 v14.13 도구 집합
    2. CUDA 9.0 설치
      다만 텐서플로우 가이드로 설치를하면 Cuda 10.0을 설치하게 되는데 우리는 9.0이 필요하니까 링크를 눌러서 설치하자. Base Installer이면 되는것 같다. patch는 뭔지 잘 모르겠음.
      기본 세팅으로 끝까지 쭉쭉 진행하자. 뭐가 먼지 잘 모름.
    3. CUPTI
      설명 보니까 cuda설치할때 같이 설치 된다는거 같음
    4. cuDNN SDK
      링크. 참고로 이거 설치시 회원가입을 해야됨. cuDNN library가 CUDA 9.0버전이 맞는지 확인을 하고 설치를 하자.
      이 파일은 압축파일인데, 쿠다 설치 경로랑 동일한 곳에 복붙하면 된다. 참고

    5. 환경변수 설정
      SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;%PATH% SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64;%PATH%
      입력하셈 cmd에
    Tensorflow-gpu 설치Anaconda Promt로 돌아와서 activate ml입력한다. pip install –user –upgrade tensorflow-gpu도 입력한다. 설치확인anaconda promt에 python을 입력해서 파이썬을 실행시키자. 3.6인걸 확인
    import tensorflow
    from tensorflow.python.client import device_lib
    device_lib.list_local_devices()

    GPU가 결과에 보이면 GPU 설치가 제대로 완료된거임

    read more

Baidu 로그인 없이 빨리 다운받기

2019-03-28. (수정)

중국에서 CV 쪽 논문이 많이 나온다. 그러다 보면 데이터 셋을 바이두 클라우드에 올리는걸 자주 보게 된다. 중국 대륙에서는 구글이나 드롭박스가 막혀있는지 바이두에 올리는 걸 보게 되는데, 뭐 다 좋은데 문제는 바이두 클라우드는 로그인을 해야지만 대용량 파일을 다운 받을 수 가 있다. 회원가입은 중국 핸드폰 번호가 필요하다.

read more

Bitlocker

나는 OS에 거의 돈을 쓰지 않고 살았다.

예전 노트북은 포맷후 고등학교 컴퓨터에 설치되는 OS를 정보선생님한테 빌려서 썼었다. 엔터프라이즈 전용이여서 거의 프로와 동일하게 사용했었는데, Windows 10이 나오면서 문제가 생겼다. 마소에서 Windows 7을 전부 무료로 10으로 업글해주는 이벤트를 했었는데, 당연하게 엔터프라이즈는 대상이 아니였고 하는 수 없으 좀 오랫동안 windows7을 이용했었다. 그 와중에 Surface 3는 Windows 10을 가지고 있어서 얼마나 편한지 알고 있었기 때문에 때가 되면 바꿔야 된다고 생각했다.

우리 학교에서 Windows 10을 제공한다는 걸 알고 그걸로 사용하다가 1년 전쯤에 노트북을 새로 구매하면서 기본 설치된 OS를 사용하게 되었다. 몇년전부터 프로모션으로 대학생들에게는 Windows Edu 버전을 무료로 제공한다는걸 알게 되어서 프로와 거의 동일한 Windows Edu 버전을 이용하게 되었다.

Windows Pro는 일반 유저라면 살 필요가 전혀 없다. 추가 되는 기능은 정말 전문가들을 위한 기능이기고 일반 사람들은 사용할 방법도, 이유도 없다. 다만 Bitlocker이라는 기능은 일반유저들에게도 유용하다.

Bitlocker은 하드디스크에 있는 모든 데이터를 암호화해서 아무나 쉽게 빼가지 못하도록 한다. 예를 들어서 내 USB 저장소를 Bitlocker로 암호화한다면 내가 어디에 잃어버려도 줏은 사람은 이 안에 있는 파일 정보를 읽지못한다.

이런 이유에서 Bitlocker은 꽤나 유용하다고 생각하며 이동식 저장소 뿐만 아니라 컴퓨터 안의 하드드라이버에도 사용 가능하다. 가면 갈 수록 기술의 발달을 통해서 개인 정보와 파일들도 쉽게 유출이 되는데 이런 방법으로 간단하게 지킬수 있다면 좋지 않을까?

나도 이번에 처음으로 하드드라이버를 Bitlocker로 암호화했다. 나중에 시간이 된다면 컴퓨터 내부 하드도 암호화를 하고 싶다. 다만 이 외장하드가 산지 몇년이 지나서 새로 사야된다고 느끼기는 하는데 사실 여태까지 사용에 문제가 없어서 고민이 된다. read more

Pytorch

Pytorch를 해보는 중이에요.

Windows는 원래는 안되지만 어떤 사람이 되게 해줬어요. 아직까지는 기본만 보고 있지만 tensorflow보다 훨신 간편한 것 같아요.

강좌는 우리 학교 교수님의 강좌로 해보고 있어요

https://github.com/hunkim/PyTorchZeroToAll

나쁘지 않네요. read more

USTmap

USTmap을 예전에 안드로이드 어플로 만들었다. 이 어플의 주된 목적은 인터넷을 사용하지 않고도 캠퍼스 지도를 볼 수 있게 하기 위해서 만든 것이다.

그러나 문제점은 요즘 사람들은 앱을 전혀 다운받지 않는다는 것이다. [참고] 나 역시도 어플 다운로드를 별로 좋아하지 않는데, 그 이유는 아무래도 어플리케이션을 설치한다는 것이 약간의 부담감이 드는 행위이기 때문이다. 간단한 기능들은 요즘에는 충분히 웹앱으로 기능이 구현 가능하다. 그래서 똑같은 기능을 가진 웹앱을 개발해보기로 했다.

처음으로 자바스크립트를 제대로 사용해본 프로젝트였고 좀 야심차게 했지만 출시 2주가 약간 안 되어가는데 사용량을 보니 참 의미 없었던 것 같다. 아무래도 학교 지도라는게 초반에 몇번 강의실을 확인하는 데 사용한 다음부터는 필요가 없어지기 때문에 사용량이 극격하게 줄어든 것 같다.

처음에는 따로 지도 데이터베이스를 뽑아서 사용했었는데 매번 업데이트 해줘야 된다는 문제점이 보여서, 학교 공식 지도 사이트의 서버의 결과물을 맘대로 뽑아서 사용하고 있다. 다만 학교 공식 지도 사이트는 외부 사이트에서 뽑아서 쓸 수 없기 때문에 내 페이지에서 프록시 php파일을 만들어서 그걸로 받아서 쓰고 있다.
이제 학교 공식 지도가 업데이트 되면 내 지도도 따로 만질필요 없이 알아서 업데이트가 된다. 히히

사실은 github.io에 올리려고 했는데 학교 공식 서버 php 파일이 HTTP이고, github.io는 HTTPS이기 떄문에 mix-content 문제로 브라우저가 허용을 하지 않는다. github.io는 강제로 http로 만들수 없고 pathadvisor.ust.hk는 절대로 https로 바뀔 것 같지는 않으니 일단은 학교에서 제공하는 개인 사이트 호스팅에 올려두었다. 평생 도메인 돈내고 쓸 것도 아니고 하니까 때 되면 github.io로 옮기고 싶다.

웹앱 코드 read more

우분투 16.04에 이메일 서버 설치하기.

 

sudo apt-get update

sudo DEBIAN_PRIORITY=low apt-get install postfix

설정은 Internet Site, jihoonjjang.com, jichoong (우분투 계정 이름), No, 기본값 —> 으로 두었다.

sudo postconf -e 'home_mailbox= Maildir/'

sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

sudo nano /etc/postfix/virtual
@jihoonjjang.com jichoong

sudo postmap /etc/postfix/virtual

sudo systemctl restart postfix

sudo ufw allow Postfix

sudo apt-get install dovecot-common dovecot-pop3d dovecot-imapd

sudo nano /etc/dovecot/conf.d/10-mail.conf

read more

우분투 16.04에 워드프레스 설치하기

서버에 문제가 생겨서 완전히 초기화 시키고 처음부터 다시 까는 과정이다. 이 과정에서는 워드프레스 설치, SSH로 로그인, https 활성화, 이메일 서버 설치, fail2ban 설치를 할 것이다. 이메일과 fail2ban은 다음 포스트에 올라온다.

현재 서버는 linode에서 한달 10불 짜리를 사용하고 있으며 OS는 우분투 16.04를 사용하고 있다. 도메인은 구입하여 등록했다.

1. 초기 서버 설정

A. 새로운 유저 등록

다음 과정은 이 사이트를 참고하였다.

제일 먼저 서버에 연결한다. 서버 연결은 Putty를 통해서 하는 것이 편하다. 처음 로그인은 root로 하지만 root로 모든 것을 하는 건 위험하기 때문에 새로운 user을 등록 해준다.

adduser jichoong

콘솔에 위 라인을 입력하면 새로운 비밀번호를 입력하라고 하고,
개인 정보를 입력하라고 하는데 개인 입력 정보는 엔터로 넘어가도 괜찮다.

현재 root인 상태에서

usermod -aG sudo sammy

를 해주어서 권한을 준다.

B. SSH로 서버 접속

서버를 접속할 때 비밀번호로 접속하는 것은 불안전하다. 따라서 SSH를 통해서 접속하는 것이 훨신 안전하다. 따라서 public key와 private key를 만든뒤 private key는 내 컴퓨터에 따로 보관하여 나만 로그인 할 수 있도록 하는게 보안 상 좋다.

아래 과정은 이 사이트를 참고 하였다. 일단 이 사이트를 접속하여 Puttygen을 다운 받는다.

Puttygen을 실행시킨뒤
Type of key to generate은 RSA,
Number of bits in a generated key는 4096
을 입력한 뒤 Generate 버튼은 누른다. 그럼 프로그램은 엔트로피를 위해서 프로그램 빈 칸에서 마우스를 와따가따 하기를 부탁하는 데 그래주자.

Passphrase칸에는 원하는 비밀번호를 입력한다. 입력을 안하고 넘어갈 수 도 있지만 입력하는것이 훨신 안전하다.

Save public key, Save private key를 원하는 위치에 한다. 위 칸에 있는 public key를 전부 복사해두자. 이 문자열이 ssh-rsa로 시작하는 것을 확인하자. 그 후 콘솔에 아래 라인을 입력하자.

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

이렇게 하면 authorized_keys라는 파일을 수정하는 메모장으로 들어오는 데 복사한것을 붙혀넣자. Putty에서는 붙혀넣기는 마우스 오른쪽 클릭이다. 붙혀넣은뒤 ctrl+x를 누르고 y키를 누르고 엔터키를 눌러서 저장하고 나간다. (nano 메모장은 위 방법으로 저장하고 나간다)

같은 방법을 새로 만든 계정에다가도 진행해주자.

su - jichoong
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

한뒤 복붙하고 저장하고 나가주자.

이제 Putty 설정을 바꿔서 SSH로 접속이 되게 만들자.

PuTTY를 실행시킨 뒤 가장 처음 화면의 Host Name칸에 VPS의 IP주소나 도메인주소를 입력한다. Port칸에 VPS의 포트번호를 입력한다. (주로 22). Protocol에서 SSH를 선택한다. 프로그램 창 왼쪽 면에 Data 아래에 Connection탭을 들어가서 Auto-login username에 새로 만든 계정 이름(jichoong)을 입력한다.

Connection아래에 SSH 아래에 Auth탭을 들어간뒤 Browse버튼을 눌러서 위 PuTTYGen에서 저장한 private key 파일을 선택해준다. 초기 화면인 Session탭으로 돌아온뒤 Saved Sessions에 적당한 이름을 입력한 뒤(jichoong@my.domain.com) 이 설정을 저장한다.

이제 저장한 설정을 더블 클릭하면 바로 접속이 되며 passphase를 묻는 것을 확인할 수 있다.

아이디/비밀번호 접속 막기

sudo nano /etc/ssh/sshd_config

read more

서버에 fail2ban 설치

사실 여태까지 귀찮아서 안하고 있었는 데 이제 해본다.

 

아래 두 링크를 따라서 했다.

https://www.linode.com/docs/security/using-fail2ban-for-security

https://scottlinux.com/2011/05/26/prevent-postfix-brute-force/ ( [postfix] 부분에 enabled 만 해줌)

 

나중에 시간 있을때 재대로 ban 되는지와 밴 되는 경우 이메일이 오는지, 이메일 서버도 ban 되는지 등을 확인해야겠다. read more