본문 바로가기

반응형

LIST

(3)
Pytorch - ModuleList vs List Pytorch의 nn 모듈은 neural networks를 위한 다양한 구성 요소 클래스를 제공합니다. 특히, 여러 개의 구성 요소를 하나의 리스트로 담는 nn.ModuleList 객체 또한 많이 사용되는데요, 겉보기에는 일반 파이썬 list와 큰 차이가 없어 보입니다. 다음과 같이 간단한 네트워크를 구성해 보겠습니다. import torch import torch.nn as nn class MyNN(nn.Module): def __init__(self, fc_input_size, fc_hidden_sizes, num_classes): super(MyNN, self).__init__() fcs = [nn.Sequential( nn.Linear(fc_input_size, fc_hidden_size), nn..
List Subtraction 두 개의 리스트 $x, y$가 있을 때 $x$ 리스트 원소 중 $y$ 리스트에 속한 원소를 제거하고 싶습니다. 예를 들면 다음과 같은 빼기 연산 (-)를 수행하고 싶은겁니다. >>> x = [1,2,3,4,5,6,7,8,9,0] >>> x [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] >>> y = [1,3,5,7,9] >>> y [1, 3, 5, 7, 9] >>> x - y # (should return [2,4,6,8,0]) 하지만 리스트 자료구조에 대해서는 빼기 연산 (-)를 지원하지 않으므로 다음과 같은 에러가 발생합니다. Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s)..
Mutable Default Arguments 파이썬은 굉장히 직관적인 언어입니다. 상대적으로 간단한 문법과 범용성으로 다양한 분야에서 많은 사람들이 사용하고 있지만 놓치기 쉬운 가벼운 실수들이 있습니다. 이번 포스트에서 살펴볼 것은 함수 정의에서 리스트 등의 가변 변수가 디폴트 값으로 설정되었을 때 발생하는 현상입니다. 다음과 같은 함수를 작성했을 때, def append_to(element, to=[]): to.append(element) return to my_list = append_to(12) print(my_list) my_other_list = append(42) print(my_list) 우리가 기대하는 실행 결과는 'append_to' 함수가 호출되었을 때마다 'to' argument의 새로운 리스트가 생성되어 [12], [42] 가..

반응형