import os from torch.autograd import Variable import torch.utils.data from torch.nn import DataParallel from config import BATCH_SIZE, PROPOSAL_NUM, test_model from core import model, dataset from core.utils import progress_bar os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3' if not test_model: raise NameError('please set the test_model file to choose the checkpoint!') # read dataset trainset = dataset.CUB(root='./CUB_200_2011', is_train=True, data_len=None) trainloader = torch.utils.data.DataLoader(trainset, batch_size=BATCH_SIZE, shuffle=True, num_workers=8, drop_last=False) testset = dataset.CUB(root='./CUB_200_2011', is_train=False, data_len=None) testloader = torch.utils.data.DataLoader(testset, batch_size=BATCH_SIZE, shuffle=False, num_workers=8, drop_last=False) # define model net = model.attention_net(topN=PROPOSAL_NUM) ckpt = torch.load(test_model) net.load_state_dict(ckpt['net_state_dict']) net = net.cuda() net = DataParallel(net) creterion = torch.nn.CrossEntropyLoss()
parser.add_option("--cutout", action="store_true", dest="cutout", default=False, help="applying cutout") parser.add_option("--focal", action="store_true", dest="focal", default=False, help="applying focal loss") # Parse command line options (options, args) = parser.parse_args() print(options) start_epoch = 1 if os.path.exists(options.save_dir): raise NameError('model dir exists!') os.makedirs(options.save_dir) logging = init_log(options.save_dir) _print = logging.info # read dataset trainset = dataset.CUB(root_dir='core/2016train', is_train=True) trainloader = torch.utils.data.DataLoader(trainset, batch_size=options.batchSize, shuffle=True, num_workers=0, drop_last=False) testset = dataset.CUB(root_dir='core/2016test', is_train=False) testloader = torch.utils.data.DataLoader(testset, batch_size=options.batchSize, shuffle=False, num_workers=0, drop_last=False) # define model net = model.attention_net(topN=PROPOSAL_NUM) if resume: ckpt = torch.load(resume) net.load_state_dict(ckpt['net_state_dict']) start_epoch = ckpt['epoch'] + 1 creterion = torch.nn.CrossEntropyLoss() # define optimizers raw_parameters = list(net.pretrained_model.parameters())
from core import model, dataset from core.utils import init_log, progress_bar from tensorboardX import SummaryWriter os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3' start_epoch = 1 save_dir = os.path.join(save_dir, datetime.now().strftime('%Y%m%d_%H%M%S')) if os.path.exists(save_dir): raise NameError('model dir exists!') os.makedirs(save_dir) logging = init_log(save_dir) _print = logging.info # read dataset trainset = dataset.CUB(root=img_dir, is_train=True, data_len=None) trainloader = torch.utils.data.DataLoader(trainset, batch_size=BATCH_SIZE, shuffle=True, num_workers=8, drop_last=False) testset = dataset.CUB(root=img_dir, is_train=False, data_len=None) testloader = torch.utils.data.DataLoader(testset, batch_size=BATCH_SIZE, shuffle=False, num_workers=8, drop_last=False) # define model net = model.attention_net(topN=PROPOSAL_NUM) if resume: ckpt = torch.load(resume) net.load_state_dict(ckpt['net_state_dict']) start_epoch = ckpt['epoch'] + 1 creterion = torch.nn.CrossEntropyLoss() # define optimizers raw_parameters = list(net.pretrained_model.parameters())
import os from torch.autograd import Variable import torch.utils.data from torch.nn import DataParallel from config import BATCH_SIZE, PROPOSAL_NUM, test_model from core import model, dataset from core.utils import progress_bar os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3' if not test_model: raise NameError('please set the test_model file to choose the checkpoint!') # read dataset trainset = dataset.CUB(is_train=True, data_len=None) trainloader = torch.utils.data.DataLoader(trainset, batch_size=BATCH_SIZE, shuffle=True, num_workers=0, drop_last=False) testset = dataset.CUB(is_train=False, data_len=None) testloader = torch.utils.data.DataLoader(testset, batch_size=BATCH_SIZE, shuffle=False, num_workers=0, drop_last=False) # define model net = model.attention_net(topN=PROPOSAL_NUM) ckpt = torch.load(test_model) net.load_state_dict(ckpt['net_state_dict']) net = net.cuda() net = DataParallel(net) creterion = torch.nn.CrossEntropyLoss() ########################## evaluate net on train set ############################### train_loss = 0 train_correct = 0 total = 0 net.eval()