본문 바로가기

전체 글195

pytorch의 forward 함수는 어떻게 실행될까 pytorch에서 nn.Module 을 기반으로 만들어진 모듈은 forward 함수를 호출 하지도 않았는데 모델 instance을 호출하는 것 만으로 forward가 실행된다. 왜 이럴까? python의 __init__ 은 모두가 알듯이 생성자 함수이다. 클래스의 instance가 생성되면 __init__가 호출된다. __call__은 호출자 함수인데 instance가 호출되면 __call__가 실행된다. python은 클래스 인스턴스도 함수 처럼 호출할 수 있다 class test_class(): def __init__(self, n1,n2,n3): print('called __init__') self.n1 = n1 self.n2 = n2 self.n3 = n3 print(n1, n2, n3) def .. 2022. 5. 9.
간결한 python 문법을 쓰자 - lambda python 스러운 코드를 짜자 ex. flatten = lambda l: [item for sublist in l for item in sublist] #을 풀어서 쓰면 def flatten(l:list): a = [] for i in l: for j in i: a.append(j) return a 2022. 5. 9.
간결한 python 문법을 쓰자 - one line condition python 스러운 코드를 짜자 ex. dG ={} current_node = 1 default_p = 0.1 p = dG.get('p_val', default_p) if current_node in dG else default_p #이 한줄코드를 길게 짜면 if current_node in dG: if 'p_val' not in dG[current_node]: p = default_p else: p = dG[current_node]['pval'] else: p = default_p 코드가 짧아지면 좋지만 그건 가독성 & 명료성을 높이는 방향으로 짧아져야 한다. dictionary 의 get(key, default_value) one-line if condition은 가독성도 높이고 간결성도 높인다. 2022. 4. 12.
디파이 코인은 폰지 사기인가? 먼저 폰지사기가 뭔지 보자 https://ko.wikipedia.org/wiki/%ED%8F%B0%EC%A7%80_%EC%82%AC%EA%B8%B0 아무런 이윤추구 없이 새로 유입된 투자자A의 돈을 기존 투자자B에게 줌으로써 기존 투자자B의 수익성을 창출해 내고, 투자자 A의 수익은 새로운 투자자C가 들어오면 C의 투자금으로 A에게 주는 사기 방식이다. 마지막 투자자가 독박쓰고 모든 손해를 떠앉는 구조이다. 나보다 더 비싸게 사줄 놈을 찾는게 중요하다는 측면에서 보면, 주식과 유사한데, 주식은 기업이 실제 이윤을 창출하고, 그 기업의 이윤 및 소유권을 쪼개서 갖는 것이기 때문에 폰지사기라 할 수는 없다. 다만 이윤이 안나거나 허무맹랑한 회사의 주식 가격이 계속 오르는 것은 폰지사기 라 할 수도 있다. 비.. 2022. 1. 17.