I am trying to implement a code, but I faced with the following error. Unfortunately, I cannot figure out the reason of this error in order to debug it. This code is so long. I just have added the part of the problem.
Firstly, I thought that the problem is from the data directory, but I added the datasets manually; then, I copy the path of dataset in the code as you can see, but the error is still remained.
Part of this code:
def opts():
architecture_names = sorted(
name for name in models.__dict__
if name.islower() and not name.startswith("__")
and callable(models.__dict__[name])
)
dataset_names = sorted(
name for name in datasets.__dict__
if not name.startswith("__") and callable(datasets.__dict__[name])
)
parser = argparse.ArgumentParser(description='UDA')
# dataset parameters
parser.add_argument('root', metavar='DIR', help='root path of dataset')
parser.add_argument('-d', '--data', metavar='DATA', default='Office31',
help='dataset: ' + ' | '.join(dataset_names) + ' (default: Office31)')
parser.add_argument('-s', '--source', help='source domain(s)')
parser.add_argument('-t', '--target', help='target domain(s)')
parser.add_argument('--transform_type', type=str,
default='randomcrop', help='randomcrop | randomsizedcrop | center')
parser.add_argument('--strongaug', action='store_true', default=True,
help='whether use the strong augmentation (i.e., RandomAug) it is True in FixMatch and UDA')
parser.add_argument('--mu', type=int, default=2, help='unlabeled batch size / labeled batch size')
# model parameters
parser.add_argument('-a', '--arch', metavar='ARCH', default='resnet50', choices=architecture_names,
help='backbone architecture: ' + ' | '.join(architecture_names) + ' (default: resnet50)')
parser.add_argument('--bottleneck-dim', default=256, type=int, help='Dimension of bottleneck')
parser.add_argument('--temperature', default=2, type=float, help='parameter temperature scaling') #
parser.add_argument('--trade-off1', default=0.5, type=float,
help='hyper-parameter for regularization')
parser.add_argument('--trade-off2', default=0.5, type=float,
help='hyper-parameter for correct loss')
parser.add_argument('--trade-off3', default=0.5, type=float,
help='fixmatch loss')
parser.add_argument('--threshold', default=0.97, type=float)
# training parameters
parser.add_argument('-b', '--batch-size', default=32, type=int, metavar='N',
help='mini-batch size (default: 32)')
parser.add_argument('--lr', '--learning-rate', default=0.01, type=float,
metavar='LR', help='initial learning rate', dest='lr')
parser.add_argument('--lr-gamma', default=0.001, type=float, help='parameter for lr scheduler')
parser.add_argument('--lr-decay', default=0.75, type=float, help='parameter for lr scheduler')
parser.add_argument('--momentum', default=0.9, type=float, metavar='M', help='momentum')
parser.add_argument('--wd', '--weight-decay', default=1e-3, type=float,
metavar='W', help='weight decay (default: 1e-3)', dest='weight_decay')
parser.add_argument('-j', '--workers', default=8, type=int, metavar='N',
help='number of data loading workers (default: 8)')
parser.add_argument('--epochs', default=30, type=int, metavar='N', help='number of total epochs to run')
parser.add_argument('--early', default=20, type=int, metavar='N', help='number of total epochs to early stopping')
parser.add_argument('-i', '--iters-per-epoch', default=1000, type=int, help='Number of iterations per epoch')
parser.add_argument('-p', '--print-freq', default=100, type=int, metavar='N', help='print frequency (default: 100)')
parser.add_argument('--seed', default=2, type=int, help='seed for initializing training. ')
parser.add_argument('--per-class-eval', action='store_true',
help='whether output per-class accuracy during evaluation')
# pretrain parameters
parser.add_argument('--pretrain', type=str, default=None, help='pretrain checkpoints for classification model')
parser.add_argument('--pretrain-epochs', default=0, type=int, metavar='N',
help='number of total epochs(pretrain) to run')
parser.add_argument('--pretrain-lr', '--pretrain-learning-rate', default=0.001, type=float,
help='initial pretrain learning rate', dest='pretrain_lr')
## log parameters
parser.add_argument("--log", type=str, default='RCE',
help="Where to save logs, checkpoints and debugging images.")
parser.add_argument("--phase", type=str, default='train', choices=['train', 'test', 'analysis'],
help="When phase is 'test', only test the model."
"When phase is 'analysis', only analysis the model.")
parser.add_argument('--multiprocessing_distributed', action='store_true', default=False,
help='Use multi-processing distributed training to launch '
'N processes per node, which has N GPUs. This is the '
'fastest way to use PyTorch for either single node or '
'multi node data parallel training')
args = parser.parse_args()
data_dir = '/content/drive/MyDrive/data/' ### change your own data root
args.root = data_dir + args.root
if args.data == 'OfficeHome':
args.num_class = 65
elif args.data == 'Office31':
args.num_class = 31
elif args.data == 'DomainNet':
args.num_class = 345
elif args.data == 'VisDA2017':
args.num_class = 12
args.category_mean = True
args.transform_type = 'center'
print('training with VisDA2017')
return args
Full Traceback:
SystemExit Traceback (most recent call last)
<ipython-input-35-10b3a86f1689> in <cell line: 454>()
453
454 if __name__ == '__main__':
--> 455 main()
4 frames
<ipython-input-35-10b3a86f1689> in main()
124 def main():
125
--> 126 args = opts()
127 logger = CompleteLogger(args.log, args.phase)
128 print(args)
<ipython-input-35-10b3a86f1689> in opts()
104 'fastest way to use PyTorch for either single node or '
105 'multi node data parallel training')
--> 106 args = parser.parse_args()
107
108 data_dir = '/content/drive/MyDrive/data/' ### change your own data root
/usr/lib/python3.10/argparse.py in parse_args(self, args, namespace)
1846 if argv:
1847 msg = _('unrecognized arguments: %s')
-> 1848 self.error(msg % ' '.join(argv))
1849 return args
1850
/usr/lib/python3.10/argparse.py in error(self, message)
2604 self.print_usage(_sys.stderr)
2605 args = {'prog': self.prog, 'message': message}
-> 2606 self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
/usr/lib/python3.10/argparse.py in exit(self, status, message)
2591 if message:
2592 self._print_message(message, _sys.stderr)
-> 2593 _sys.exit(status)
2594
2595 def error(self, message):
SystemExit: 2
What is the exact error? How can I debug it?