전체 글 78

pytorch와 flask를 활용한 딥러닝 모델 서빙하기

tensorflow 2.0을 활용해서 어떻게 서빙하는지 다뤄봤었는데, 요즘엔 pytorch를 사용하시는 분들도 많으니까 이번엔 pytorch를 서빙하는 방법에 대해서 설명드리려고 합니다! 이전 글들과 똑같이 mnist를 준비했고, 학습은 pytorch 공식 예제 참조하여 학습을 수행하였습니다. 아래 링크 참조하셔서 학습 진행해보시길 추천드려요! https://github.com/pytorch/examples/tree/master/mnist pytorch/examples A set of examples around pytorch in Vision, Text, Reinforcement Learning, etc. - pytorch/examples github.com 이전 포스팅에서 tensorflow 예제를 ..

vscode를 활용하여 원격 서버에 연결하기

회사에서 서버를 사용할 때, putty를 활용하는데 IDE를 사용하고 싶다는 생각이 문득 들어서 찾아보니 vscode는 community 버전을 활용해도 서버랑 원격 접속을 할 수 있더군요! 그래서 오늘은 윈도우에서 리눅스 서버로 접속할 때, vscode를 활용해서 IDE를 활용하여 서버에서 코딩을 할 수 있는 환경을 구성해보도록 하겠습니다. vscode는 아래의 주소에서 클릭하여 설치하시면 됩니다. https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, Windows Visual Studio Code is free and available on your favorite platform - Linux, macOS, ..

ETC/VScode 2020.01.30

Tensorflow 2.0과 flask를 활용한 딥러닝 모델 서빙하기

이전 포스팅에선 Tensorflow에서 제공하는 tensorflow-serving 모듈을 활용하여 딥러닝 모델을 서빙해보았습니다. 오늘은 flask를 활용하여 서빙을 해보도록 하겠습니다. 지난 포스팅이 궁금하시면 아래를 참조하시기 바랍니다. https://seokhyun2.tistory.com/39 그 전에, 어떤 차이 점이 있는지 알고 넘어가면 좋겠죠? tensorflow-serving 모듈을 활용할 경우에는 전처리가 불가능하다는 것이 제일 큰 문제점입니다. mnist 데이터를 학습할 때, 불러온 픽셀 데이터를 0~1사이의 값으로 변환하기 위하여 255로 나눠서 학습하죠. 그래서 서버에 요청하기 전에 255를 나눠주어야만 합니다. 특히, 자연어 처리의 경우에는 텍스트 문장이 들어오면 해당 문장을 형태소..

Tensorflow 2.0을 활용한 딥러닝 모델 서빙하기

Tensorflow 2.0에서는 케라스와 통합하고 eager execution (즉시실행)을 지원하게 되면서 훨씬 쉬워졌습니다. 딥러닝을 서비스에 실제로 적용하는 사례가 점점 많아짐에 따라, 서빙을 잘하는 방법에 대해서도 많은 시도를 하고 있습니다. 그래서 딥러닝 모델 서빙에 대하여 제일 쉬운 방법부터 시작해서 하나하나 소개해보려고 합니다. 오늘 소개드리는 방법은 텐서플로우에서 제공하는 텐서플로우 서빙과 도커를 활용하는 방법입니다. 서빙을 하려면 모델부터 있어야겠죠? 아래의 소스코드를 활용해서 간단한 모델을 한번 만들어보도록 하겠습니다. """ example of train mnist dataset with Tensorflow 2.0 """ import tensorflow as tf """ load mn..

[Python] 소스코드 정적 분석, pylint, flake8

소스코드의 정적 분석은 실행하지 않고 소스코드에 대해서 분석을 하는 것을 뜻합니다. 정적 분석의 반대는 동적 분석이며, 동적 분석은 실행 결과 디버깅부터 테스트 소스 커버리지 확인 등등이 다 포함이 됩니다. 정적 분석은 툴을 이용하거나 소스코드 리뷰를 하는 방식이 있는데요. Python 소스 코드를 정적 분석을 해주는 툴은 pylint와 flake8이 많이 사용됩니다. 이 두가지의 툴은 둘 다 pip를 활용하여 쉽게 설치할 수 있습니다. pip install pylint pip install flake8 이렇게 설치하고 사용하는 방법 또한 매우 쉽습니다. python -m pylint hello_world.py python -m flake8 hello_world.py pylint를 실행하면 아래와 같이 ..

python 2020.01.13

[Paper] Deep Double Descent: Where Bigger Models and More Data Hurt

https://arxiv.org/abs/1912.02292 Deep Double Descent: Where Bigger Models and More Data Hurt We show that a variety of modern deep learning tasks exhibit a "double-descent" phenomenon where, as we increase model size, performance first gets worse and then gets better. Moreover, we show that double descent occurs not just as a function of model siz arxiv.org 이 논문은 하버드 대학과 OpenAI에서 작성한 논문입니다. 기존에는..

DeepLearning/ETC 2019.12.19

[python] float or int list to str list & str to float or int list

파이썬에서 list로 구성된 vector를 파일에 쓰고 싶을 때가 있죠? list는 join을 쓰면 한 줄로 합쳐지는데 str 인자가 들어가야합니다. 그러면 list이 모든 아이템을 한방에 str로 바꿔주면 join으로 합칠 수 있겠죠? 그럴때! 아래와 같이 map을 사용하시면 됩니다. ' '.join(map(str, vector)) list에서 item 간에 구별하는 부분을 띄어쓰기로 하려면 위와 같이 하시면 되고 탭을 쓰고 싶으시면 '\t'.join(map(str, vector)) 와 같이 쓰실 수 있어요. 그럼 이걸 불러왔을 때, 파일에서 한줄을 읽고 다시 나눠줘야겠죠? 그냥 split 쓰시면 list의 item들이 str 형식으로 들어갈거에요. 하지만 vector니까 우린 float나 int로 쓰..

python 2019.04.19

프로세스 id (pid) 활용하여 프로세스 실행 위치 확인하기

pid 검색은 ps 명령어를 활용해서 검색할 수 있습니다.ps를 사용할 때, 그냥 쓰면 모든 프로세스가 나오기 때문에 찾기 어려울 수도 있어서 필터를 사용하고 싶을 경우에는 grep을 사용하면 됩니다. 예시)ps -aux | grep python 위의 예시와 같이 사용하시면, 실행 명령에 python이 있었던 프로세스를 모두 찾을 수 있습니다. 찾은 pid를 활용하여 ls -al /proc/pid 명령을 입력하면, 해당 프로세스 실행 위치를 알 수 있습니다.

ETC/Ubuntu 2019.01.17

[Python] python에서 bash 명령 실행하는 방법

python에서 bash 명령을 실행하는 방법 중에 subprocess 모듈을 활용하는 방법입니다. subprocess 모듈을 활용하면 bash 명령을 단순히 실행만 시킬 수도 있고, 실행한 명령에 대한 결과를 받아올 수도 있습니다. 먼저 실행만 하는 경우로 call 메서드를 활용하면 됩니다. import subprocesssubprocess.call('ls -al', shell=True) 위와 같이 실행하면, ls -al 이라는 명령을 실행하게 되고 결과가 바로 프린트 됩니다. 실행하고, 실행한 결과를 바로 프린트 하는 것이 아니라 결과값을 가지고 특정한 프로세스를 하기 위해서는 check_output 메서드를 활용할 수 있습니다. import subprocessresult = subprocess.ch..

python 2018.06.26

scp를 백그라운드에서 실행하는 방법

nohup scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1 위와 같이 실행하면 비밀번호를 입력할 수 있음비밀번호 입력 후 ctrl+z 입력그러면 아래와 같이 출력될 것임 [1]+ Stopped scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1 여기서 아래와 같이 입력 bg 아래와 같이 출력되면서 시작됨 [1]+ scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1

ETC/Ubuntu 2018.06.12