본문 바로가기

분류 전체보기

(131)
[python] yield yield 명령어 제너레이터를 만드는데 사용 제너레이터는 여러 개의 데이터를 미리 만들어 놓지 않고 필요할 때마다 즉석에서 하나씩 만들어낼 수 있는 객체 코드로 살펴보기 def return_abc(): return list("ABC") def yield_abc(): yield "A" yield "B" yield "C" for s in return_abc(): print(s, end=' ') # A B C 출력 for s in yield_abc(): print(s, end=' ') # A B C 출력 # 같아 보이지만 yield_abc()는 제너레이터 반환 print(return_abc()) # ['A', 'B', 'C'] print(yield_abc()) # 제너레이터 코드로 이해하기 import tim..
[백준_14502번] 연구소 (python) 문제 링크 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 첫번째 풀이 from collections import deque import copy from itertools import combinations n, m = map(int, input().split()) MAP = [] for _ in range(n): MAP.append(list(map(int, input().split()))) def bfs(start): global graph ''' st..
[백준_14501번] 퇴사 (Python) 문제 링크 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 내 풀이 def sol(): n = int(input()) t, p = [0],[0] for i in range(n): tt, pp = map(int, input().split()) t.append(tt) p.append(pp) dp = [0] * (n+2) for day in range(n,0,-1): if day + t[day] > n+1: dp[day] = dp[day + 1] else: dp[day] = max(p[day] + dp[day + t[day]], dp[day+1]) print(dp[1]) if __nam..
model.eval() 과 with torch.no_grad() 차이 pytorch에서 inferance나 valid를 할 때 model.eval() 과 with torch.no_grad(): 를 사용하는데 왜 둘다 하는걸까?? 같은 역할을 하지 않을까?? 라는 궁금증에 차이점을 알아보았습니다. with torch.no_grad(): with torch.no_grad() statement에 코드를 포함 시키면 pytorch는 autograd engine을 꺼버린다. 자동으로 gradient를 트래킹하지 않는다는 말 backpropagation을 안하므로 autograd engine을 끔으로서 메모리 사용량과 연산속도를 높인다. model.eval() model.eval()의 역할은 약간 다르다. 모델에서 train과 eval시에 다르게 동작하는 layer가 존재(ex. D..
MLOps ? MLOps 란? ML을 효율적으로 개발하고 서비스화하고 운영할 때 필요한 모든 것을 다루는 분야 ML 시스템 개발(Dev)과 ML 시스템 운영(Ops)을 통합하는 것을 목표로 하는 ML 엔지니어링 일반 SW DevOps와 차이점은 뭘까 ?? -> Data의 유무. Data의 중요성 재사용, 재개발 용이하게 MLOps Component 인프라 Seving Experiment, Model Management Feature store Data Validation Continuous Training Monitoring AutoML MLOps 구성요소 데이터 데이터 수집 파이프라인 : Airflow.. 데이터 저장 : Hadoop, SQL.. 데이터 관리 : Feast.. 모델 모델 개발 : Docker, Kub..
Imbalanced data 다루기 Introduction 대회나 프로젝트를 진행하다보면 Imbalaced data 를 자주 직면하게 됩니다. 특정 class가 다른 데이터보다 현저히 적은 경우 그 class 학습이 잘 안되는 경우가 발생합니다. 얼마전에 object detection 대회에 참여하였는데 10가지 class 중 한 가지 class를 아예 캐치하지 못하는 경우가 있었는데요. 이런 경우 실험 할 수 있는 것들을 정리해보았습니다. 1. 적절한 evaluation metrics 사용 Precision/Specificity: how many selected instances are relevant Recall/Sensitivity: how many relevant instances are seleted. F1 score: harmo..
사물 이미지 분류 대회 ✈ 사물 이미지 분류 대회 Github : https://github.com/han-tae-ho/dacon/ 대회 소개 : 총 10개의 class 로 이루어진 데이터를 분류 대회 결과 : Accuracy : 0.8712 ( 26위 / 460팀 ) 주요 기술 : Computer Vision, Image Classification, SRCNN + Efficientnetb0(or Resnet34), Pesudo Labeling, TTA 피드백 Meta Pesudo Labeling 구현 및 적용을 안한 점 (그냥 Pesudo Labeling 사용) Teacher 모델과 student 모델 dropout layer 수치 다르게 돌려봤으면 ?? (labeled data의 dropout이 더 높게 - 논문참고) 데이..
Dacon 대회 정리 🏆🏆 Dacon Competition 🏆🏆 🦽 농업 환경 변화에 따른 작물 병해 진단 AI 경진대회 대회 소개 : 병해 피해를 입은 작물 사진과 작물의 생장 환경 데이터를 이용해 작물의 병해를 진단하는 AI 모델을 개발 대회 결과 : F1 score : 0.779 ( 290위 / 1513팀 ) 주요 기술 : Image Classification, Efficientnetb0 피드백 대회 하루 전 참여하여 single model 만 돌려본 점이 아쉽다. 시간이 없다보니 train, valid split 없이 train만 돌려서 overfitting이 난 것 같다. (토론 게시판 보니 image만 이용한 singlemodel 0.85 정도 나옴) 생활 환경 데이터를 활용 하지 않았다. 시간이 충분했다면 ? C..
[백준_14499번] 주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 내풀이 def move(d): global dice1, dice2, dice3 # 동쪽이동 # 좌->위 위->우, 우,아래 아래가 좌 if d == 1: dice2, dice1 = dice1, dice2[::-1] # 서쪽이동 # 위->좌, 아래->우, 좌-> 아래, 우-> 위 elif d == 2: dice1, dice2 = di..
[백준_13458번] 시험 감독(python) https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 첫번째 풀이 (백준은 numpy 지원하지 않음 ㅠㅠ) import numpy as np def sol(): A = int(input()) # 시험장 수 students = list(map(int,(input().split()))) # 시험장 별 학생 수 supervisers, sub_supervisers = map(int,(input().s..