일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cs
- SSL
- 자료구조
- Python
- Depth estimation
- 알고리즘
- PRML
- ML
- 머신러닝
- math
- FGVC
- clean code
- CV
- nerf
- FineGrained
- nlp
- dl
- 3d
- Vision
- pytorch
- GAN
- Meta Learning
- classification
- REACT
- 딥러닝
- Torch
- algorithm
- web
- computervision
- Front
- Today
- Total
목록clean code (12)
KalelPark's LAB
Dictionary - 일반적으로, Dictionary의 원소 삽입 순서와 iteration 순서는 일치하지 않는다. 이러한 일이 발생하는 이유는, Dictionary의 구현이 내장 hash와 난수 씨앗값(seed)을 사용하는 해시 테이블 알고리즘이기 때문이다. - 만약 dictionary를 순서에 의존하고 싶다면, 아래와 같은 명령어를 사용하면 됩니다. baby_names = { "cat" : "kitten", "dog" : "puppy" } print(baby_names.keys()) print(baby_names.values()) print(baby_names.items()) print(baby_names.popitem()) 기존 방법에서는, dictionary에서 값을 불러올 때, 순서대로 불러오..
Packing & Unpacking Packing : 인자로 받은 여러개의 값을 하나의 객체로 합쳐서 받을 수 있도록 합니다. tuple은 *를 사용하여, 나타냅니다. 반면에 **의 경우, dictionary로써 사용됩니다. def func(*args): print(args) print(type(args)) // func(1, 2, 3, 4, 5, 6, 'a', 'b') // result // (1, 2, 3, 4, 5, 6, 'a', 'b') // def kwpacking(**kwargs): print(kwargs) print(type(kwargs) // kwpacking(a=1, b=2, c=3) // result // {'a': 1, 'b': 2, 'c': 3} // Unpacking : 함수를 호..
Machine Learning 및 Deep Learning에서는 선형대수를 알아야 하는 것은 필수입니다..! 선형대수와 관련된 Numpy를 톺아보도록 하겠습니다. - 단위 행렬(identity Matrix) : np.Unit(x) - 대각 행렬(Diagonal Matrix) : np.diag(x) - 내적(Dot Product, inner product) : np.dot(a, b) - 대각합(Trace) : np.trace(x) - 행렬식(Matrix Determinant) : np.linalg.det(x) - 역행렬(Inverse of a Matrix) : np.linalg.inv(x) - 고유값(Eigenvalue) : np.linalg.eig(x) - 특이값 분해(Singular Value Deco..
broadcast_to란? 배열을 새로운 모양으로 broadcast합니다. import numpy as np x = np.array([1, 2, 3]) temp = np.broadcast_to(x, (3, 3)) >> array([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) linspace란? Python의 Numpy 모듈에 포함된 함수로서 1차원 배열 만들때 활용됩니다. (line spaced의 줄임말입니다.) 그래프 그리기에서 수평축의 간격 만들기 등에서 매우 편리하게 사용할 수 있는 함수입니다. 시작 값과 끝 값을 입력하고, 몇 개의 일정한 간격으로 요소를 만들 것인지를 나타내야 합니다. import numpy as np x = np.linspace(0, 10, 11) print(x..
StaticMethod, ClassMethod 알아보기 ClassMethod - 데코레이터를 사용해서 클래스에 메서드를 선언하면 해당 메서드는 클래스 메서드가 되며, 첫번째 매개 변수로 클래스 인스턴스가 아닌 클래스 자체가 넘어오게 됩니다. 관행적으로 cls라고 부르며, 클래스 메서드는 cls를 통하여 속성(attribute)에 접근하거나, 클래스 메서드를 호출할 수 있습니다. 하지만, 인스턴스 메서드와 달리 인스턴스 속성에 접근하거나 다른 인스턴스 메서드를 호출하는 것은 불가능합니다. class User: def __init__(self, email, password): self.email = email self.password = password @classmethod def fromTuple(cls..
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..