본문 바로가기
반응형

파이썬18

Python Multiprocessing으로 병렬처리, 크롤링으로 맛보기 Why Multiprocessing? Python은 Global Interpreter Lock(GIL) 로 인해서 원칙적으로는 c에서와 같이 fork 등 프로세스 분기가 막혀있다. 그럼에도 불구하고 유사한 효과를 제공할 수 있는 여러가지 방법들을 제공하는데, 이 중 multiprocessing, 그 중에서도 Pool을 다뤄본다. 크롤러나 I/O를 포함하는 파이썬 스크립트나 c backend가 없는 프로그램의 경우 단일 스레드만 사용하면 시스템 리소스 사용 효율이 너무 떨어지는 경우가 생기는데, 이 때 이걸 어느정도 해결하는 방법이 multiprocessing이다. SIMD vs Pipeline 공식문서에서 수 많은 용례를 확인할 수 있고, threadpoolexecutor, processpool exec.. 2023. 2. 18.
Fast Audioset Download repo : https://github.com/dlrudco/Fast-Audioset-Download 기존에 존재하는 구글의 오디오셋(Audioset) 다운로드 깃허브 레포들이나 vanilla youtube-dl 사용이 느리고 CPU util이 별로라서 직접 만든 레포지토리. ffmpeg에서 지원하는 유튜브 부분 추출 및 다운로드 기능과 python multiprocessing을 합쳐서 32 스레드 제온 실버 CPU 기준 48시간 안에 총 200만개(현재 블락 및 누락 때문에 총 170~180만개 살아있는듯) 다운로드 확인. eval이나 balanced_train은 2만개 수준인데 20분 정도 걸린 것 같다. 2023. 2. 16.
Python setup.py 에서 닌자 관련 에러 날 때 가끔 setuptools에서 이상한 에러가 날 때가 있는데, 주로 컴파일러 문제일 때가 많다. cmake도 에러가 자주 나지만 닌자에서도 에러를 자주 보게 되어서, 닌자랑 cmake랑 둘 다 시도해보고 싶은 상황이 있게 된다. from setuptools import setup from torch.utils.cpp_extension import BuildExtension, CUDAExtension setup( name='roi_align_cuda', ext_modules=[ CUDAExtension('roi_align_cuda', [ 'src/roi_align_cuda.cpp', 'src/roi_align_kernel.cu', ]), ], cmdclass={'build_ext': BuildExtensio.. 2021. 4. 13.
PYTHON과 대신증권 API를 이용한 주식 자동화 입문(2-번외) PYTHON과 대신증권 API를 이용한 주식 자동화 입문(2) 에서 OrderMain 클래스를 통해서 주문이 들어가는 것은 좋은데..... 이 귀찮은 확인창이 발목을 잡는다. 필자가 찾아볼 수 있는 한계 내에서는 이 확인창을 직접 엔터나 스페이스를 누르는 행위를 제외하고 API적으로 해결하기는 불가능했다. 그래서 꼼수를 살짝 부려봤다. 1) 먼저 32bit python 환경(경고가 뜨긴 하는데 64bit python을 사용해도 똑같이 동작한다.)에 pywinauto, pyautogui 를 깔아준다 pip install pywinauto pyautogui 2) Cybos Plus 주문 확인 창의 이름이 항상 동일한걸 이용해 import pywinauto import time from pyautogui im.. 2020. 3. 16.