일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- FineGrained
- Depth estimation
- 알고리즘
- computervision
- ML
- PRML
- nlp
- pytorch
- Torch
- algorithm
- 3d
- REACT
- Front
- GAN
- Meta Learning
- nerf
- clean code
- 머신러닝
- classification
- dl
- math
- SSL
- Python
- 자료구조
- 딥러닝
- FGVC
- cs
- CV
- web
- Vision
- Today
- Total
목록Python (18)
KalelPark's LAB
YACS(Yet Another Configuration System)란? - YACS는 실험을 위해 설계된 소프트웨어로 시스템 구성, 정의 및 관리하기 위해 만들어진 경량 시스템이다. 주로 머신러닝에서의 hyperparameter를 관리한다든지, Conv를 관리할 때 사용합니다. - 재현성이 주로 중요하므로, 실험구성을 configuration을 할 수 있는 신뢰할 수 있는 방식이 필요하다. EX> from yacs.config import CfgNode as CN _C = CN() _C.SYSTEM = CN() # Number of GPUS to use in the experiment _C.SYSTEM.NUM_GPUS = 8 # Number of workers for doing things _C.SYS..
StaticMethod, ClassMethod 알아보기 ClassMethod - 데코레이터를 사용해서 클래스에 메서드를 선언하면 해당 메서드는 클래스 메서드가 되며, 첫번째 매개 변수로 클래스 인스턴스가 아닌 클래스 자체가 넘어오게 됩니다. 관행적으로 cls라고 부르며, 클래스 메서드는 cls를 통하여 속성(attribute)에 접근하거나, 클래스 메서드를 호출할 수 있습니다. 하지만, 인스턴스 메서드와 달리 인스턴스 속성에 접근하거나 다른 인스턴스 메서드를 호출하는 것은 불가능합니다. class User: def __init__(self, email, password): self.email = email self.password = password @classmethod def fromTuple(cls..
Chunk - Tensor를 지정된 Chunk의 개수로 분할하려고 합니다. 각 Chunk는 입력 텐서의 View이다. - torch.tensor_split()은 항상 명확하게, Chunk하지만, torch.Chunk는 작거나, 같게 합니다. (유연성) import torch chunk_example = torch.arange(12) print(chunk_example) -> tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) print(chunk_example.size()) -> torch.Size([12]) print(chunk_example.chunk(6, dim = -1)) -> (tensor([0, 1]), tensor([2, 3]), tensor([4, 5]),..
Logging이란? - 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동을 의미합니다. 어떤 소프트웨어가 실행될 때 발생하는 이벤트를 추적하는 수단입니다. 코드에 로깅 호출을 추가하여, 특정 이벤트가 발생했음을 나타냅니다. - 로그(log)를 활용하면 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있습니다. 또한, 성능 및 통계에 대한 정보를 제공합니다. 설정이 가능한 경우, 로그는 예기치 못한 특정 문제들을 디버그할 수 있습니다. * 일반적으로, Shell과 같은 커멘드 인터페이스에서는 print보다 logging을 사용하는 것이 낫다고 말합니다. Python에서는 logging을 위한 유용한 라이브러리를 제공합니다. Log Levels * 로그는 각 래벨 중 하나를..
Dictionary - 파이썬에서 Dictionary를 활용할 때, 어떤 Key에 대한 Value를 처리해야 하는 경우가 상당히 많이 존재합니다. EX> def counterLetters(word): counter = {} for letter in word: if letter not in counter: counter[letter] = 0 counter[letter] += 1 return counter * 위 코드의 문제는 letter가 counter내에 존재하지 않으면, 초기 세팅을 해주는 코드입니다. 하지만, 위 코드의 문제는 가독성이 상당히 떨어진다는 상당한 문제점이 존재합니다. Dict.setdefault - Key와 Value를 인자로 받는 Dictionary의 Method입니다. 원리는 set..
Property - 파이썬에는 내장함수로 property()와 데코레이터인 @Property가 존재합니다. property()를 사용하면서 필드명을 사용하는 것처럼 메서드를 호출할 수 있습니다. class Person: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.age = age def get_age(self): return self._age def set_age(self, age): if age < 0: raise ValueError("Invalid age") self._age = age age = property(get_age, set_age) pro..
Argparse란? - 프로그램에 필요한 인자를 사용자 명령어 인터페이스로 쉽게 작성하는 라이브러리입니다. - argparse를 잘 활용한다면, 코드의 변화를 최소화 시키는 효율적인 코드를 작성하는 것이 가능합니다. * 유용한 것들을 살펴보도록 하겠습니다. action - Command창을 통하여, 인자와 값을 작성할 때, 코드가 해석하는 방식을 지정할 때 활용합니다. - store_true는 해당 인지가 불릴 때, true를 반환합니다. import argparse if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('--gpu', action = 'store_true') nargs - 보통 인자 1개당 1개..
__future__이란? * Python 이전의 버전의 문법을 활용하는 것을 가능하게 합니다. absolute_import : 표쥰 모듈을 우선적으로 import하는 역할입니다. division : 이전의 파이썬 버전에서 작성된 나눗셈을 최신 파이썬 버전에서 매끄럽게 작동하도록 하게합니다. print_function : 향후에 파이썬의 어떤 버전을 활용하더라도, print()를 사용하겠다는 것을 선언한 것입니다. from __future__ import absolute_import from __future__ import division from __future__ import print_function 하단에 참고한 링크에 더욱 다양한 내용들이 있으니, 참고하시기 바랍니다. 감사합니다. Referenc..