from torchvision import models from torchvision.utils import save_image from tqdm import tqdm from auglib.augmentation import Augmentations, set_seeds from auglib.meters import AverageMeter from auglib.dataset_loader import CSVDatasetWithName np.set_printoptions(precision=4, suppress=True) ex = Experiment() fs_observer = FileStorageObserver.create('results') ex.observers.append(fs_observer) telegram_file = 'telegram.json' if os.path.isfile(telegram_file): telegram_obs = TelegramObserver.from_config(telegram_file) ex.observers.append(telegram_obs) @ex.config def cfg(): train_root = None train_csv = None train_split = None val_root = None val_csv = None val_split = None n_classes = 7 epochs = 200 # maximum number of epochs batch_size = 32 # batch size num_workers = 8 # parallel jobs for data loading and augmentation
import sys import torch import argparse from types import SimpleNamespace from sacred import Experiment from sacred.observers import MongoObserver, TinyDbObserver, TelegramObserver ex = Experiment('mnist') ex.observers.append(MongoObserver.create()) ex.observers.append(TelegramObserver.from_config('telegram.json')) parser = argparse.ArgumentParser() parser.add_argument('--device', action='store', default=torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')) parser.add_argument('--data', action='store', default='./data/') ex.add_config({'args': vars(parser.parse_args())}) @ex.main def main(_run, args): args = SimpleNamespace(**args) ex.run()
from torchvision import models from torchvision.utils import save_image, make_grid from tqdm import tqdm from auglib.augmentation import Augmentations, set_seeds from auglib.dataset_loader import CSVDataset, CSVDatasetWithName from auglib.meters import AverageMeter from auglib.test import test_with_augmentation ex = Experiment() fs_observer = FileStorageObserver.create('results') ex.observers.append(fs_observer) TELEGRAM_KEY = 'telegram.json' if os.path.isfile(TELEGRAM_KEY): telegram_obs = TelegramObserver.from_config('telegram.json') ex.observers.append(telegram_obs) @ex.config def cfg(): train_root = None # path to train images train_csv = None # path to train CSV val_root = None # path to validation images val_csv = None # path to validation CSV test_root = None # path to test images test_csv = None # path to test CSV epochs = 30 # number of epochs batch_size = 32 # batch size num_workers = 8 # parallel jobs for data loading and augmentation model_name = None # model: inceptionv4, densenet161, resnet152
parser.add_argument('-ll', '--log-level', type=str, default='INFO', help='logging level', choices=['CRITICAL', 'FATAL', 'ERROR', 'WARNING', 'WARN', 'INFO', 'DEBUG']) parser.add_argument('-em', '--evaluation-mode', type=str, default='validation', help='evaluation mode') parser.add_argument('-mp', '--min-performance', type=float, default=0.68, help='minimum performance of model for serialising it') parser.add_argument('-kp', '--kill-performance', type=float, default=0.45, help='stop process automatically if performance stays below' 'given level after some burn-in period') parser.add_argument('-bi', '--burn-in', type=int, default=5, help='number of epochs of patience before the kill-performance option' 'becomes active') parser.add_argument('-egt', '--experiment-id-greater-than', type=int, default=-1, help='skip first n experiments') ex = Experiment('GANDALF') OBSERVERS = { 'mongo': MongoObserver.create(db_name='GANDALF'), 'telegram': TelegramObserver.from_config(os.path.join(PROJECT_PATH, 'resources/sacred/telegram.json')), 'sqlite': SqlObserver.create( 'sqlite:///{}'.format(os.path.join(PACKAGE_PATH, 'resources', 'sacred', 'GANDALF.sqlite'))), 'tinydb': TinyDbObserver.create(os.path.join(PACKAGE_PATH, 'resources', 'sacred', 'GANDALF.tinydb')), 'file': FileStorageObserver.create( os.path.join(PACKAGE_PATH, 'resources', 'sacred', 'GANDALF.fs')) } @ex.config def config(): config_name = '' exp_name = '' input_file = '' vector_file = '' vector_model_type = ''
########################### return atexit_tasks(model=model) if __name__ == '__main__': config_dict, remaining_args = Config().parse_args() ex.add_config(config_dict) # sacred_default_flags = ['--enforce_clean', '-l', 'INFO'] sacred_default_flags = [] # remove all argparse arguments from sys.argv argv = [sys.argv[0], *sacred_default_flags, *remaining_args] ex.observers.append( MongoObserver.create( url=config_dict['mongo_url'], db_name=config_dict['mongo_db'] ) ) if config_dict['telegram']: telegram_obs = TelegramObserver.from_config( os.path.join(config_dict['root_dir'], 'telegram.json')) ex.observers.append(telegram_obs) ex.captured_out_filter = sacred.utils.apply_backspaces_and_linefeeds r = ex.run_commandline(argv) os._exit(0)