본문 바로가기

Development110

딥러닝 프로젝트를 위한 클라우드 GPU 자원, Google Cloud Platform GPU Cloud 서비스무료 GPU 서버현재까지 알려진 가장 좋은 무료 GPU 서비스는 Google colab이 유일하다. 그러나 colab은 하루에 12시간까지밖에 GPU를 쓸 수 없는 제약이 있고, 데이터를 지속적으로 서버에 올려둘 수가 없어서 google drive에 데이터를 올리고 이를 mount해서 사용해야하는데 이게 매우 불편하다. 또한 command line interface를 제공하지 않아서, jupyter의 cell에 !을 입력해서 해야하는데, 이 또한 매우 불편하다. 그리고 jupyter notebook도 기존에 사용하던 jupyter와 단축키 및 기능이 조금씩 달라서 적응하는데 꽤 시간이 걸린다. 그럼에도 불구하고 한시간에 1000원정도 하는 T4 GPU를 무료로 쓸 수 있다는 것은 .. 2019. 12. 8.
Google API로 GDrive랑 Gspread 사용하기 구글 계정 접속 권한 얻기 먼저 구글 계정의 접속 권한을 얻기 위한 credential생성이 필요하다. * 원칙적으로 oauth2client는 deprecated되고, 이제 google_auth_oauthlib을 사용해야한다. https://google-auth.readthedocs.io/en/latest/oauth2client-deprecation.html#replacement 1. 구글 계정 생성 2. https://console.developers.google.com/apis/library? 에서 원하는 API선택 3. 사용자 인증 정보 생성 4. OAuth 동의에서 scope설정 5. json credential 다운로드 6. Flow를 이용해서 authorization_url얻기 7. autho.. 2019. 11. 22.
라즈베리파이 4 Model B 시작하기 작동을 위해 필요한 최소 주변기기 1. USB-C 전원 연결을 위한 충전기(라즈베리파이 공식 충전기 사용해야 안정적인 전원 공급이 가능함) 2. 8기가 이상의 microSD카드(라즈베리파이 공식 카드 사용) 및 리더기 3. 케이스(있는게 매우 좋음) 4. microHDMI 케이블 최소 연결 사항 microSD카드 삽입, 전원 연결, USB키보드 연결, USB마우스 연결, microHDMI연결 방열판 부착하기 은색, 검은색 칩에 붙여주면 된다. 그러나 실질적인 효과는 -1~2도라고 한다.... https://www.youtube.com/watch?v=E-4GaAz7XNM 기본 시작 방법 아래 링크를 천천히 따라합시다. https://projects.raspberrypi.org/en/projects/rasp.. 2019. 11. 8.
AMD CPU 가상화 옵션키기 # AMD에서는 CPU가상화 옵션이 살짝 숨겨져있다. 1. 컴퓨터를 부팅하면서 del키를 연타하여 BIOS setup에 들어간다. 2. M.I.T 에서 Advanced Frequency Settings 3. Advanced CPU Core Settings 4. SVM Mode을 enable https://forum.level1techs.com/t/solved-no-virtualization-support-with-gigabyte-ga-ab350-gaming-3/114171 2019. 11. 8.
WSL 2 특징 및 설치방법 WSL 2의 특징 WSL 2에서야 Windows 10은 진정한 ubuntu와의 결합이 이루어졌다고 말한다. WSL 1은 파일시스템이 제대로 통합되지 않아, 다수의 파일을 처리하는 작업이 매우 느렸는데, 이제 기존보다 훨씬 빠른 파일 시스템을 제공하고, 더 많은 커널함수를 구현하여 ubuntu native docker를 설치할 수가 있다. 그러나 아직까지는 CUDA를 지원하지 않고, 여러 안정화가 덜되어있어서 불편한 사항이 있다. 좋은 점은 모든 인터페이스가 WSL 1과 완전히 동일하여 적응하는 데 거의 코스트가 들지 않는다는 점이다. WSL 2 Public Release 소식(2020.05.21) 드디어 Windows 10에서 정식으로 WSL 2가 release되었다. 이제 불안정한 윈도우즈 참가자 프로.. 2019. 11. 8.
Javascript - 자바스크립트에서는 this가 매우 유용하다.- 모든 객체는 Window 밑에 존재하며, 그 밑에 document 와 body등의 children으로 존재한다.- .find() 등의 함수를 이용해 내가 원하는 element를 하위 children에 대해 검색할 수 있다.- 동적으로 모든 object들이 업데이트되므로, 과거에 console.log로 찍은 object도 나중에 업데이트되어 바뀐다. - Javascript에서 Undefined를 검출해내는 것은 쉽지 않은 일이다. https://martin-thoma.com/javascript-wtf/ 2018. 5. 9.
Windows10 에서 화면 녹화하기 # 윈도우10 유저라면 기본 설치된 Xbox 프로그램을 이용해 유료 소프트웨어를 쓰지 않고 화면을 쉽게 녹화할 수 있다.Windows 로고 키+G: 게임 표시줄 열기(또는 Xbox Game Bar를 검색해서 실행)Windows 로고 키+Alt+G: 게임 플레이의 마지막 순간들 녹화(게임 표시줄 > 설정에서 녹화되는 시간을 변경할 수 있습니다.)Windows 로고 키+Alt+R: 녹화 시작/중지Windows 로고 키+Alt+Print Screen: 게임 스크린샷 찍기Windows 로고 키+Alt+T: 녹화 타이머 표시/숨기기Windows 로고 키+Alt+M: 마이크 녹음 시작/중지http://it.donga.com/22257/ - 그러나 위 방식의 단점은.. 하나의 application에 대해서만 녹화를 .. 2018. 3. 12.
윈도우즈10 파일 탐색창 왼쪽 메뉴의 바로가기 수정하기 # Registry를 건드릴 수밖에 없다.1) Window+R 키를 누르고 regedit을 입력해서 실행한다. 2) 레지스트리 편집기에서 HKEY_CLASSES_ROOT\CLSID을 선택한 다음, 해당 디렉토리에 대해 ctrl+F 를 눌러 찾기를 실행 후 System.IsPinnedToNameSpace 을 검색한다. 3) System.IsPinnedToNameSpace 값이 1이면 탐색창 메뉴가 보이고, 0이면 보이지 않는다. 4) 어떤 key 값이 어떤 프로그램을 가리키는지 알기 어려우므로, 일일이 1로 되어있는 키를 0으로 바꿔보면서 탐색창에서 없어지는지 확인한다. 5) 레지스트리를 편집할 수 없다는 에러가 뜨면 무시하고 다른 F3을 눌러 다음찾기를 통해 다른 값을 바꿔본다. - NCS drive 키.. 2018. 3. 11.
Mac에서 압축한 파일의 제목이 깨질 때 Mac에서 압축한 파일을 window에서 압축 해제했더니 파일 제목이 깨질 때winarchiver lite를 사용해서 압축하면 됨 (압축할 때 setting에서 Korean window옵션 선택) 2017. 12. 18.
PPT로 포스터 인쇄하기, PPT에서 그림파일 추출하기 # A0 사이즈의 고해상도 출력물을 PPT로 만들어 인쇄할 때 주의사항.우선 [파일-옵션-고급-인쇄]에서 다음과 같이 체크박스를 할 것.https://m.blog.naver.com/PostView.nhn?blogId=radiobj5&logNo=220108065742&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2Fhttp://powerpoint.pe.kr/220079391846https://support.office.com/en-us/article/PowerPoint-Options-Advanced-bdbee278-4984-4c7d-88ad-6f493bd18343?omkt=en-US&ui=en-US&rs=en-US&ad=US # 시행착오 과정 여러가지 포맷으로 인쇄를 해본.. 2017. 11. 14.
Ubuntu 여러 에러 잡기, 설치 # apt-get install 팁1) apt-get update를 하면, 등록해둔 주소에서 패키지 리스트를 가져온다2) 아래와 같이하면 등록을 할 수 있다.(tee라는 명령어로 /etc/apt/sources/list파일 뒷부분에 이어쓰기한것)echo "deb https://dl.bintray.com/wangzw/deb trusty contrib" | sudo tee /etc/apt/sources.list 3) 또는 설치파일인 deb를 직접 curl로 받아서, dpkg로 아래와 같이 설치할 수도 있다.curl -O http://kr.archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf8_2.5.0-9ubuntu1_amd64.debdpkg -i libpr.. 2017. 9. 6.
Github Markdown 사용법 마크다운은 매우 편리하게 문서를 작성해 주는 도구이다. 특히 github 문서를 작성할 때 매우 용이하며 다음과 같은 기능을 제공한다. 참고로 underline은 존재하지 않는데, 그 이유는 아마도 hyperlink랑 구분하기 위해서로 추정된다. # 큰 제목## 그다음 큰 제목### 그다음 큰 제목....###### 제일 작은 제목 - 글머리기호1. 숫자 기호 하이퍼링크(단축키 컨트롤+k): [GitHub](http://github.com)엔터 2번: 문단나누기 (띄어쓰기를 넣으면 안됨)*기울기***굵게*****기울고 굵게***~~취소선~~ 다른 github issue 태깅하기 : # 하고 선택해서 태깅 space 3번( ): 문단 들여쓰기(Indentation) > : 이메일 스타일 문단 인용 *** .. 2017. 8. 21.
Jupyter Notebook # Jupyter와 IPython의 관계: 원래는 Jupyter와 IPython은 하나의 프로젝트 였음. 근데 notebook이 엄청 흥하면서 점차 프로젝트의 규모가 커졌음.이에 Python이 아닌 다른 언어를 지원하기시작하고 더 잦은 업데이트가 필요한데 규모가 너무커서 힘들었음.그래서 3.0버전까지는 하나의 통합된 IPython만 존재했는데, 이제부터는 쪼개서 jupyter라는 거대한 통합 플렛폼안에 소속된 프로젝트로 IPython이 들어가는 형식으로 쪼갰음.(즉 여러 언어중에 하나로 Python도 지원한다.)http://blog.jupyter.org/2015/04/15/the-big-split/ 현재 최신 jupyter notebook은 5.0 버전임. https://github.com/jupyter.. 2017. 5. 23.
TensorFlow Extreme Performance Tuning 텐서플로우는 잘못사용하면 정말 정말 정말 느리다. 기본적으로 주어지는 공식 예제는 속도 최적화를 전혀 고려하지 않은 예제이기 때문에, 내가 아무리 비싸고 좋은 GPU를 사용하더라도, 저렴한 GPU에 비해 심각하게 느릴 수 있다. 이에 대한 여러가지 분석과 해결법을 정리해본다. 1. GPU Utilization 분석 먼저 내가 만든 TensorFlow 모델이 과연 얼마나 최고의 효율로 GPU를 사용해서 돌아가고 있는지 확인하자. 그래서 nvidia-smi 혹은 nvidia-smi -a 를 입력하여 Volatile GPU-util 이라는 항목을 볼 수 있는데 이것의 의미는 최근 1 초동안 busy 상태였던 core의 비율을 의미한다. http://stackoverflow.com/questions/508681.. 2017. 1. 20.
Python game programming. Pygame + PyBox2D Python으로 2차원 게임 환경을 구현하여 강화학습을 실험하기http://projectlog.ferranfabregas.info/python-box-2d-pygame-demo-bumper-cars/ 1. Pygame : 파이썬 게임 엔진, rendering을 담당한다.(필요에 따라 pygame 대신 opencv나 pyglet등으로 대체 가능)sudo pip install pygame 2. PyBox2D : 파이썬 게임 물리 엔진swig 최신 버전 설치 : http://www.linuxfromscratch.org/blfs/view/7.6/general/swig.htmlsudo apt-get install libpcre3 libpcre3-dev wget https://downloads.sourceforge.. 2017. 1. 16.
IP타임 공유기 스위치 허브 모드 스위치 허브 모드 : 공유기를 단순히 포트의 확장으로 사용하기(각 컴퓨터에 할당된 고정아이피 사용) 1. 내부아이피 주소 끝을 1에서 200으로변경2. 인터넷 연결을 끊었다가 재접속3. DHCP중지4. WAN을 빼서 LAN으로 이동5. 컴퓨터의 네트워크를 갱신-고정아이피로 설정변경6. 그럼이제 모든 컴퓨터가 각자 고정아이피모드임http://m.blog.naver.com/michaelrodri/120184371244 2016. 12. 15.
Windows Subsystem Linux(WSL)에서 TensorFlow 설치 및 실행하기 Windows Subsystem Linux(WSL)이란윈도우의 시스템콜을 우분투와 연결하여, 동시에 2개의 운영체제를 사용하는 가상환경http://www.itworld.co.kr/news/105480 그리고 WSL 1의 느린 파일 엑세스와 드라이버 문제 등을 해결한 WSL 2이 현재 진행형으로 개발중이다.WSL 2 특징 및 설치방법 WSL 1 설치방법- 설정 -> 업데이트 및 복구 -> 개발자용 -> 개발자 모드선택- 제어판 -> 프로그램 -> '프로그램 및 기능'의 'Windows 기능 켜기/끄기' -> 'Linux용 Windows 하위 시스템(베타)' 선택- 재부팅- Microsoft Store에서 ubuntu 16.04를 검색해서 다운로드하고 실행- ubuntu 설치가 완료되면, id와 passwd.. 2016. 11. 21.
Ubuntu 에서의 DNS 서버 구축 총 7대의 slave와 1대의 master로 구성된 클러스터 서버에서 IP주소를 일일이 외우지 않고, domain name으로 각 서버컴퓨터들을 사용하기 위해서 bind9을 이용한 DNS를 master서버에 구축하였다. * DNS의 원리 slave.dns.server.co.kr : 이런식으로 구성된 도메인은 역순으로 구성된 DNS서버들을 거쳐서 recursive하게 ip주소를 받아낸다. 즉, kr -> co -> server -> dns 순서로 DNS를 물어본다.보통의 경우 server.co.kr은 도메인을 구입해서 사용해야하고, 그 앞의 slave와 dns에 해당하는 부분을 서버 개발자가 구성하게 된다. # bind9 설정하기우선 아래의 링크만 정말 천천히 정독하면, 거의 한 번에 구현이 가능하다. 이.. 2016. 9. 28.
Ubuntu에서 FTP파일 서버 구축 - vsftpd 를 이용해 파일 공유하기 : ftp는 보안에 매우 취약하다. sftp는 보안은 강력한대신 속도가 느리다. vsftpd는 sftp 만큼 안전하면서 속도도 빨라서 가장 널리 이용되는 프로그램이다. - vsftp 설정하기sudo apt-get install vsftpd sudo vim /etc/vsftpd.conf # 원하는 대로 설정 변경. 그러나 우선은 default 상태로 실행시켜서 접속 테스트sudo service vsftpd restart # vsftd.conf 파일 수정하기http://blog.daum.net/99lib/27 http://isaac0448.iptime.org:8080/676http://webdir.tistory.com/199http://auctionpro.co.kr/.. 2016. 9. 27.
TensorFlow 프로그래밍 TensorFlow # flags 사용: https://stackoverflow.com/questions/33703624/how-does-tf-app-run-workflags로 지정된 변수들은, tf.app.run()을 이용해 실행할 경우 main.py 함수를 실행할 때 자동으로 커맨드 라인에 입력한 argument를 parsing하여 내부로 자동 전달해주는 역할을 한다. "Runs the program with an optional 'main' function and 'argv' list." The name 'conv_layer1/h_pool1' refers to an Operation, not a Tensor. Tensor names must be of the form ":". 아하.. 그냥 name.. 2016. 9. 13.