본문 바로가기

공부29

[python] 클래스를 함수처럼 사용할수 있게.. __call__함수 python memoize를 공부하다가 __call__함수에 대해 먼저 확실하게 이해하고 가려고 정리 하게 되었다. __call__ 이 함수는 클래스의 객체를 호출할 수 있게 만드는 함수이다. class Callmsg: def __init__(self): self.msg = "__call__ Test" # 아래 함수를 클래스에 추가 def __call__(self): return self.msg 위와 같은 __call__객체를 가진 class가 있을 때, __init__에서 msg변수에 문자열(__call__ Test)을 할당해 주고 일반적인 방법으로 msg를 출력하는 방법은 아래와 같다. obj = Callmsg() print(obj.msg) # '__call__ Test' 하지만 __call__ 함수.. 2021. 6. 15.
[Python] @Decorator 파이썬 @데코레이터 포스팅하기에 앞서.. 처음에 Decorator라는 기능을 접했을때, 그래서 이게뭐? 이게 필요한가..? 이런멍청한 생각을 많이 했었다. 개념을 찾아보고 사례를 봐도, 굳이...? 라는 생각도 있었고..(사실 잘 이해를못한거였음) 근데 내가 필요해지니 쉽게느껴지더라..!! 회사에서 일을 하다가, 특정 몇가지 함수들의 실행시간을 측정해야 할 일이 있었다.. 사실 이러한 상황에서 데코레이터를 사용하는게 과연 옳은 일일까? 라는 고민은 아직도 있다. 사수가 없어서 슬프다.. (혹시 이런 방법이 옳지 않다면 댓글로 알려주시길 부탁드립니다ㅠㅠ) 내가 이해한 Decorator 정의 말 그대로 함수 자체를 인자값으로 받아 그 함수를 실행할때 마다 꾸며주는 함수이다. 사용 이유! 내가 원하는 함수만 골라서 실행 시간을 .. 2021. 6. 11.
[DL기초] batch_size, epoch, step 개념 그리고 iteration 일반적으로 Gradient Descent는 아래 3가지 개념을 베이스로 학습이 진행된다. batch_size: Gradient Descent를 한번 계산하기 위한 학습 데이터의 개수 steps: Gradient Descent를 batch_size별로 계산하되, 전체 학습 데이터에 대해서 이를 반복해서 적용한 횟수 epoch: 전체 학습 데이터에 대해서 steps를 진행 이제, 여기서 Iteration 개념이 헷갈린다. Keras의 경우 batch사이즈와 epochs를 인자로 입력해서 얼마나 반복적으로 학습을 수행할지 결정한다. 예를들어 학습데이터 전체가 100개이고, batch_size가 5인 경우, 1 epoch를 위해서 steps는 20번씩 Gradient Descent를 계산한다. (전체를 탐색한다.. 2021. 6. 9.
[DL] 경사하강법(Gradient Descent) 직접 구현하기 Gradient Descent - 경사하강법 딥 러닝에서는 함수의 예측값과 실제값의 차이(오류)를 줄이는 방향으로 가중치(w)를 계속 조절해야 하는데, 대표적인 방법으로 경사하강법을 사용한다. 핵심은 가중치(w)를 계속 조절하다가 더이상 오류값이 좁혀지지 않으면 그때가 최적이라 판단하고 w를 반환해 주는것이다. 그럼 어떻게..? gradient descent는 함수의 기울기를 이용해 최소값을 알아보는데 이 방법으로 알수있는것은 아래와 같다. 1. 기울기가 양수인 경우: x값이 커질 수록 함수 값이 커짐 => x를 음의 방향으로 옮겨! - 기울기가 음수인 경우: x값이 커질 수록 함수 값이 작아짐 => x를 양의 방향으로 옮겨! 2. 기울기의 값이 큰 경우(상대적으로): x의 위치가 최소값/최대값에 해당되.. 2021. 6. 4.