일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- web
- Meta Learning
- 3d
- 자료구조
- SSL
- Torch
- Front
- 알고리즘
- PRML
- REACT
- 딥러닝
- clean code
- Vision
- cs
- ML
- nerf
- 머신러닝
- Depth estimation
- FineGrained
- pytorch
- nlp
- GAN
- dl
- math
- computervision
- Python
- CV
- classification
- FGVC
- algorithm
- Today
- Total
목록Python (36)
KalelPark's LAB
* OpenCV에는 imread를 사용하여, 이미지를 읽어오는 것이 가능합니다. import cv2 cv2.imread("train.img", [1, 0, -1] 중 1개) cv2.imread를 사용하면, 이미지를 불러올 때, 값을 설정할 수 있습니다. cv2.IMREAD_COLOR 1 이미지를 Default값으로 읽어 드립니다. cv2.IMREAD_GRAYSCALE 0 이미지를 GrayScale로 읽어 드립니다. cv2.IMREAS_UNCHANCED -1 이미지를 alpha Channel까지 포함하여 읽습니다.
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개..
torch.nn.Module.register_buffer - parameter가 아니라 buffer를 수행하기 위한 목적으로 활용됩니다. - buffer는 state_dict에 저장되지만, 최적화에 사용되지 않습니다. 즉, 단순한 module이라고 볼 수 있습니다. def register_module(self, name : str, module : Optional["Module"]) -> None: self.add_module(name, module) torch.nn.Module.register_parameter - module에 name을 기반으로 parameter를 추가합니다. - register_buffer와 다르게, 최적화에 사용될 수 있습니다. def register_parameter(self,..
__future__이란? * Python 이전의 버전의 문법을 활용하는 것을 가능하게 합니다. absolute_import : 표쥰 모듈을 우선적으로 import하는 역할입니다. division : 이전의 파이썬 버전에서 작성된 나눗셈을 최신 파이썬 버전에서 매끄럽게 작동하도록 하게합니다. print_function : 향후에 파이썬의 어떤 버전을 활용하더라도, print()를 사용하겠다는 것을 선언한 것입니다. from __future__ import absolute_import from __future__ import division from __future__ import print_function 하단에 참고한 링크에 더욱 다양한 내용들이 있으니, 참고하시기 바랍니다. 감사합니다. Referenc..