전체 글 5

[Multiprocessing] 큐와 파이프를 사용하여 여러 프로세스에서 결과를 받아오는 방법2 - asyncio 의 subprocess 이용

https://rl-shampoo.tistory.com/9 에서 멀티프로세싱 프로그램을 만들었는데 subprocess 를 실행하는 부분이 syncronous 라 느렸다. async 하게 subprocess 를 실행할 방법이 없나 찾아봤더니 공식홈페이지에 내가 원하는 기능이 있는 듯해서 적용해보려한다. import asyncio async def run(cmd): proc = await asyncio.create_subprocess_shell( cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) stdout, stderr = await proc.communicate() print(f'[{cmd!r} exited with {proc.re..

카테고리 없음 2022.07.12

[Multiprocessing] 큐와 파이프를 사용하여 여러 프로세스에서 결과를 받아오는 방법

시나리오 모델 N 개를 train 한 뒤 모델의 best_metric 을 결과로 얻고 싶다. 방법1로 모델 N개를 만들고 방법2로 모델 N개를 만든다. => Process 를 2개 띄우고 각 process 마다 subprocess 를 N개 띄운다. 각각의 process 는 {model_name: metric, model_name2: metric} 형식으로 된 dict 를 반환한다. 또 각 모델의 latency 도 알고 싶다. mp.Process 2개에 Queue 를 하나씩 주고 각 process는 subprocess N개 를 실행하는 방식으로 구현했다. 코드는 아래와 같다. experiment.py 가 entrypoint 이다. experiment.py import multiprocessing as mp..

카테고리 없음 2022.06.24

[궁금증]Transformer 에는 뭔 놈의 mask 가 이렇게 많을까

Pytorch 기준으로 EncoderLayer 는 src_mask, src_key_padding_mask 를 요구한다. DecoderLayer 는 tgt_mask, memory_mask, tgt_key_padding_mask, memory_key_padding_mask 를 요구한다. def forward(self, src: Tensor, src_mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None) -> Tensor: Args: src: the sequence to the encoder layer (required). src_mask: the mask for the src sequence (optional). src_ke..

카테고리 없음 2022.06.22