일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- GAN
- conjugate pseudo label paper
- cifar100-c
- adamatch paper
- CycleGAN
- WGAN
- dcgan
- CoMatch
- mme paper
- BYOL
- shrinkmatch
- simclrv2
- shrinkmatch paper
- 컴퓨터구조
- Meta Pseudo Labels
- SSL
- 딥러닝손실함수
- CGAN
- 최린컴퓨터구조
- remixmatch paper
- dann paper
- UnderstandingDeepLearning
- 백준 알고리즘
- Pseudo Label
- Entropy Minimization
- ConMatch
- tent paper
- mocov3
- Pix2Pix
- semi supervised learnin 가정
Archives
- Today
- Total
Hello Computer Vision
np.random.choice 공부해보기 본문
이번에 semi supervised learning의 대표 모델인 FixMatch 코드를 공부하는 도중 np.random.choice 함수를 만났다. 이전에 본적 있지만 그냥 넘어갔는데 확실히 공부해보려고 한다. https://numpy.org/doc/stable/reference/random/generated/numpy.random.choice.html
해당 함수는 랜덤 샘플링을 할 때 사용되는 함수이다. 복원추출, 비복원추출은 파라미터 설정으로 가능하다.
우선 예시를 통해 먼저 보자.
lists = np.array([1,2,7,8,9])
for i in range(5):
print(np.random.choice(lists, 3, False))
[9 7 2]
[7 8 1]
[1 2 7]
[1 9 2]
[7 9 1]
첫번째 파라미터는 list를 받는다. 나는 1,2,7,8,9 가 들어간 리스트를 주었다. 그리고 두번째 파라미터로는 추출할 원소의 개수를 적는다. 나는 3개를 적었다. 그리고 3번째 파라미터는 비복원 추출, 복원추출할지의 여부이다. 기본값은 True이며 복원추출을 하는 것이며 False는 비복원 추출이다.
lists = np.array([1,2,7,8,9])
for i in range(5):
print(np.random.choice(lists, 3, True))
[7 2 2]
[2 9 2]
[1 7 1]
[7 7 2]
[9 1 8]
이렇게 세번째 파라미터를 True로 줄 경우 똑같은 원소가 나올 수 있다. 그리고 네번째 파라미터도 있는데 이는 해당 원소들의 추출될 확률을 부여한다.
lists = np.array([1,2,7,8,9])
for i in range(5):
print(np.random.choice(lists, 3, True, p = [0.9, 0, 0, 0, 0.1]))
[1 1 1]
[1 1 1]
[1 1 1]
[1 1 1]
[1 1 1]
만약 비복원 추출하는데 남은 원소들의 확률이 0이라면?
ValueError: Fewer non-zero entries in p than size
이러한 에러가 뜬다.
그리고 꼭 리스트를 원소를 주지 않고 숫자로도 줄 수 있다.
for i in range(5):
print(np.random.choice(10, 3, False))
[8 0 5]
[0 4 8]
[5 4 2]
[8 2 3]
[8 5 3]
가볍게 알아보는 np.random.choice정리 끝!
'딥러닝' 카테고리의 다른 글
비전공생의 SAM(2021) 논문 리뷰 (0) | 2023.09.19 |
---|---|
torch.topk 함수 공부해보기 (1) | 2023.08.22 |
Test Time Augmentation 알아보기 (0) | 2023.07.10 |
CAM, Grad-CAM 공부해보기 (0) | 2023.06.30 |
GPU연산 DP, DDP 공부해보기 (0) | 2023.06.29 |