Python(212)
-
[ Python ] threading 에 대해서 잘 설명된 글
https://soooprmx.com/archives/8834 파이썬의 스레드 사용법 · Wireframe 멀티스레드를 사용한 병렬처리는 concurrent.futures의 ThreadPoolExecutor를 사용하면 스레드 풀 관리에서부터, 처리 결과들의 동기화에 이르기까지의 여러 작업을 간단한 API를 통해서 처리할 수 있다. 특히 이 API의 경우 멀티스레드와 멀티프로세스에서 동일한 형태로 디자인되어 있고, 실제 사용시에는 어떤 구현을 선택할 것인지에 따라 Pool관리자의 클래스만 변경하면 되기 때문에 편리하게 사용할 수 있다. 하지만 이 API는 특정한 soooprmx.com 사이트에 좋은 자료가 참 많다! 흔히들 파이썬의 Thread는 Global Interpreter Lock이라는 제약 때문에..
2019.08.11 -
[ Python ] thread 공부해보기-1
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ 최근에 머 하나를 병렬적으로 실행하고 싶은 게 있었다. 그래서 멀티프로세싱으로 하려고 시도를 했는데, 동작하지 않아서 threading을 활용해서 thread 형식으로 했다. 하지만 내가 알기론 GIL? 이것 때문에 thread 방식은 안 좋다고 하는데, 왜 내가 했던 문제에서는 thread로만 작동하는 걸까?! 암튼 그래서 thread에 대해서 공부를 해보려고 한다. 일단 동기와 비동기에 대해 간다하게 설명된 예시 우체국이 있습니다. 저는 소포를 보내려는 손님이죠. 손님들 100명이 우체국에 일렬로 줄을 서있고, 한명씩 처리하는것이 -> 싱글스레드 / 동기 처리입니다. 손님들 100명이 우체국의 100명의 직원에게 각각 처리..
2019.08.11 -
Kafka 기본 개념 및 장점 설명
Kafka라는 것에 대해 공부하기 전 개념에 대해서 일단 보려고 하다가 좋은 자료가 있어서 번역해본다. https://timber.io/blog/hello-world-in-kafka-using-python/ Hello world in Kafka using Python We're going to teach you what Kafka is, apprehending the need for a tool like Kafka and then get started with it. We're believers that the best way to learn something is to do it, so get out your terminal and your favorite code editor. timber.io 이 ..
2019.08.02 -
Jupyter 메모리 체크하는 패키지와 모니터링하는 패키지소개
보통 주피터를 사용하다보면, 메모리에 대해서 체크를 하고 싶은데, 명령어를 써야해서 복잡하다. 하지만 역시 사람들은 똑똑하다보니, 메모리 체크와 모니터링하는 것을 만들었다. 같이 서버를 쓰다보면, 어떤 분이 이렇게 메모리를 많이 잡아먹고 싶은지 알고 싶을 때가 있다. python ~.py로 하면 명확히 떠서 알수있지만, Jupyer 같은 경우에는 커널이름으로 떠서 추측을 해야했다. 그래서 해결할 것을 찾아보니 다음과 같다! nbresuse https://github.com/yuvipanda/nbresuse yuvipanda/nbresuse Jupyter Notebook Extension for monitoring your own Resource Usage - yuvipanda/nbresuse github..
2019.07.24 -
[ Python ] combination 조합 만들기
가끔씩 어떤 조합의 경우의 수를 뽑고 싶은 경우가 있다. print(Seg) ['X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8', 'X9', 'X10', 'X11', 'X12', 'X13', 'X14', 'X15', 'X16', 'X17'] 여기서 17C2 또는 17C3을 구하고 싶다고 하자. 그러면 다음과 같은 코드면 된다. import itertools combination = [] for ii in range(2, 4 ): for subset in itertools.combinations(Seg , ii): combination.append(list(subset)) [['X1', 'X2'], ['X1', 'X3'], ['X1', 'X4'], ['X1', 'X5'],..
2019.07.24 -
[ Python ] Regex 유용한 팁들!
## [^aeiou] aeiou를 제외하고 한개 ## [0-9] 중에 한개만 있을 때 ## [0-9]+ 중에 한개이상 ## (\D\d)+ 이것이 반복적으로 있을 때 ( ) 사용 ## ^iteration_1(.*?).png$ 시작은 interation_1 로 시작하고 끝은 .png 이미 re.search(^iteration_1([^"]+).png$ , text) ## iteration_2 로 시작하고 .png로 끝나면서 앞에 숫자가 0-5이면서 뒤에는 아무 숫자가 오게 re.search( ^iteration_2[0-5][0-9]+.png$ , text) iteration_1 로 시작하고 .png로 끝나면서 중간에 숫자가 4개 re.search('^iteration_1\d{4}.png$' , text) 영어..
2019.07.20 -
[ Python ] 영어 Text 전처리 및 유용한 Re 설명 자료
아래에 가면 Medium 자료가 있다. 여러 가지 잘 정리한 블로그여서, 궁금하신 분들은 가서 보시면 될 것 같다! 일단 텍스트 전처리 초보자라서 Regular Expression에 굉장히 서툴러서, 여러 가지 많이 경험해보려고 자료를 찾다고 잘 정리되어 있는 것을 찾게 되었다. 한글 코드 범위 ㄱ ~ ㅎ: 0x3131 ~ 0x314e ㅏ ~ ㅣ: 0x314 f ~ 0x3163 가 ~ 힣: 0 xac00~ 0xd7a3 import re def test(): s='韓子는 싫고, 한글은 nice하다. English 쵝오 -_-ㅋㅑㅋㅑ ./?!' hangul = re.compile('[^ ㄱ-ㅣ가-힣]+') # 한글과 띄어쓰기를 제외한 모든 글자 # hangul = re.compile('[^ \u3131-\u..
2019.07.09 -
파이썬에서 R처럼 gather 함수와 자주 쓸 것 같은 시각화 코드
파이썬 시각화 연습 난 처음에 R로 배우다 보니, ggplot으로 많이 시각화를 한다. 거기서는 특히 dplyr에 gather와 혼합을 해서 사용을 하는데, 그것과 비슷한 개념으로 코딩을 하고 싶어서 찾아봤지만, 결론은 굳이 그렇게 할 필요가 없었다 파이썬에서는 좀 더 쉽게 저차원에서 시각화를 하다 보니 좀만 알면 쉽고 이쁘게 할 수가 있었다. 파이썬에서 gather를 하려면 melt를 잘 이용해야 한다! import pandas as pd import numpy as np names = [ 'Wilbur', 'Petunia', 'Gregory' ] a = [ 67, 80, 64 ] b = [ 56, 90, 50 ] df = pd.DataFrame({'names':names,'a':a,'b':b}) ##..
2019.07.06 -
여러가지 구조의 Autoencoders
일반적인 AutoEncoder는 feed forward NN 구조인데, 이 구조에서는 인풋을 hidden으로 만들고 다시 인풋으로 만드는데, 이 hidden을 잘 학습을 하는 것이 목적이라고 할 수 있다. 이 포스트에서는 여러 가지 AutoEncoder 구조에 대해서 설명을 한다. 만약 우리가 수백만장의 이미지가 있고 각 이미지는 약 2MB를 차지하는데, 우리는 1MB만 제공할 수 있다. 이처럼 데이터 차원을 잘 줄여야 할 때 어떻게 해야 할까? 이미지를 잘 보다 보면, 정보와 무관한 것이 많이 있을 때가 있다. 예를 들어 배경 같은 것은 사실 이미지랑 관계없지 않은가! 그래서 이렇게 쓸모없는 정보를 줄일 수만 있다면 우리는 1MB짜리로 줄일 수 있을 것이다. 그래서 결국 Hidden으로 저장해서 많은 ..
2019.06.13 -
Activation (SQNL , Soft Cliping , Gaussian)
Activations 중에서 보통 Relu 계열들이 잘 되기 때문에 그 부분에 대해서 많이 발전을 한 것 같다. 하지만 나는 생성 모델에 관심을 가지고 있다 보니, Scaling을 특정 구간에 가두는 그런 함수들이 필요한데 그 예로는 tanh(-1, 1)와 sigmoid(0 , 1) 같은 함수가 있다. 하지만 이 함수들은 미분한 것을 이용하다보면 많은 한계가 있다는 것을 알 수 있다. 이런 것들을 사용하면 Gradient Update 하는 방식으로 하는 것에서 큰 문제가 생긴다. Layer를 깊게 쌓을 수록 Activation의 영향력이 점점 줄어든다는 단점이 분명히 존재한다. 이러한 것을 해결하기 위해 찾은 것들이 Square Nonlinearity (SQNL) ( -1 , 1) 과 Soft Clipi..
2019.06.09 -
Python Group 별로 Bar Graph 그릴 때,
그룹별로 시각화할 일이 있어서 찾아보는데, R과 같이 제공해주는 것도 있지만, 잘 생각해서 해야 하는 것도 있다 목적은 train과 test 별로 각각의 Category 비율 파악을 하는 것이 목적 f, ax = plt.subplots(3,4 , figsize = (20,20)) axx = ax.flatten() f2, ax2 = plt.subplots(3,4 , figsize = (20,20)) axx3 = ax2.flatten() for axx2 , axx4 , j in zip(axx, axx3, catcols) : #output = data.iloc[index_info[0]].reset_index(drop=True).iloc[idx][j].value_counts() tr = data.iloc[ind..
2019.06.09 -
UMAP은 어떻게 작동할까? (Uniform Manifold Approximation and Projection) - 3
https://data-newbie.tistory.com/171 UMAP은 어떻게 작동할까? (Uniform Manifold Approximation and Projection) - 2 https://data-newbie.tistory.com/169 UMAP은 어떻게 작동할까? (Uniform Manifold Approximation and Projection) - 1 저번에는 UMAP 실습 코드를 공유했는데, 이번에는 어떻게 작동하는지에 대해서, 공부해야 할.. data-newbie.tistory.com Finding a Low Dimensional Representation 그냥 사용만 하면 마음이 편한데, 알려고 하니 너무 어렵네요 예를 들면 통상적인 숫자 2 나 3에 퍼지의 사고방식을 도입하면 '..
2019.06.08