def init_environment(self): # super().init_environment() # 先执行一次父类的该方法,这里实际上就是在父类方法的基础上进行扩展 #父类方法,直接抄过来方便查阅 self.io = torchlight.IO( #class 'torchlight.io.IO',这里的torchlight.IO就是一个容器 self.arg.work_dir, #存储结果的路径,默认为'./work_dir/tmp' save_log=self.arg.save_log, #是否保存日志,默认true print_log=self.arg.print_log) #是否打印日志,默认true self.io.save_arg(self.arg) # gpu if self.arg.use_gpu: #如果指定了使用GPU,就默认使用0号GPU,否则使用CPU gpus = torchlight.visible_gpu( self.arg.device) #返回的是list(range(len(gpus))) torchlight.occupy_gpu(gpus) self.gpus = gpus print('现在使用的gpu为:', self.gpus) self.dev = "cuda:0" else: self.dev = "cpu" #子类方法 #定义了几个字典对象 self.result = dict() self.iter_info = dict() self.epoch_info = dict() self.meta_info = dict(epoch=0, iter=0)
def init_io(self): self.io = torchlight.IO(self.arg.work_dir, self.arg.session, save_log=self.arg.save_log, print_log=self.arg.print_log) if self.arg.phase == 'train': self.io.save_arg(self.arg)
def __init__(self, args, ftype, data_loader, C, T, V, num_classes, graph_dict, n_z=32, device='cuda:0'): self.args = args self.ftype = ftype self.data_loader = data_loader self.num_classes = num_classes self.result = dict() self.iter_info = dict() self.epoch_info = dict() self.meta_info = dict(epoch=0, iter=0) self.device = device self.io = torchlight.IO(self.args.work_dir, save_log=self.args.save_log, print_log=self.args.print_log) # model self.C = C self.T = T self.V = V self.n_z = n_z if not os.path.isdir(self.args.work_dir): os.mkdir(self.args.work_dir) self.model = CVAE.CVAE(C, T, V, self.n_z, num_classes, graph_dict) self.model.cuda('cuda:0') self.model.apply(weights_init) self.loss = vae_loss self.best_loss = math.inf self.loss_updated = False self.step_epochs = [ math.ceil(float(self.args.num_epoch * x)) for x in self.args.step ] self.best_epoch = 0 self.mean = 0. self.lsig = 1. # optimizer if self.args.optimizer == 'SGD': self.optimizer = optim.SGD(self.model.parameters(), lr=self.args.base_lr, momentum=0.9, nesterov=self.args.nesterov, weight_decay=self.args.weight_decay) elif self.args.optimizer == 'Adam': self.optimizer = optim.Adam(self.model.parameters(), lr=self.args.base_lr, weight_decay=self.args.weight_decay) else: raise ValueError() self.lr = self.args.base_lr
def init_environment(self): self.io = torchlight.IO(self.arg.work_dir, save_log=self.arg.save_log, print_log=self.arg.print_log) self.io.save_arg(self.arg) # gpu gpus = torchlight.visible_gpu(self.arg.device) torchlight.occupy_gpu(gpus) self.gpus = gpus self.dev = "cuda:0"
def __init__(self, args, data_loader, C, F, num_classes, graph_dict, device='cuda:0'): self.args = args self.data_loader = data_loader self.num_classes = num_classes self.result = dict() self.iter_info = dict() self.epoch_info = dict() self.meta_info = dict(epoch=0, iter=0) self.device = device self.io = torchlight.IO(self.args.work_dir, save_log=self.args.save_log, print_log=self.args.print_log) # model if not os.path.isdir(self.args.work_dir): os.mkdir(self.args.work_dir) self.model = classifier.Classifier(C, F, num_classes, graph_dict) self.model.cuda('cuda:0') self.model.apply(weights_init) self.loss = nn.CrossEntropyLoss() self.best_loss = math.inf self.step_epochs = [ math.ceil(float(self.args.num_epoch * x)) for x in self.args.step ] self.best_epoch = 0 self.best_accuracy = np.zeros((1, np.max(self.args.show_topk))) self.accuracy_updated = False # optimizer if self.args.optimizer == 'SGD': self.optimizer = optim.SGD(self.model.parameters(), lr=self.args.base_lr, momentum=0.9, nesterov=self.args.nesterov, weight_decay=self.args.weight_decay) elif self.args.optimizer == 'Adam': self.optimizer = optim.Adam(self.model.parameters(), lr=self.args.base_lr, weight_decay=self.args.weight_decay) else: raise ValueError() self.lr = self.args.base_lr
def init_environment(self): self.io = torchlight.IO(self.arg.work_dir, save_log=self.arg.save_log, print_log=self.arg.print_log) self.io.save_arg(self.arg) print('Mid of init enviroment') # gpu if self.arg.use_gpu: gpus = torchlight.visible_gpu(self.arg.device) torchlight.occupy_gpu(gpus) self.gpus = gpus self.dev = "cuda:0" else: self.dev = "cpu"
def init_environment(self): self.io = torchlight.IO( #class 'torchlight.io.IO',这里的torchlight.IO就是一个容器 self.arg.work_dir, #存储结果的路径,默认为'./work_dir/tmp' save_log=self.arg.save_log, #是否保存日志,默认true print_log=self.arg.print_log) #是否打印日志,默认true self.io.save_arg(self.arg) # gpu if self.arg.use_gpu: #如果指定了使用GPU,就默认使用0号GPU,否则使用CPU gpus = torchlight.visible_gpu(self.arg.device) torchlight.occupy_gpu(gpus) self.gpus = gpus self.dev = "cuda:0" else: self.dev = "cpu"
def __init__(self, args, data_loader, device='cuda:0'): self.args = args # TBD:The data loader class has to be implemented to load the train, test and evaluation images self.data_loader = data_loader self.result = dict() self.iter_info = dict() self.epoch_info = dict() self.meta_info = dict(epoch=0, iter=0) self.device = device self.io = torchlight.IO( "./model_output/", save_log=self.args.save_log, print_log=self.args.print_log) # Initialize timer to see the time taken for each batch self.io.init_timer("batch_processing_time") # # model self.model = classifier1.DepthPredictionNet() self.model.cuda('cuda:0') # TBD: Apart from the Resnet layers, all other layers has to be initialized with the weights as mentioned in the # paper, For now we can go ahead and try the default initialization which can be later modified # [Resolved: Doing at Model level] self.loss = ReverseHubberLoss() self.best_loss = math.inf #self.step_epochs = [math.ceil(float(self.args.num_epoch * x)) for x in self.args.step] self.best_epoch = None self.best_mean_error = np.zeros((1, np.max(self.args.topk))) self.mean_error_updated = False # optimizer if self.args.optimizer == 'SGD': self.optimizer = optim.SGD( self.model.parameters(), lr=self.args.base_lr, momentum=0.9, nesterov=self.args.nesterov, weight_decay=self.args.weight_decay) elif self.args.optimizer == 'Adam': self.optimizer = optim.Adam( self.model.parameters(), lr=self.args.base_lr, weight_decay=self.args.weight_decay) else: raise ValueError() self.lr = self.args.base_lr self.mean_loss_per_lr_step = 0
def init_environment(self): self.save_dir = os.path.join(self.arg.work_dir, self.arg.max_hop_dir, self.arg.lamda_act_dir) self.io = torchlight.IO(self.save_dir, save_log=self.arg.save_log, print_log=self.arg.print_log) self.io.save_arg(self.arg) # gpu if self.arg.use_gpu: gpus = torchlight.visible_gpu(self.arg.device) torchlight.occupy_gpu(gpus) self.gpus = gpus self.dev = "cuda:0" else: self.dev = "cpu"
def init_environment(self): self.save_dir = os.path.join(self.arg.work_dir, self.arg.fusion_layer_dir, self.arg.learning_rate_dir, self.arg.lamda_dir, self.arg.crossw_dir, self.arg.note) self.io = torchlight.IO(self.save_dir, save_log=self.arg.save_log, print_log=self.arg.print_log) self.io.save_arg(self.arg) if self.arg.use_gpu: gpus = torchlight.visible_gpu(self.arg.device) torchlight.occupy_gpu(gpus) self.gpus = gpus self.dev = "cuda:0" else: self.dev = "cpu"