728x90

분류 전체보기 138

[Python] Multiprocessing으로 속도 개선해보기

TL;DR 3줄요약 파이썬은 GIL으로 인해 쓰레드를 사용하는 데 제약이 있다. Multiprocessing이냐 multi thread냐는 상황에 따라 다르다. 병렬처리에서는 for문 구조를 줄이는게 핵심이다. 데이터셋 전처리 작업으로 코딩하는 와중에, 시간이 너무 오래 걸려서 파이썬 병렬처리에 관하여 공부를 많이 했다. 새롭게 알게 된 점은 파이썬에서는 GIL(Global Interpreter Lock) 이라고 하여, 다른 언어들과 다르게 물리적으로는 1프로세스에 1개의 쓰레드만 사용할 수 있다. 이에 대해선 파이썬을 개발한 귀도 반 로섬이 의도적으로 설계한 것이라고 한다. I’d welcome a set of patches into Py3k only if the performance for a sin..

[Linux] GPU 채굴 방지

회사에서 일하다가 GPU를 쓰려고 보니 100%로 사용되고 있어서 글을 쓰게 되었습니다. 처음보는 sshd라는 프로세스가 GPU를 계속 사용하고 있어서 sshd 문제인가 싶어서 sshd 관련된 설정을 잡았는데요 관련 자료를 검색해보니 eungbean.github.io/2019/11/04/ssh-bruteforce-hacking/ 링크를 통해서 원인을 잡진 못하였지만, 무슨 현상인지 정도는 파악을 하였습니다. netstat -anltp 명령어를 통해 현재 포트로 들어오는 작업이 없는지 확인해본 결과, 172.65.207.106 IP에서 접근해 GPU를 채굴하고 있었는데요 알아보다보니, crontab에서 꺼도 재부팅 되도록 시켜놨더군요 그래서 조치한 결과로 crontab을 삭제하고, 비밀번호도 변경하였으며,..

Computer Science/OS 2021.01.18

역세권 청년주택 자동 이메일 알람 설정

Python을 이용하여 역세권 청년주택 공고가 올라왔을 때 자동으로 이메일을 보내주는 코드를 작성해보았습니다. 필요한 설정은 다음과 같습니다. 1. 코드를 주기적으로 실행하기 위한 Crontab 설치는 다음의 링크를 참고하였습니다. (decdream08.tistory.com/67) 2. Python에서 이메일을 보내기 위한 설정은 다음의 링크를 참고하였습니다. (yeolco.tistory.com/93) 코드는 아래와 같습니다. import requests from bs4 import BeautifulSoup as bs import datetime import smtplib from email.mime.text import MIMEText url = 'https://housing.seoul.go.kr/si..

Transfer Learning 가이드

많은 사람들이 딥러닝을 처음 접하고 이용할 때, 수많은 논문들의 github 코드를 가져와서 사용하곤 합니다. 이 때, Transfer Learning이라 하여 기존의 학습된 가중치를 이용해 본인이 적용하고자 하는 업무에 조금 변형하여 사용합니다. fine-tuning, Transfer Learning, pre-trained model 등 다양한 이름들이 존재하는데, 언제 어떻게 사용하는게 좋을까요? 스탠퍼드 대학교에서 가르치는 컴퓨터비전 과목에서는 다음과 같이 적혀 있습니다. 정리해서 말하면 Transfer Learning에는 3가지 시나리오가 있는데, 1. Convolutional Network를 특징추출기로 사용하는 경우 : ConvNet의 마지막 FC layer를 제외하고, 새로운 데이터셋의 특징..

AI | ML 2021.01.05

[Python] Matplotlib 사용법

파이썬에서 가시화를 위해 보통 Matplotlib 라이브러리 내 pyplot 라이브러리를 많이 사용합니다. 개인적으로는 불편함도 없지 않지만 쓰다보니 익숙해져서 그런지 자주 찾는것 같습니다. 목차 1. 그래프 그리기 1) 그래프 1개 그려보기 2) 그래프 여러개 그리기 3) 다양한 그래프 2. 그래프 시각화 옵션 1) X축, Y축 이름 붙이기 2) X축, Y축 값 변경하기 numpy는 np로 쓰듯이, pyplot는 plt 명령어를 자주 사용합니다. import Matplotlib.pyplot as plt 1. 그래프 그리기 기본 그래프 1개 그리기 기본적으로 matplotlib에서 plot 기능을 이용할 때는 x의 개수와 y개수가 동일해야 합니다. 그렇지 않으면 오류가 납니다. 그리고 순서가 정해져 있기..

[JavaScript] location, history, navigator

location 객체 브라우저와 관련된 속성과 메소드를 제공하는 객체 - 기본형 location.속성; location.메소드(); - 속성과 종류 종류 설명 location.href 주소 영역의 참조 주소를 설정하거나 url을 반환 location.hash url의 해시값을 반환 location.hostname url의 호스트 이름을 설정하거나 반환 location.host url의 호스트 이름과 포트번호를 반환 location.protocol url의 프로토콜을 반환 location.search url의 쿼리값을 반환 location.reload() 새로 고침 history 객체 사용자가 방문한 사이트의 기록을 남기고, 이전 방문 사이트와 다음 방문 사이트로 갈 수 있는 속성과 메소드를 제공 - 기본..

카테고리 없음 2020.12.08

[JavaScript] 일정한 간격으로 코드 실행시키기

setInterval(), clearInterval() var 변수 = setInterval("Code", ms) 위와 같은 코드를 작성하면 변수가 일정시간 간격(ms)마다 코드를 실행하게 됩니다. clearInterval(변수) 를 할 경우, 해당 실행을 정지시킬 수 있습니다. 다음은 예시입니다. setTimeout(), clearTimeout() 위의 메소드는 일정시간이 지나면 코드를 실행하고 종료합니다. var 변수 = setTimeout(func() {"Code"}, ms); 반대로 참조되어 있던 경우는 clearTimeout(변수); 명령어로 취소시킬 수 있습니다. 참고 : 자바스크립트 + 제이쿼리 입문

웹 프로그래밍 2020.12.08

딥러닝 학습 데이터셋 쉽게 찾고 다운받기

최근에 데이터 확보를 위해 다양한 데이터셋을 다운받을 일이 생겼습니다. 하지만, 찾기가 힘든 데이터셋들이 많아지면서 저와 비슷한 분이 있지 않을까 해서 어떻게 하면 데이터셋을 빠르게 모을 수 있는지 써보겠습니다. 1. paperswithcode.com/ 사이트에 검색하기 paperswithcode.com은 제가 자주 애용하는 딥러닝 네트워크의 성능과 코드를 찾아볼 수 있는 사이트입니다. 저의 경우엔 image dehazing 분야의 데이터셋이 필요했는데요 Benchmarks 를 보시면 Dataset 종류들이 나옵니다 다양한 논문들이 좌측처럼 그래프를 보이고 있다면, 그 데이터는 그만큼 접근하기 쉽다는 얘기가 되기도 합니다. 그리고, 해당 분야에 어떤 데이터셋 존재하는지도 알 수 있게 됩니다 그 다음은 단..

AI | ML 2020.12.03
728x90