딥러닝 모델: 파이토치(71)
-
밑바닥부터 Learner 클래스 만들기
♣ 전체 순서 1. 데이터 다운로드 및 독립변수와 종속변수 구성 2. 데이터를 이용하여 Dataset 만들기 3. Dataset을 이용하여 DataLoader 만들기 4. 데이터 정규화하기 5. 모듈과 파라미터 정의하기(Module, ConvLayer, LinearLayer, Parameter 등) 6. CNN 만들기(Sequential, AdatpivePool 등을 추가로 사용, 훅 추가하기) 7. 손실함수 정의하기 8. 옵티마이저 구현하기 9. DataLoaders 만들기 10. Learner class 만들기 11. 콜백 함수 정의하기 12. 위에서 만든 CNN, DataLoaders, 손실함수, 콜백함수, 학습률 등을 이용하여 Learner 사용하기(학습) 13. 학습률 스케줄링하기(보다 적절한 ..
2023.09.20 -
DataBlock와 DataLoader 비교
♣ DataBlock 데이터 블록은 데이터 조립을 위한 파이프라인일 뿐입니다. 데이터 블록을 처음 생성할 때 데이터를 명시할 필요는 없습니다. 그러나 데이터가 흐를 때 어떻게 처리할지에 대한 규칙을 명시해야 합니다. 데이터가 어떻게 수집, 분류 및 분할되어야 하는지에 대해 관심이 있으며, 데이터가 무엇으로 사용될지는 상관하지 않습니다. 데이터 블록을 생성하려면 다음을 명시해야 합니다. 입력(즉, 특성)과 목표 변수(즉, 레이블)에 대한 예상 데이터 유형 데이터를 가져오는 방법 목표 변수로부터 특성을 구분하는 방법 훈련을 위해 데이터를 분할하는 방법(훈련 및 검증 세트) 어떻게 하는지 살펴보겠습니다. 아래는 고양이의 다른 종(즉, 분류 모델)을 인식하기 위해 합성곱 신경망(CNN)을 생성하려면 만들어볼 수..
2023.09.17 -
ImageDataLoaders vs ImageDataBunch
ImageDataLoaders와 ImageDataBunch는 둘 다 fastai 라이브러리에서 이미지 데이터를 처리하는 데 사용하는 클래스임 그러나 두 클래스는 라이브러리의 다른 버전에서 각각 다른 역할과 사용법을 갖고 있음. ♣ ImageDataBunch fastai 버전 1.x에서 훈련 및 검증용 이미지 데이터를 생성하고 관리하기 위한 클래스 훈련, 검증 및 테스트 데이터 로더를 하나의 객체로 묶는 방법 제공 예시 ds_tfms: batching이나 model training이 일어나기 전에 데이터셋 전체에 적용되는 변환. 주로 데이터 전처리 및 증강을 위해 사용됨. ds_tfms는 ImageDataBunch에서는 사용되지만 ImageDataLoaders에서는 잘 사용하지 않음. ♣ ImageData..
2023.08.15 -
텐서(Tensor)
♣ Tensor- 다차원 배열, 수치 데이터를 저장하고 다루는 데 사용됨. - 보통 벡터(1차원으로 구성된 값), 행렬(2차원으로 이뤄진 값), n차원 배열 등의 형태를 가지며 데이터의 종류에 따라 다양한 유형 존재(3차원 이상을 텐서로 나눠서 부르기도 함)- 이미지 데이터는 3차원 Tensor로 표현할 수 있으며 각 차원은 가로, 세로, 색상 채널을 나타냄- 파이토치에서 type은 모두 torch.Tensor임. ♣ Tensor Attribute(텐서의 속성)- 텐서의 모양(shape), 자료형(datatype), 그리고 어느 장치(device)에 저장되는지 등을 속성이라고 함 ♣ Numpy 배열과 파이토치 Tensornumpy 배열은 다차원 테이블의 형태로 데이터를 담고, 배열 내의 모든 데이터는 ..
2023.08.07 -
옵티마이저(최적화)의 의미와 경사하강법(Gradient Descent)
♣ 최적화(옵티마이저) 손실함수 값을 최소화하는 파라미터를 구하는 과정 즉 모델이 예측한 값과 실제값의 차이를 최소화하는 신경망 구조의 파라미터를 찾는 과정 손실함수 값의 변화에 따라 가중치(weight)나 편향(bias)을 업데이트함 딥러닝에서는 최적의 파라미터(가중치)를 찾기 위해 가장 기본이 되는 알고리즘으로 경사하강법(Gradient Descent)를 사용함. ♣경사하강법(Gradient Descent) 손실 함수 그래프에서 값이 가장 낮은 지점으로(손실 함수의 최솟값이 되는 방향으로) 경사를 타고 하강하는 기법 수행 과정 - 어느 지점에서든지 시작한다(initial guesses에서) - cost를 줄이는 방향으로 W와 b를 조금씩 바꿈 - parameter(W와 b)를 바꿀 때마다 경사도 계산..
2023.07.16