일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ConMatch
- simclrv2
- 컴퓨터구조
- WGAN
- SSL
- 백준 알고리즘
- 최린컴퓨터구조
- BYOL
- Pseudo Label
- CoMatch
- shrinkmatch
- cifar100-c
- dcgan
- shrinkmatch paper
- Meta Pseudo Labels
- mocov3
- UnderstandingDeepLearning
- Pix2Pix
- remixmatch paper
- CGAN
- semi supervised learnin 가정
- adamatch paper
- Entropy Minimization
- 딥러닝손실함수
- CycleGAN
- conjugate pseudo label paper
- tent paper
- mme paper
- dann paper
- GAN
Archives
- Today
- Total
Hello Computer Vision
*args와 **kwargs 쓰임 본문
딥러닝 모델들을 공부하다 다른 사람들의 모델들의 코드를 보고 공부할 때가 있는데
함수 내에 *args 혹은 **kwargs 가 들어간 것을 심심찮게 볼 수 있다.
예전부터 봐왔었고 그럴 때마다 궁금해서 쳐봤는데 이번에 정리하려고한다.
*args 란?
args 는 arguments 의 줄임말이다.
우리가 함수를 정의할 때 앞으로 쓰일 모든 것들을 미리 파라미터로 정의하면 좋겠지만 그러지 못할 때도 있다.
그럴 때 필요한 것들만 미리 정의해놓고 나머지는 *args로 남겨두는 것이다. 예시로 한번 살펴보겠다.
def myfunction(first, second, *args):
print(first, second)
for arg in args:
print(arg)
myfunction('세수하기','공부하기', '운동하기','책읽기','유튜브보기기')
세수하기 공부하기
운동하기
책읽기
유튜브보기기
정의한 함수에서는 오늘 할 일들을 넣었다 하자. 그러나 2가지 제외하고 뭔가 할 일이 더 있을수 있다고 생각해 *args로 남겨둔 것이다.
그리고 만약 할 일들이 추가되었을 때 함수는 이미 *args를 받은 상태이므로 함수에 따로 정의없이 넣어도 되는 것이다.
**kwargs 란?
keyword arguments 의 줄임말이다.
여기서 keyword argument란 함수에서 first = '세수하기', second = '공부하기' 처럼 미리 정의한 것이다.
이것 또한 예시로 살펴보겠다.
def myfunction(first, second, **kwargs):
print(first, second)
for kwarg in kwargs.items():
print(kwarg)
myfunction('세수하기','공부하기', c = '운동하기',d = '책읽기',e = '유튜브보기')
세수하기 공부하기
('c', '운동하기')
('d', '책읽기')
('e', '유튜브보기')
기존 함수에서는 keyword argument가 없지만 **kwargs를 통해 실제로는 마음대로 받을 수 있는 것이다.
'딥러닝' 카테고리의 다른 글
Convolutional Neural Network 특징 (0) | 2023.01.05 |
---|---|
RNN(Recurrent Neural Network)에 대한 이해해보기 (0) | 2023.01.02 |
딥러닝 Momentum(관성)에 대한 이해 (0) | 2022.11.25 |
비전공생의 Backpropagation(역전파) 직접 손으로 해보기 (0) | 2022.11.09 |
비전공생의 Gradient Descent(경사 하강법)살펴보기 (0) | 2022.11.09 |