Model Training
In [ ]:
Copied!
import os
import sys
import warnings
from pathlib import Path
warnings.filterwarnings("ignore")
os.chdir("../../")
# sys.path.append()
import os
import sys
import warnings
from pathlib import Path
warnings.filterwarnings("ignore")
os.chdir("../../")
# sys.path.append()
In [ ]:
Copied!
from gradsflow.data.image import image_dataset_from_directory
from gradsflow.core.data import AutoDataset
from gradsflow import Model
import timm
import torch
import torchvision
from gradsflow.data.image import image_dataset_from_directory
from gradsflow.core.data import AutoDataset
from gradsflow import Model
import timm
import torch
import torchvision
In [ ]:
Copied!
data_dir = "/Users/aniket/personal/gradsflow/gradsflow/data" # replace with your filepath
data_dir = "/Users/aniket/personal/gradsflow/gradsflow/data" # replace with your filepath
In [ ]:
Copied!
train_data = image_dataset_from_directory(
f"{data_dir}/hymenoptera_data/train/",
image_size=(96, 96),
num_workers=None,
transform=True,
batch_size=1,
shuffle=True,
)
val_data = image_dataset_from_directory(
f"{data_dir}/hymenoptera_data/val/",
image_size=(96, 96),
num_workers=None,
transform=True,
)
train_dataset = train_data["ds"]
train_dl = train_data["dl"]
val_dl = val_data["dl"]
num_classes = len(train_dataset.classes)
autodataset = AutoDataset(train_dl, val_dl, num_classes=num_classes)
train_data = image_dataset_from_directory(
f"{data_dir}/hymenoptera_data/train/",
image_size=(96, 96),
num_workers=None,
transform=True,
batch_size=1,
shuffle=True,
)
val_data = image_dataset_from_directory(
f"{data_dir}/hymenoptera_data/val/",
image_size=(96, 96),
num_workers=None,
transform=True,
)
train_dataset = train_data["ds"]
train_dl = train_data["dl"]
val_dl = val_data["dl"]
num_classes = len(train_dataset.classes)
autodataset = AutoDataset(train_dl, val_dl, num_classes=num_classes)
In [ ]:
Copied!
cnn = timm.create_model("resnet18", pretrained=False, num_classes=num_classes)
model = Model(cnn)
model.compile("crossentropyloss", "adam", metrics="accuracy")
cnn = timm.create_model("resnet18", pretrained=False, num_classes=num_classes)
model = Model(cnn)
model.compile("crossentropyloss", "adam", metrics="accuracy")
In [ ]:
Copied!
model.fit(
autodataset,
max_epochs=2,
steps_per_epoch=10,
)
model.fit(
autodataset,
max_epochs=2,
steps_per_epoch=10,
)
Out[ ]:
Tracker(max_epochs=0, epoch=1, steps_per_epoch=10, tune_metric=0.45098039215686275, train=TrackingValues(loss=0.6841527981569648, steps=11, step_loss=None, metrics={'Accuracy': tensor(0.6364)}), val=TrackingValues(loss=0.6974252240284983, steps=153, step_loss=None, metrics={'Accuracy': tensor(0.4510)}))
Last update: October 1, 2021