전체 글(137)
-
DataLoader 만들기 비교
♣ Dataset과 DataLoader Dataset: 샘플과 정답(label)을 저장 DataLoader: Dataset을 샘플에 쉽게 접근할 수 있도록 순회 가능한 객체(iterable)로 감쌈 A B 둘 다 DataLoader 객체를 생성하고 있음. A보다 B가 좀 더 파라미터를 많이 사용하여 customize하고 있는 것. A에서 batchsize를 주고 싶으면 dls = mnist.dataloaders(path, bs=64) 이런 식으로 줄 수 있음.
2023.08.10 -
(논문)A guide to convolution arithmetic for deep learning
Chapter1 Introduction 최근 이미지넷 이미지 분류 챌린지에서 최신 기술을 능가하는 데 깊은 합성곱 신경항(Deep CNN)이 사용됨 CNN의 출력은 입력 데이터의 형태, 커널의 형태, 제로패딩, 스트라이드에 의해 영향을 받음. 한편 이런 속성들 사이의 관계는 단순하게 추론하기 어려움. -입력 데이터의 형태: 입력이미지의 크기, 채널 수 -커널의 형태: 커널의 크기, 채널 수 CNN은 fully-connected layers(완전연결층)와는 다름. fully-connected layers의 출력 크기는 입력 크기와는 독립적임. -CNN vs fully-connected layers 1. 완전연결층의 출력 크기는 입력 크기와 독립적으로, 항상 일정한 크기의 출력을 생성함. 2. CNN는 합성..
2023.08.07 -
텐서(Tensor)
♣ Tensor- 다차원 배열, 수치 데이터를 저장하고 다루는 데 사용됨. - 보통 벡터(1차원으로 구성된 값), 행렬(2차원으로 이뤄진 값), n차원 배열 등의 형태를 가지며 데이터의 종류에 따라 다양한 유형 존재(3차원 이상을 텐서로 나눠서 부르기도 함)- 이미지 데이터는 3차원 Tensor로 표현할 수 있으며 각 차원은 가로, 세로, 색상 채널을 나타냄- 파이토치에서 type은 모두 torch.Tensor임. ♣ Tensor Attribute(텐서의 속성)- 텐서의 모양(shape), 자료형(datatype), 그리고 어느 장치(device)에 저장되는지 등을 속성이라고 함 ♣ Numpy 배열과 파이토치 Tensornumpy 배열은 다차원 테이블의 형태로 데이터를 담고, 배열 내의 모든 데이터는 ..
2023.08.07 -
(예시)ResNet 50 구현
♣ 라이브러리 ♣ 하이퍼파라미터 정의 ♣ Load CIFAR-10 데이터 다운로드, 전처리 및 데이터로더 생성 transform.Compose transforms.Compose를 이용하여 방대한 양의 이미지를 한 번에 변형시킬 수 있음. 입력데이터를 모델에 넣기 전에 전처리 과정을 거칠 때 사용함. transforms.ToTensor(): 이 변환은 입력 데이터(이미지 또는 기타 데이터 유형)를 PyTorch 텐서로 변환합니다. 이미지의 경우, numpy 배열이나 PIL 이미지로 표현된 이미지 데이터를 텐서로 변환합니다. 결과적으로 얻어지는 텐서는 값이 [0, 1] 범위에 있습니다. 이 변환은 픽셀 값을 [0, 1] 범위로 스케일링하기 때문에, 8비트 이미지의 경우 255로 나누는 연산을 수행합니다. t..
2023.07.23 -
(논문)Deep Residual Learning for Image Recognition
♣ Introduction 깊은 합성곱 신경망은 이미지 분류에 대한 연속적인 폭발적인 발전을 이끌었습니다. 최근 연구 결과는 네트워크의 깊이가 중요하다는 것을 밝혀냈습니다. 어려운 ImageNet 데이터셋에서 우수한 결과를 보이는 연구들은 모두 "아주 깊은(very deep)" 모델을 활용하며, 16개에서 30개의 층을 가지고 있습니다. 또 다른 다양한 어려운 시각적 인식 작업들도 아주 깊은 모델에서 크게 이득을 얻고 있습니다. 더 많은 층을 쌓는 것만으로 더 나은 네트워크를 학습하는 것이 쉬울까? 이 질문에 대한 해답을 찾는 것은 증발/폭발 그래디언트(vanishing/exploding gradient) 문제 때문에 어려움이 있었습니다. 이 문제는 SGD(Stochastic Gradient Descen..
2023.07.23 -
(개념)ResNet(잔차신경망)
CNN은 망이 깊어질수록 정확도가 향상된다는 것이 일반적인 견해이지만 Gardient Vanishing Problem, 연산량의 과도한 증가 등의 걸림돌 때문에 오히려 망이 깊어질수록 성능이 떨어지는 모습을 보임. ResNet은 Output에 간단한 수정을 가해 Degradation 문제를 완화하고 100장의 레이어가 넘는 네트워크도 학습이 가능하게 만듦. ♣ 14.1 완전합성곱신경망 splitter = GrandparentSplitter(valid_name='val') 데이터를 학습 세트와 검증 세트로 분할하는 방법을 지정하는 부분. GrandparentSplitter는 주어진 데이터셋의 경로 구조를 기반으로 데이터를 분할하는 방법 중 하나임. valid_name은 검증 세트의 이름을 지정하는 매개변수..
2023.07.18