Loading...
2023. 5. 1. 03:13

pytorch - model, nn.module 제대로 이해하기 재활치료

1. model이란 무엇인가 data preprocessing에서 Vanilla data가 모델을 거칠 수 있도록 데이터를 변환했음 어떤 데이터를 사용하여 어떤 결과를 만들지 문제 해결 과정을 잘 정의했다면? modeling에서 preprocessing한 image를 넣어 원하는 형태의 output이 나오는 model을 만들어야 ------------------------------------------------------------------------------ 여기서 말하는 model이란? “일반적으로 model은 object, person, system의 정보적인 표현” object는 노트북이나 핸드폰 모델, person은 패션모델, system이 바로 딥러닝 여기서는 딥러닝을 말하고 싶으니까...

2023. 4. 28. 02:27

data augmentation & data generation 기본 개념 재활하기

1. data augmentation은 어떤 의미를 가질까 1-1) 목적 데이터를 일반화하는 과정 주어진 데이터가 가질 수 있는 case나 state에 다양성을 주도록 만들고자 한다 수집한 데이터가 어떤 환경에서 정확히 찍혔는지 잘 모르겠지만 데이터를 학습한 모델의 사용처를 생각해본다면 데이터에 발생한 noise를 조금은 추출해볼수도 있다??? 야외에서 찍힌 이미지는 발생가능한 상황이 밤이나 폭우 폭설같은 경우도 생각해볼 수 있다 하지만 사용하려는 데이터에는 이런 예외적인? 상황이 포함되어 있지 않은 경우가 많은데 그럼에도 불구하고 밤, 폭우는 충분히 발생 가능한 상황이다 1-2) idea 해당 domain에서 noise를 충분히 고려하여 데이터에 담을 수 있다면 나중에 test 과정에서 들어온 데이터들..

2023. 4. 27. 01:55

pytorch에서 data augmentation은 어떻게 이해해야하는가

data augmentation 설명하면 항상 이렇게만 설명함 “image를 랜덤하게 자르거나 확대하거나 축소하는 등 변형하여 데이터 수를 의도적으로 늘려 머신러닝 모델이 다양한 데이터를 학습하도록 유도함” 그런데 나는 항상 이런 생각을 했음 “data augmentation에서 augmentation의 뜻이 증강임..” 이 설명은 가지고 있는 data set을 증가시킨다는 느낌을 줌 그래서 처음에 augmentation 한번 구현해볼까? 하고 생각한게 transforms.Compose로 transform을 정의하고 torchvision의 transform이 제공하는 함수를 이용하여 이미지를 변형시켜 데이터를 읽어온다 이렇게 변형된 이미지 데이터셋을 처음부터 순회해서, label별로 tensor를 다시 ..

2023. 4. 27. 01:47

pytorch dataset과 dataloader 기본개념 재활

1. dataset class 1-1) torch.utils.data에 존재하는 라이브러리? 주어진 Vanilla data를 “모델이 좋아하는 dataset”으로 변환시켜줌 원하는 augmentation이나 preprocessing 방식도 추가 가능 미리 만든 MNIST같은 데이터셋 말고도 어떠한 데이터에 대해서도 새로 만든 dataset class가 필요함 1-2) 기본 구조 Mydataset이라는 class는 torch.utils.data의 Dataset의 기능들을 전부 가졌으면 해서 Dataset을 상속받음 다음 3가지는 dataset이라는 class가 가져야할 기본 기능이다. 1) __init__는 Mydataset이 처음 선언되면 최초 1번 호출되는 함수 보통 Vanilla data의 위치나 경..

2023. 4. 26. 00:29

pytorch에서 optimizer & metric 기본개념 재활

1. optimizer는 무엇일까 loss는 gradient를 발생시키지만 gradient로부터 parameter를 업데이트시키는 것이 optimizer 업데이트하는 방식에 따라 다른 특징을 보이며 다른 성능을 나타낸다. 어떤 것을 선택하느냐에 따라 수렴속도나 수렴의 안정성에 차이가 있을 수 있어 신중하게 선택할 필요가 있다 2. learning rate learning rate는 계산된 gradient로부터 parameter를 얼마나 업데이트시킬지 결정하는 요소중에 하나로 학습 중에 고정시켜 사용할 수 있지만 그렇게 한다면, 고차원의 함수를 학습하고자 하는 딥러닝에서는 global minimum을 못찾을 가능성이 높다 반면 학습 중에 learning rate를 변화시킬 수 있으면 유연하게 global ..

2023. 4. 26. 00:10

pytorch에서 loss 기본개념 재활

1. loss input data로부터 forward를 통해 계산한 예측된 결과 output input의 정답 label인 target과의 차이가 loss이다. loss는 error, cost로 불리기도 한다. backward 과정에 의해 loss가 update된다. output과 target의 차이를 어떻게 정의할 것인가? 문제와 task 목적에 따라 제곱오차, cross entropy 등 여러가지로 정의할 수 있다. loss에 따라 차이는 바뀔 것이고 class마다도 다를 수 있는데 loss의 선택에 따라 training중 parameter 업데이트 과정도 달라지므로 신중하게 선택해야한다. 2. nn.Module loss class도 nn.Module을 상속받는다… 따라서 __init__와 forwa..