You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 이미지 데이터 셋 만들기 on Google, you do not find the information you need! Here are the best content compiled and compiled by the toplist.cazzette.com team, along with other related topics such as: 이미지 데이터 셋 만들기 keras 이미지 데이터셋 만들기, 파이썬 이미지 데이터셋 만들기, 딥러닝 이미지 데이터셋 만들기, cnn 이미지 데이터셋 만들기, 파이썬 데이터셋 만들기, 텐서 플로 이미지 데이터 셋 만들기, 텍스트 데이터셋 만들기, 텐서플로우 이미지 데이터셋 만들기
먼저 jpg, png 이미지 파일들이 섞여있기 때문에 파일들을 읽어 모두 png 파일로 변형한다. sklearn 의 train_test_split 함수를 통해 레이블마다 train 과 test 데이터 비율을 일정하게 만들어준다.
Table of Contents
Heeseok Jeong-나만의 데이터셋으로 이미지 분류하기(1)
- Article author: heeseok-jeong.github.io
- Reviews from users: 48326
Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about Heeseok Jeong-나만의 데이터셋으로 이미지 분류하기(1) Updating …
- Most searched keywords: Whether you are looking for Heeseok Jeong-나만의 데이터셋으로 이미지 분류하기(1) Updating Machine Learning데이터셋 만들기
- Table of Contents:

[PyTorch] 4-1. 나만의 이미지 데이터셋 만들기
- Article author: data-panic.tistory.com
- Reviews from users: 45684
Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about [PyTorch] 4-1. 나만의 이미지 데이터셋 만들기 또한 torchvision에서 이미지를 전처리 할 수 있는 transforms을 사용하고 torch.utils.data에서 Dataset과 DataLoader를 사용하여 데이터를 가져와 … …
- Most searched keywords: Whether you are looking for [PyTorch] 4-1. 나만의 이미지 데이터셋 만들기 또한 torchvision에서 이미지를 전처리 할 수 있는 transforms을 사용하고 torch.utils.data에서 Dataset과 DataLoader를 사용하여 데이터를 가져와 … 이번 포스트에서는 이전 시간에 다루었던 DataLoader를 가지고 나만의 이미지 데이터 셋을 만들어보는 실습을 진행해보겠습니다. 1. 이미지 데이터 파일 만들기 이미지 데이터 셋을 만들기 위해서는 자신이 원하..
- Table of Contents:
Real Late Starter
[PyTorch] 4-1 나만의 이미지 데이터셋 만들기 본문티스토리툴바
![[PyTorch] 4-1. 나만의 이미지 데이터셋 만들기](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4S3DA%2FbtqBTMLYLSK%2Fy17KJTAazu8QEYNaYLKHHK%2Fimg.jpg)
나만의 데이터셋 만들기
- Article author: velog.io
- Reviews from users: 23484
Ratings
- Top rated: 4.7
- Lowest rated: 1
- Summary of article content: Articles about 나만의 데이터셋 만들기 개요. 일전에 이미지 분류 모델을 학습하기 위해 파이토치에서 제공하는 MNIST dataset torchvision.datasets.MNIST … …
- Most searched keywords: Whether you are looking for 나만의 데이터셋 만들기 개요. 일전에 이미지 분류 모델을 학습하기 위해 파이토치에서 제공하는 MNIST dataset torchvision.datasets.MNIST … 데이터셋 구축 절차
- Table of Contents:
나만의 데이터셋으로 이미지 분류 모델 만들기
How
전체 수집 데이터

기초 – Dataset 만들기
- Article author: intrepidgeeks.com
- Reviews from users: 45212
Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about 기초 – Dataset 만들기 import os import torch from torch.utils.data import Dataset from PIL import Image import torchvision.transforms as transforms. 커스텀 데이터셋을 만들기 … …
- Most searched keywords: Whether you are looking for 기초 – Dataset 만들기 import os import torch from torch.utils.data import Dataset from PIL import Image import torchvision.transforms as transforms. 커스텀 데이터셋을 만들기 …
- Table of Contents:

cnn 실습_나만의 이미지 데이터를 만들고 학습하기(2) – sequential API
- Article author: mj-lahong.tistory.com
- Reviews from users: 24770
Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about cnn 실습_나만의 이미지 데이터를 만들고 학습하기(2) – sequential API import tensorflow as tf from tensorflow import keras from sklearn.model_selection import train_test_split import numpy as np from glob … …
- Most searched keywords: Whether you are looking for cnn 실습_나만의 이미지 데이터를 만들고 학습하기(2) – sequential API import tensorflow as tf from tensorflow import keras from sklearn.model_selection import train_test_split import numpy as np from glob … import tensorflow as tf from tensorflow import keras from sklearn.model_selection import train_test_split import numpy as np from glob import glob from PIL import Image import matplotlib.pyplot as p..
- Table of Contents:
태그
‘DEEP LEARNINGTensorflow Training’ Related Articles

Hello 이미지 데이터: 이미지 분류 데이터 세트 만들기 및 이미지 가져오기 | Vertex AI | Google Cloud
- Article author: cloud.google.com
- Reviews from users: 4471
Ratings
- Top rated: 4.7
- Lowest rated: 1
- Summary of article content: Articles about Hello 이미지 데이터: 이미지 분류 데이터 세트 만들기 및 이미지 가져오기 | Vertex AI | Google Cloud Google Cloud Console을 사용하여 이미지 분류 데이터 세트를 만듭니다. 데이터 세트가 생성된 후 공개 Cloud Storage 버킷의 이미지를 가리키는 CSV를 … …
- Most searched keywords: Whether you are looking for Hello 이미지 데이터: 이미지 분류 데이터 세트 만들기 및 이미지 가져오기 | Vertex AI | Google Cloud Google Cloud Console을 사용하여 이미지 분류 데이터 세트를 만듭니다. 데이터 세트가 생성된 후 공개 Cloud Storage 버킷의 이미지를 가리키는 CSV를 …
- Table of Contents:
이미지 데이터 입력 파일
1 이미지 분류 데이터 세트 만들기 및 데이터 가져오기
다음 단계

[Pytorch] 진짜 커스텀 데이터셋 만들기, 몇 가지 팁 :: 취미생활하는 공대생
- Article author: honeyjamtech.tistory.com
- Reviews from users: 20763
Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about [Pytorch] 진짜 커스텀 데이터셋 만들기, 몇 가지 팁 :: 취미생활하는 공대생 import glob import torch from torchvision import transforms from PIL import Image from torch.utils.data import Dataset, DataLoader … …
- Most searched keywords: Whether you are looking for [Pytorch] 진짜 커스텀 데이터셋 만들기, 몇 가지 팁 :: 취미생활하는 공대생 import glob import torch from torchvision import transforms from PIL import Image from torch.utils.data import Dataset, DataLoader … Pytorch 개발자들이 이미 데이터셋, 데이터로더 클래스를 여러 개 만들어 두었다. 데어터셋의 경우 ImageFolder, DatasetFolder 와 같이 내 폴더 안에 있는 데이터들을 돌게 해주는 애들과 CIFAR10, ImageNet 등..가끔씩 글쓰는 대학원생
- Table of Contents:
티스토리툴바
![[Pytorch] 진짜 커스텀 데이터셋 만들기, 몇 가지 팁 :: 취미생활하는 공대생](https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4XsLD%2FbtrgGsfzOI1%2Fsou8A0kBDETmA0edopbvik%2Fimg.png)
라벨링 된 이미지 데이터셋 만들기
- Article author: blog.kim-gaeun.com
- Reviews from users: 41813
Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about 라벨링 된 이미지 데이터셋 만들기 온라인에서 이미지 라벨링 하는 방법. 라벨링을 마친 이미지는, 형식을 변환하여 데이터셋으로 만들어야 한다. …
- Most searched keywords: Whether you are looking for 라벨링 된 이미지 데이터셋 만들기 온라인에서 이미지 라벨링 하는 방법. 라벨링을 마친 이미지는, 형식을 변환하여 데이터셋으로 만들어야 한다. alicecodealice.tistory.com/145 사진 이미지 라벨링 온라인 툴 이미지 라벨링(labeling.. 레이블링이라고 읽는다)을 하려면 툴을 받아야 한다. 하지만 이곳에서는 따로 프로그램을 깔지 않아도 온라인으로 가능하..
- Table of Contents:
잡초의 일지
라벨링 된 이미지 데이터셋 만들기 본문
티스토리툴바

AI 공부 블로그 | 로컬 이미지로 데이터셋 만들기
- Article author: srgai.tistory.com
- Reviews from users: 5422
Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about AI 공부 블로그 | 로컬 이미지로 데이터셋 만들기 로컬 이미지로 데이터셋 만들기 import os, re, glob import cv2 #openCV 라이브러리 import하기 import numpy as np …
- Most searched keywords: Whether you are looking for AI 공부 블로그 | 로컬 이미지로 데이터셋 만들기 로컬 이미지로 데이터셋 만들기 import os, re, glob import cv2 #openCV 라이브러리 import하기 import numpy as np #로컬 이미지로 데이터셋 만들기 import os, re, glob import cv2 #openCV 라이브러리 import하기 import numpy as np from sklearn.model_selection import train_test_split #현재 로컬 이..
- Table of Contents:

[텐서플로] 내 이미지 데이터로 CNN 구현 (1) : 네이버 블로그
- Article author: blog.naver.com
- Reviews from users: 3190
Ratings
- Top rated: 3.3
- Lowest rated: 1
- Summary of article content: Articles about [텐서플로] 내 이미지 데이터로 CNN 구현 (1) : 네이버 블로그 4) 이래서 데이터셋의 정제, 전처리가 중요하다고 하는 거구나. 딥러닝 코드, 알고리즘 짜는 건 무지 쉽다. 수학 몰라도 라이브러리 가져다 쓴다. …
- Most searched keywords: Whether you are looking for [텐서플로] 내 이미지 데이터로 CNN 구현 (1) : 네이버 블로그 4) 이래서 데이터셋의 정제, 전처리가 중요하다고 하는 거구나. 딥러닝 코드, 알고리즘 짜는 건 무지 쉽다. 수학 몰라도 라이브러리 가져다 쓴다.
- Table of Contents:
블로그
악성코드가 포함되어 있는 파일입니다
작성자 이외의 방문자에게는 이용이 제한되었습니다
![[텐서플로] 내 이미지 데이터로 CNN 구현 (1) : 네이버 블로그](https://blogthumb.pstatic.net/MjAxODExMjlfODAg/MDAxNTQzNDg2Mjc1NjQ3.kLCLN6BVzwPTEFWySwfKZT6_pX10twaxBTR7gEEAC5Mg.cG_ec_unIfFT3EtXMi2Y6Vd5peJT-tGO4X0XsaNeeg4g.PNG.jamiet1/image.png?type=w2)
See more articles in the same category here: https://toplist.cazzette.com/blog/.
Heeseok Jeong-나만의 데이터셋으로 이미지 분류하기(1)
목록
개요
파이토치로 모델을 학습하기 위한 데이터는 torch.utils.data.Dataset 객체로 변환되어 torch.utils.data.DataLoader 에 올라가야 모델에 학습이 가능하다.
일전에 이미지 분류 모델을 학습하기 위해 파이토치에서 제공하는 MNIST dataset 을 사용하였다 torchvision.datasets.MNIST .
구체적으로는 Vanilla CNN 모델 + CrossEntorpyLoss 로스 함수 + Adam optimizae + MNIST 데이터를 사용하여 모델을 학습하였다.
이제부터는 부스트캠프 조원들과 함께 직접 데이터 셋을 만들어서 이미지 분류 모델에 학습하고자 한다. 이번 포스트에서는 데이터셋 구축까지의 절차를 담을 것이다.
절차
1) 주제 선정
2) 데이터 수집
3) 데이터 가공 (데이터 완성)
4) 데이터로 dataset 만들기
주제 선정
조유리즈 (사람이 봐도 헷갈리는 데이터)
처음 선정했던 주제는 조유리즈다. 아이즈원의 멤버 김채원, 조유리, 최예원은 팬들이 봐도 헷갈릴정도로 비슷하게 생긴 멤버들이다.
(정말 닮았다)
=> 데이터가 적기 때문에 우선은 확실히 구분가는 레이블을 주제로 변경
마동석, 수지, 유재석 (구분하기 쉬운 데이터)
인터넷에 사진이 많고 특징이 뚜렷한 인물들로 주제를 변경하였다. 조 인원이 6명이기 때문에 2 명씩 한 인물에 대해 데이터를 모으기로 하였고 나는 수지를 담당하였다.
추가적으로 데이터 양은 한 인물마다 학습이 잘 될 것 같은 사진 300 장을 팀별로 선별하였다.
데이터 수집
How?
이미지 데이터를 모으기 위해서는 인터넷에 존재하는 여러 플랫폼에서 이미지를 가져와야 한다. 이미지를 가져오는 방법에는 직접 하나하나 다운로드할 수도 있지만, 이를 효율적으로 하기 위해 크롤링 툴을 사용하였다.
구글 이미지 다운로드 – googleimagesdownload
가장 많은 정보가 존재하는 구글에서 이미지를 가져오는 프로그램은 이미 존재한다! 다음 프로그램을 이용하여 이미지를 가져오자.
-> google_images_download
위 프로그램을 사용할 때 100장 이상은 크롤링이 필요하므로 chromedriver 를 설치하고 –chromedriver 옵션에 설치한 크롬 드라이버 위치를 명시해야한다.
‘수지’, ‘미쓰에이 수지’, ‘배수지’, ‘수지비주얼’ 키워드로 각 키워드 당 350 여장의 사진을 다운로드하였다.
인스타 이미지 다운로드 with tag
SNS 중 사진이 가장 많은 인스타그램에서 원하는 # 태그를 검색하고 첫번째로 나오는 태그에서 원하는만큼 사진을 가져오는 프로그램을 이용하였다 (구글링하여 코드 작성).
-> instagram_image_download
‘배수지’ 키워드로 350 여장의 사진을 다운로드하였다.
수집 데이터
전체 1700 여장의 사진을 수집하였다.
데이터 가공
인터넷에서 수집한 사진들 중 학습에 적합한 사진을 골라내는 단계이다. 매뉴얼하게 일일이 골라내는 방법을 사용하였다. 아래의 룰을 기반으로 사진을 삭제하였다.
연예인 수지와 관계 없는 사진
정면 얼굴이 뚜렷하지 않은 사진
누군가와 함께 있는 사진
과정을 수행하여 1700 장의 사진에서 300 장의 사진 (25%) 만 추려내었다.
데이터로 dataset 만들기
현재 ‘동석’, ‘수지’, ‘재석’ 폴더 (레이블) 에 약 300 장의 이미지 파일들이 존재한다. dataset 을 만드는 것은 전체 데이터를 일정 비율로 나눠 train 과 test 로 분리하는 것을 의미한다.
먼저 jpg, png 이미지 파일들이 섞여있기 때문에 파일들을 읽어 모두 png 파일로 변형한다.
sklearn 의 train_test_split 함수를 통해 레이블마다 train 과 test 데이터 비율을 일정하게 만들어준다. 그리고 이 파일들을 dataset/train 과 dataset/test 폴더에 넣어 dataset 을 준비한다.
from sklearn.model_selection import train_test_split train_image , test_image , train_target , test_target = train_test_split ( dataset [:, 0 ], dataset [:, 1 ], stratify = dataset [:, 1 ],)
=> 나만의 데이터셋을 수집하고 가공하여 모델 학습에 필요한 dataset 완성
[PyTorch] 4-1. 나만의 이미지 데이터셋 만들기
이번 포스트에서는 이전 시간에 다루었던 DataLoader를 가지고 나만의 이미지 데이터 셋을 만들어보는 실습을 진행해보겠습니다.
1. 이미지 데이터 파일 만들기
이미지 데이터 셋을 만들기 위해서는 자신이 원하는 이미지 파일이 있어야합니다. jpg, jpeg, png, bmp 등등의 이미지 형식의 파일들을 class별로 폴더를 만들어 넣어줍니다. 예시로써 저는 가방, 신발, 티셔츠 총 3가지 클래스를 만들어서 각각 8장의 이미지 파일을 넣어주었습니다. 여기서 주의해야 될 점이 저의 경우에는 “clothes”라는 상위 폴더를 만들고 그 안에 앞서말한 3가지의 클래스 폴더를 넣어주었습니다. 그렇기 때문에 밑에서 폴더 경로를 가지고 올 때는 상위 폴더의 경로를 가지고와야 합니다.
2. 필요 라이브러리 가져오기
필요한 라이브러리들을 import 해줍니다. 이미지 파일을 시각화하기 위해 matplotlib을 사용하겠습니다. 또한 torchvision에서 이미지를 전처리 할 수 있는 transforms을 사용하고 torch.utils.data에서 Dataset과 DataLoader를 사용하여 데이터를 가져와 보겠습니다.
3. 데이터 전처리
우선 이미지를 전처리합니다. ransforms.Compose를 통해 Resize, ToTensor, Normalize를 시켜줍니다. 이미지의 높이와 너비가 조금씩 다를 수 있고, 이미지 데이터를 정규화 해주기위해 전처리를 진행합니다. ToTensor를 통해 이미지를 텐서형태로 바꿔줍니다.
그 다음 trainset을 ImageFolder를 사용하여 저장합니다. 경로는 클래스 폴더들이 들어있는 상위폴더로 경로를 지정해줍니다.
또한 앞서서 선언했던 trans를 transform 파라미터 값으로 넣어 데이터가 전처리 될 수 있도록 합니다.
trainset에서 __getitem__ 메소드를 통해 18번째 데이터를 가져와 봤습니다. 일부분만 나오지만 0부터 1사이의 값으로 정규화 된 것을 볼 수 있고 맨 끝에는 라벨값인 2가 보입니다.
trainset의 총 데이터 갯수를 len()함수를 통해 확인해보았습니다. 3개의 클래스들이 각각 8개씩 사진을 가지고 있기 때문에 총 데이터 수는 24입니다.
trainset에서 classes 메서드를 사용해서 classes 변수에 저장해줍니다. 출력해보면 제가 지정했던 클래스 폴더 명이 그대로 나오는 것을 볼 수 있습니다.
4. DataLoader를 통해 데이터 올리기
이번에는 ImageFolder를 통해 불러온 trainset을 DataLoader를 사용하여 Batch형식으로 네트워크에 올릴 수 있도록 준비해보겠습니다.
DataLoader를 통해 trainset을 감싸주고 batch_size는 16개로 설정했습니다. shuffle은 원래 train 데이터의 경우 섞는게 맞지만 이번 예제에서는 섞지 않도록 하겠습니다. 사용할 CPU core 갯수는 4개로 지정했습니다.
iteration을 통해 trainloader에 있는 데이터들을 한 batch 씩 꺼내어 확인해 볼 수 있습니다. labels를 출력해보면 0이 8개 1이 8개 인것을 볼 수 있습니다.
5. 이미지 데이터 시각화
다음으로 불러온 데이터를 시각화 할 수 있는 함수를 만들어보겠습니다. 이전 글에서 설명했던 부분과 동일한 내용입니다.
마지막으로 저장한 데이터를 시각화해본 부분입니다. 4번째 출력 부분을 보면 16, 3, 100,100이라고 되어있는데 batch_size가 16이었고 색깔이미지이기 때문에 3입니다. 또한 이미지 사이즈를 100 x 100으로 Resize 해주었기 때문에 16,3,100,100으로 출력됩니다.
이상으로 자기만의 이미지 데이터셋을 만들어보았습니다. 이것을 통해서 분류나 이미지 디텍팅 같은 문제들을 자신만의 데이터셋을 활용하여 다양한 시도를 해볼 수 있겠습니다.
소스코드 :
https://github.com/Hinterhalter/Deep-Learning-with-PyTorch/blob/master/MyData.ipynb
기초 – Dataset 만들기
딥러닝 모델을 학습하기 전에 필요한 첫 번째 준비물은 데이터라고 할 수 있습니다. 주어진 데이터를 활용해 효과적으로 모델에 입력하기 위해서 PyTorch는 Dataset 클래스를 제공하고 있습니다. 이 포스트에서는 이를 활용해서 데이터셋을 만드는 방법에 대해 알아보겠습니다.
간단한 Dataset 만들기
먼저 이 포스트에서 사용할 모듈들을 불러오겠습니다.
import os import torch from torch . utils . data import Dataset from PIL import Image import torchvision . transforms as transforms
커스텀 데이터셋을 만들기 위해서 다음과 같이 클래스를 구현해보겠습니다.
class MyBaseDataset ( Dataset ) : def __init__ ( self , x_data , y_data ) : self . x_data = x_data self . y_data = y_data def __getitem__ ( self , index ) : return self . x_data [ index ] , self . y_data [ index ] def __len__ ( self ) : return self . x_data . shape [ 0 ]
이번에 구현한 MyBaseDataset 는 Dataset 클래스를 상속하게 됩니다. 이 클래스를 상속했을 때, 구현해야 하는 메서드는 __init__ , __getitem__ , __len__ 입니다.
__init__ 메서드는 객체를 생성할 때 실행되는 메서드, 즉 생성자입니다. 여기에는 모델에 사용할 데이터를 담아두는 등 어떤 인덱스가 주어졌을 때 반환할 수 있게 만드는 초기 작업을 수행합니다.
__getitem__ 메서드는 어떤 인덱스가 주어졌을 때 해당되는 데이터를 반환하는 메서드입니다. numpy 배열이나 텐서 형식으로 반환합니다. 보통 입력과 출력을 튜플 형식으로 반환하게 됩니다.
__len__ 은 학습에 사용할 데이터의 총 개수라고 볼 수 있는데, 즉 얼마만큼의 인덱스를 사용할지를 반환하는 메서드입니다.
위 코드로 구현한 BaseDataset 은 정형적인 데이터셋을 나타내고 있습니다. 가장 높은 차원에 인덱스로 접근해 데이터를 반환하게 됩니다. 이 클래스에 간단한 데이터를 넣은 예시를 보이겠습니다.
x_data = torch . arange ( 100 ) y_data = x_data * x_data dataset = MyBaseDataset ( x_data , y_data ) print ( “dataset example: ” , dataset [ 0 ] , dataset [ 1 ] , dataset [ 2 ] ) print ( “dataset length:” , len ( dataset ) )
dataset example: (tensor(0), tensor(0)) (tensor(1), tensor(1)) (tensor(2), tensor(4)) dataset length: 100
이 코드는 y = x 2 y=x^2 y=x2에 대해 x x x가 0에서 99까지 주어진 데이터셋을 만든 것으로 볼 수 있습니다. 만들어진 데이터셋은 구현한 메서드를 기반으로 리스트처럼 인덱스로 접근할 수 있고, 길이를 알 수 있습니다.
인덱스에 접근할 때 데이터 불러오기
위 예시와 같이 모든 데이터를 Dataset 에 저장할 수 있다면 구현하기도 편할 것입니다. 그러나 ImageNet과 같이 1400만개가 넘는 데이터셋을 메모리에 모두 불러오는 것은 사실상 불가능할 것입니다. 그래서 일반적으로는 생성자에서 모든 데이터를 불러오지는 않고, 불러올 이미지들의 경로를 저장하는 방식을 사용합니다. 그리고 데이터셋에 인덱스로 접근할 때 경로에 존재하는 데이터를 불러와 메모리에 적재하면 이 문제를 해결할 수 있습니다. 물론 보조기억장치에서 데이터를 불러올 때의 지연이 나타날 수 있지만 보통은 무시할 수 있습니다. 참고로 데이터들을 한 파일로 만들어서 활용하고 싶다면, HDF5 파일을 활용해 볼 수 있습니다. 전처리로 HDF5 파일을 만든 후, 학습에 이 파일을 불러와 사용하는 방법을 사용할 수 있습니다.
그러면 인덱스에 접근할 때 파일 경로로부터 데이터를 불러오는 Dataset 클래스를 구현해보겠습니다.
class DogCatDataset ( Dataset ) : def __init__ ( self , data_dir ) : self . data_dir = data_dir self . image_path_list = os . listdir ( data_dir ) self . transform = transforms . ToTensor ( ) def __getitem__ ( self , index ) : image_path = os . path . join ( self . data_dir , self . image_path_list [ index ] ) x_data = Image . open ( image_path ) x_data = self . transform ( x_data ) y_data = 1 if “dog” in self . image_path_list [ index ] else 0 return x_data , y_data def __len__ ( self ) : return len ( self . image_path_list )
이 코드에서는 개(Dog)와 고양이(Cat)을 구별하기 위한 데이터셋으로 볼 수 있습니다. 생성자에서는 인수로 넘어온 data_dir 의 파일들을 데이터로 사용하기 위해 리스트로 저장하고, 이미지를 텐서로 변환하는 transform 을 사용합니다. (관련 내용은 잠시 뒤에 다루겠습니다.) __getitem__ 로 인덱스가 넘어오면, 경로에 해당하는 이미지를 불러와 텐서로 변환해 x_data 로 반환합니다. 타겟 데이터( y_data )는 파일 이름으로부터 추출하게 됩니다. 이 예시에서는 파일들이 dog.10.jpg, cat.3.jpg 등으로 구분되어 있다고 가정해 볼 때, 개일 경우에는 dog 문자열이 포함되어 있고 고양이일 경우에는 이 문자열이 포함되어 있지 않다고 바꾸어 볼 수 있습니다. 이를 if else문으로 판단해 반환하게 됩니다.
불러온 이미지를 변형하기
여기서 불러온 이미지들을 바로 텐서로 변환해서 반환할 수도 있지만, 이미지의 크기가 일정하지 않거나, 데이터 증강(Data augmentation)을 하고 싶을 때가 있습니다. 이 때에는 torchvision 에서 제공하는 transforms 모듈들을 사용하면 됩니다.
간단한 사용방법을 위 코드의 일부에서 가져와서 살펴보겠습니다.
transform = transforms . ToTensor ( ) x_data = transform ( x_data )
가져올 변형(여기서는 ToTensor)을 가져와서 변수로 선언한 다음에, 변형할 데이터를 매개변수로 넣는 방식으로 진행합니다. 그래서 생성자에서 transform 을 인스턴스 변수로 선언하고 __getitem__ 에서 이를 활용하는 방식으로 사용하는 것입니다.
이 변형 중에서 주요한 몇몇 모듈들을 살펴보겠습니다.
torchvision . transforms . Resize ( size , interpolation = ‘bilinear’ , . . . ) torchvision . transforms . CenterCrop ( size ) torchvision . transforms . RandomHorizontalFlip ( p = 0.5 ) torchvision . transforms . RandomVerticalFlip ( p = 0.5 ) torchvision . transforms . RandomRotation ( degrees , interpolation = ‘nearest’ , . . . ) torchvision . transforms . RandomCrop ( size , padding = None , . . . )
위 변형들은 이미지 전처리 또는 데이터 증강에 주로 사용됩니다. 크기 조절, 뒤집기, 회전하기 등의 작업을 수행할 수 있습니다.
torchvision . transforms . ToTensor ( ) torchvision . transforms . ToPILImage ( mode = None )
텐서와 PIL 이미지로 상호 변환하는 변형들입니다. ToTensor 은 불러온 이미지를 텐서로 불러올 때, ToPILImage 는 모델의 결과로 나온 영상을 저장하기 위해 주로 사용됩니다. 여기서 ToTensor 로 텐서로 변환한 이미지의 값은 [0, 1] 의 범위를 가집니다.
torchvision . transforms . Normalize ( mean , std , inplace = False )
Normalize 는 텐서를 정규화하는 모듈입니다. mean과 std를 매개변수로 입력하게 되는데, 들어온 텐서 x x x에 대해 ( x − m e a n ) / s t d (x-mean) / std (x−mean)/std를 수행한 텐서를 리턴받습니다. 보통 이 모듈을 사용할 때에는 [0, 1] 과 [-1, 1] 사이의 변환과 PyTorch에서 제공하는 이미 학습된(pretrained) 모델을 파인튜닝(fine-tuning)하기 위해 RGB 데이터 분포에 맞춰주는 것입니다. RGB 영상에 대해 각각에 해당하는 예시를 살펴보게습니다.
transform_1 = transforms . Normalize ( [ 0.5 , 0.5 , 0.5 ] , [ [ 0.5 , 0.5 , 0.5 ] ) transform_2 = transforms . Normalize ( [ 1 , 1 , 1 ] , [ [ 2 , 2 , 2 ] ) transform_3 = transforms . Normalize ( [ 0.485 , 0.456 , 0.406 ] , [ 0.229 , 0.224 , 0.225 ] )
transform_1 은 [0, 1] 에서 [-1, 1] 로, transform_2 은 그 반대, transform_3 은 파인튜닝하기 위해 사용되는 값들이라고 볼 수 있습니다.
마지막으로, 2개 이상의 변형들을 한번에 적용하기 위한 모듈을 살펴보겠습니다.
torchvision . transforms . Compose ( transforms )
여기서 매개변수로 들어가는 transforms 에 사용할 변형들을 리스트로 넣어주면 순서대로 수행해 반환해줍니다. 일반적으로 사용할 수 있는 예시는 다음과 같습니다.
transform_compose = transforms . Compose ( [ transforms . RandomResizedCrop ( input_size ) , transforms . RandomRotation ( degrees = ( – 30 , 30 ) ) transforms . RandomHorizontalFlip ( ) , transforms . ToTensor ( ) , transforms . Normalize ( [ 0.485 , 0.456 , 0.406 ] , [ 0.229 , 0.224 , 0.225 ] ) ] )
그 외 모든 transforms 모듈들에 대한 정보를 찾을 때에는 공식 링크를 참조하시면 됩니다.
So you have finished reading the 이미지 데이터 셋 만들기 topic article, if you find this article useful, please share it. Thank you very much. See more: keras 이미지 데이터셋 만들기, 파이썬 이미지 데이터셋 만들기, 딥러닝 이미지 데이터셋 만들기, cnn 이미지 데이터셋 만들기, 파이썬 데이터셋 만들기, 텐서 플로 이미지 데이터 셋 만들기, 텍스트 데이터셋 만들기, 텐서플로우 이미지 데이터셋 만들기