본문 바로가기
반응형

잡지식 저장고/Python6

[아나콘다] 기존 환경에 environment.yml로 패키지 추가 설치하기 아나콘다는 보통 새로운 환경을 기존에 있던 다른 환경과 동일하게 생성할 수 있도록 1. 기존 환경을 (myenv) foo@bar:/home/foobar $ conda export >> environment.yml 과 같이 export 한 다음 2. 새로운 계정이나 머신에서 미리 만들어둔 environment.yml 파일을 이용해서 아래와 같이 (base) foo2@bar2:/home/foobar2 $ conda env create --file environment.yml 동일한 환경을 손쉽게 구축할 수 있도록 한다. 그런데, 서로 다른 두 환경을 하나로 합치고자 할 때는 잘 다루지 않아서 셀프 메모 겸 아래와 같이 적는다. 먼저 합치고자 하는 환경을 위와 같이 environment.yml로 export .. 2023. 8. 26.
데코레이터란 : Python Decorator 예시집 - 2 이전 포스팅 : 데코레이터란 : Python Decorator 예시집 - 1 데코레이터란 : Python Decorator 예시집 - 1 데코레이터? 파이썬에서 데코레이터란, 일반적으로 함수의 앞뒤에 미리 정의해둔 처리를 추가적으로 수행할 수 있게끔 치장하는 역할을 수행하는 컴포넌트이다. 아래와 같은 logger 함수를 데코 doodlrudco.tistory.com 이전 포스팅은, wrapper 함수를 좀 더 용이하고 쉽게 사용할 수 있도록 하는 파이썬의 데코레이터와 그때의 메타데이터 상속을 도와주는 @wraps 데코레이터에 대해 다뤘다면, 이후 포스팅은 유용하게 사용될 수 있는 데코레이터의 용례를 다룬다. functools - @lru_cache LRU는 기존 OS에서도 많이 다루는 캐시 관리 기법인데.. 2023. 3. 5.
데코레이터란 : Python Decorator 예시집 - 1 데코레이터? 파이썬에서 데코레이터란, 일반적으로 함수의 앞뒤에 미리 정의해둔 처리를 추가적으로 수행할 수 있게끔 치장하는 역할을 수행하는 컴포넌트이다. 아래와 같은 logger 함수를 데코레이터로 선언한다고 하면, def logger(function): def wrapper(*args, **kwargs): """wrapper documentation""" print(f"----- {function.__name__}: start -----") output = function(*args, **kwargs) print(f"----- {function.__name__}: end -----") return output return wrapper 위의 logger가 하는 일은 3,5 번째 줄에서 볼 수 있듯이 주어.. 2023. 3. 5.
Python Multiprocessing으로 병렬처리, 비디오 처리로 맛보기 Why Multiprocessing? 이전 포스트(링크)에서도 언급했듯이, Python은 Global Interpreter Lock(GIL) 로 인해서 원칙적으로는 c에서와 같이 fork 등 프로세스 분기가 막혀있다. Multiprocessing을 통해서 이런 한계점을 극복할 수 있는데, 이번 포스트에서는 그 중 Process를 이용한다. SIMD vs Pipeline 내가 사용하는 병렬화 방식은 크게 두가지인데, 이 중 Process를 이용한 파이프라인 기반의 병렬처리는 아래 2번의 설명과 같이 한번에 처리해야하는 데이터의 양보다도 하나의 데이터에 대해 수행해야하는 작업 자체가 복잡하고 여러 단계로 이루어져 있을 때 유용하다. 단순한 작업이 매우 많이 반복되어야한다 --> Pool을 사용하는 SIMD스.. 2023. 2. 20.