일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CellPin
- 프로그래머스
- logistic regression
- ssh
- cocre
- docker attach
- 코크리
- HookNet
- docker
- WSSS
- 백신후원
- 티스토리챌린지
- 히비스서커스
- 사회조사분석사2급
- Decision Boundary
- Pull Request
- AIFFEL
- 오블완
- Jupyter notebook
- GIT
- aiffel exploration
- IVI
- cs231n
- 기초확률론
- vscode
- 도커
- docker exec
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- airflow
- numpy
- Today
- Total
목록Programming/Python (42)
히비스서커스의 블로그
파이썬에서 대용량 dataframe을 다루다 보면 시간이 오래걸릴 때가 있다. 대용량부터는 데이터를 효율적으로 읽어들이는 방법을 써야 시간을 아낄 수 있다. 이번에도 아니나 다를까 시간이 오래 걸려 코드를 개선하였는데 훨씬 더 빨라졌다. 기존 코드에 작성한 코드는 다음과 같다. def __getitem__(self, idx): item = {} img_path = self.df.values[idx,1].replace('./','/data/nas_data/Public/dacon_mai/') image = cv2.imread(img_path) image = self.transform(image) reduced_matrix = self.df..
benchmark dataset을 다운받는 경우 예전에는 다른 외부 사이트나 구글드라이브에 올려진 데이터를 다운받는 경우가 많았던 것 같은데 요새는 hugging face에 많이 업로드하는 것 같다. 로그인 없이 직접 다운로드 받을수도 있지만, access를 요청해서 승인을 받아야 다운로드를 받을 수 있는 경우도 존재한다. 그래서, python에서 직접 hugging face에 업로드 된 benchmark datatset을 다운로드 받는 방법을 정리해보았다. 1. hugging face 사이트에서 로그인 후 dataset에 대한 access 요청 https://huggingface.co/ Hugging Face – The AI community building the future. huggingfac..
딥러닝 논문을 보다보면 model의 FLOPs에 관해서 비교하는 것을 심심치 않게 볼 수 있다. FLOPs와 비슷한 개념으로 MACs , FLOPS가 존재하는데 이들의 차이 간단한 차이는 다음과 같다. FLOPs는 FLoating point OPerations 의 약자로 딥러닝 model의 연산량을 나타낸다.MACs는 Multipl-Accumulate Computations의 약자로 딥러닝 모델에서 FMA가 몇 번 연산되었는지 나타낸다.(FMA는 Floating point Multiply and Add operation의 약자로 A*x + B를 하나의 연산으로 처리한다.)FLOPS는 FLOating point Operations per Second의 약자로 GPU의 성능을 나타낸다. 참조: https..
이번 포스팅에서는 Airflow를 docker 컨테이너에서 사용할 경우 PostgreSQL 컨테이너와 네트워크로 연결하는 방법을 정리하였다. 왜 DB container로 PostgreSQL을 사용하려는가? 일단 Airflow에서 공식적으로 제공하는 docker-compose 파일에서 PostgreSQL을 DB container로 업로드 하도록 세팅되어 있다. 그 이유는 아마도 Airflow에서 병렬처리를 하는 Executor를 사용하려면 PostgreSQL를 DB로 하는 것이 유리하기 때문인 것으로 보인다. (만약 SQLite를 DB로 사용하게 될 경우 Executor가 아닌 Sequential Executor를 사용하여야 해서 병렬이 아닌 순차적를 할 수 밖에 없다고 한다.) Docker환경에서 Air..
이번 포스팅에서는 Airflow를 docker 컨테이너에서 사용할 경우 WandB를 설정하는 방법을 정리하였다. 왜 Airflow를 WandB와 같이 사용하려는가? Airflow는 일반적으로 데이터 파이프라인 구축하여 스케줄링 하고 모니터링 하기 위해 주로 사용된다. 실시간으로 로그가 쌓이는 작업에서 데이터 파이프라인을 관리하기 위해서 보통 많이 쓰이는 것으로 알고 있다. 이런 과정을 위해서 쓴다면 로그들은 ETL를 거쳐 데이터베이스에 저장되고 ELT 과정을 통해 의미있는 데이터들을 얻어낸 다음 머신러닝 학습을 한 후 얻게 된 정보를 바탕으로 서비스를 제공하는 방식으로 운영이 될 것이다. 만약, 데이터베이스에 저장될 수 있는 데이터가 아닌 이미지 데이터를 위한 머신러닝 모델을 활용하는 task가 이 과정..
이번 글에서는 object detection 모델 학습을 위한 라이브러리로 유명한 mmdetection을 사용하기 위한 방법을 다루고자 한다. 기존 버전들(ver 2.x)에 대한 블로그 글은 많지만 최근 ver 3.x로 업데이트 된 후 정리된 내용이 없어 직접 사용해본 후 정리해보았다. 0. 설치 및 설정 mmdetection은 라이브러리 설치 후 모듈을 불러오는 일반적인 방식과 다르게 git clone 후 커스터마이징하는 방식으로 많이 쓴다. 먼저, mmdetection은 mmengine과 mmcv라는 라이브러리와 연동되어 작용하기 때문에 이들을 먼저 설치해주어야 한다. pip install -U openmim mim install mmengine mim install "mmcv>=2.0.0" 그 후,..
상황 torchvision의 object detection으로 model을 training 하는 도중 다음과 같은 에러를 마주하였다. 에러 Loss is nan, stopping training {'loss_classifier': tensor(nan, device='cuda:0', grad_fn=), 'loss_box_reg': tensor(nan, device='cuda:0', grad_fn=), 'loss_objectness': tensor(nan, device='cuda:0', grad_fn=), 'loss_rpn_box_reg': tensor(nan, device='cuda:0', grad_fn=)} 원인 추측하건데 bounding box가 없는 데이터 부분에서 loss가 크게 발생하는데 이때 l..
상황 airflow의 GPU를 사용하는 DAG 코드를 작성하다가 다음과 같은 에러를 마주쳤다. 코드 from airflow import DAG from airflow.operators.python import PythonOperator from datetime import datetime from models import our_model import torch test = DAG( dag_id = 'test', start_date = datetime(2022,5,5), catchup = False, schedule = '@once' ) train = PythonOperator( task_id = 'train', python_callable = train, dag = test ) def train(): ..