Python *args, **kwargs 의미
Python 함수를 보다 보면 아래와 같은 문법이 자주 보입니다.def my_function(*args, **kwargs): 많은 Python 라이브러리나 프레임워크에서 흔하게 등장하며, 가변 인자를 처리할 때 사용하는 매우 유용한 기능입니다.해당 글에서는 *args와 **kwargs의 의미, 사용 방법, 예제에 대해 설명드리겠습니다. *args: 위치 인자를 여러 개 받을 때*args는 임의 개수의 위치 인자(positional arguments)를 튜플 형태로 받아주는 기능입니다.예시: 숫자들을 더하는 함수def add_all(*args): return sum(args)print(add_all(1, 2, 3)) # 출력: 6print(add_all(10, 20, 30, 40)) # ..
2025. 7. 14.
Python squeeze 및 unsqueeze 함수 - view와의 차이
PyTorch에서 텐서의 차원을 다룰 때 매우 자주 사용되는 함수가 squeeze()와 unsqueeze()입니다. 이 두 함수는 텐서의 차원을 제거하거나 추가할 때 사용되며, 딥러닝 모델을 구현할 때 입력 형식을 맞추거나 특정 연산을 위해 매우 자주 등장합니다.이 글에서는 squeeze()와 unsqueeze()의 개념과 사용법을 설명하고, 다른 view 함수와의 차이도 함께 비교합니다. squeeze()란?squeeze()는 텐서에서 크기가 1인 차원을 제거하는 함수입니다. 예를 들어, 크기가 (1, 3, 1, 5)인 텐서를 squeeze() 하면 (3, 5)로 바뀝니다. 아래 예시와 같이 크기가 1인 차원이 자동으로 제거됩니다.import torchx = torch.randn(1, 3, 1, 5)p..
2025. 7. 12.
Python reshape 함수 - view, flatten과의 차이
데이터 분석이나 딥러닝을 하다 보면 다차원 배열의 형태를 바꾸는 일이 매우 빈번하게 발생합니다. 이때 사용하는 대표적인 함수가 바로 reshape()입니다. 해당 글에서는 reshape 함수의 기본 사용법과 view, flatten과의 차이를 자세히 설명드리겠습니다. reshape 함수란?reshape() 함수는 배열(array)의 데이터를 그대로 두고, 배열의 형태(shape)만 새롭게 바꾸는 함수입니다. 참고로, 이 함수는 Python의 대표적인 배열 라이브러리인 NumPy와 PyTorch에서 공통적으로 사용됩니다!import numpy as npa = np.array([1, 2, 3, 4, 5, 6])b = a.reshape(2, 3)print(b)# 출력:# [[1 2 3]# [4 5 6]] r..
2025. 7. 11.