import torch from torch import optim, nn import torchvision from torch.utils.data import DataLoader from MakeDataset import makedataset from torchvision.models import densenet121 from utils import Flatten from sklearn.metrics import roc_curve, auc import matplotlib.pyplot as plt batchsz = 280 # Remove all test data at once device = torch.device('cuda') torch.manual_seed(1234) test_db = makedataset('mydata', 224, mode='test') test_loader = DataLoader(test_db, batch_size=batchsz) # Do one-hot coding of labels depth = 6 def one_hot(label, depth=6): out = torch.zeros(label.size(0), depth) idx = torch.LongTensor(label).view(-1, 1) out.scatter_(dim=1, index=idx, value=1) return out # load model trained_model = densenet121(pretrained=True) model = nn.Sequential(
from torch.utils.data import DataLoader from MakeDataset import makedataset from torchvision.models import densenet121 from utils import Flatten # Set hyper-parameters batchsz = 4 lr = 1e-3 epochs = 10 # Specify CUDA acceleration and set random seeds device = torch.device('cuda') torch.manual_seed(1234) # load train/val/test datasets train_db = makedataset('mydata', 224, mode='train') val_db = makedataset('mydata', 224, mode='val') test_db = makedataset('mydata', 224, mode='test') train_loader = DataLoader(train_db, batch_size=batchsz, shuffle=True) val_loader = DataLoader(val_db, batch_size=batchsz) test_loader = DataLoader(test_db, batch_size=batchsz) # view numbers of datasets print('num_train:', len(train_loader.dataset)) print('num_val:', len(val_loader.dataset)) print('num_test:', len(test_loader.dataset)) # Define validation functions def evalute(model, loader): model.eval()