Gdm Coil 100 Deep Learning
#Image classification with the Coil-100 dataset
COIL-100 was collected by the Center for Research on Intelligent Systems at the Department of Computer Science, Columbia University. The database contains color images of 100 objects. The objects were placed on a motorized turntable against a black background and images were taken at pose internals of 5 degrees. This dataset was used in a real-time 100 object recognition system whereby a system sensor could identify the object and display its angular pose.
In this example, I will utilize transfer learning with the VGG-11 pre-trained convolutional network. I will add a custom classification layer to it and train it on GPU.
Downloading data from Kaggle...
import opendatasets as od
dataset_url = 'https://www.kaggle.com/jessicali9530/coil100'
od.download(dataset_url)
Please provide your Kaggle credentials to download this dataset. Learn more: http://bit.ly/kaggle-creds
Your Kaggle username: triaprima
Your Kaggle Key: ··········
21%|██▏ | 27.0M/127M [00:00<00:00, 276MB/s]
Downloading coil100.zip to ./coil100
100%|██████████| 127M/127M [00:00<00:00, 297MB/s]
import os, glob
import torch
import pandas as pd
import numpy as np
from torch.utils.data import Dataset, random_split, DataLoader
from PIL import Image, ImageStat
import torchvision.models as models
from torch import optim
import matplotlib.pyplot as plt
import torchvision.transforms as transforms
from torchvision.utils import make_grid
import torch.nn.functional as F
import torch.nn as nn
from torchvision.utils import make_grid
from collections import OrderedDict
%matplotlib inline
DATA_DIR = './coil100/coil-100/coil-100'
file_list = glob.glob(f'{DATA_DIR}/*.png')
# extracting file names and related labels
f_names_labels = [(f.split('/')[-1], int(f.split('/')[-1].split('__')[0].split('obj')[1])) for f in file_list]
Giovanni De Marinis7 months ago