关于在jupyter notebook中解决 ipykernel_launcher.py: error: argument
First,我先说一下我的代码的解决办法。
args = parser.parse_args() #开始的,会报错
args=parser.parse_args(args=[]) #用这句来替代上一句,不会报错
这是我的错误代码
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Learn2Learn MNIST Example')
parser.add_argument('--ways', type=int, default=5, metavar='N',
help='number of ways (default: 5)')
parser.add_argument('--shots', type=int, default=1, metavar='N',
help='number of shots (default: 1)')
parser.add_argument('-tps', '--tasks-per-step', type=int, default=32, metavar='N',
help='tasks per step (default: 32)')
parser.add_argument('-fas', '--fast-adaption-steps', type=int, default=5, metavar='N',
help='steps per fast adaption (default: 5)')
parser.add_argument('--iterations', type=int, default=1000, metavar='N',
help='number of iterations (default: 1000)')
parser.add_argument('--lr', type=float, default=0.005, metavar='LR',
help='learning rate (default: 0.005)')
parser.add_argument('--maml-lr', type=float, default=0.01, metavar='LR',
help='learning rate for MAML (default: 0.01)')
parser.add_argument('--no-cuda', action='store_true', default=False,
help='disables CUDA training')
parser.add_argument('--seed', type=int, default=1, metavar='S',
help='random seed (default: 1)')
parser.add_argument('--download-location', type=str, default="/tmp/mnist", metavar='S',
help='download location for train data (default : /tmp/mnist')
args = parser.parse_args()
use_cuda = not args.no_cuda and torch.cuda.is_available()
random.seed(args.seed)
np.random.seed(args.seed)
torch.manual_seed(args.seed)
if use_cuda:
torch.cuda.manual_seed(args.seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
device = torch.device("cuda" if use_cuda else "cpu")
main(lr=args.lr,
maml_lr=args.maml_lr,
iterations=args.iterations,
ways=args.ways,
shots=args.shots,
tps=args.tasks_per_step,
fas=args.fast_adaption_steps,
device=device,
download_location=args.download_location)
这是我修改后的代码
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Learn2Learn MNIST Example')
parser.add_argument('--ways', type=int, default=5, metavar='N',
help='number of ways (default: 5)')
parser.add_argument('--shots', type=int, default=1, metavar='N',
help='number of shots (default: 1)')
parser.add_argument('-tps', '--tasks-per-step', type=int, default=32, metavar='N',
help='tasks per step (default: 32)')
parser.add_argument('-fas', '--fast-adaption-steps', type=int, default=5, metavar='N',
help='steps per fast adaption (default: 5)')
parser.add_argument('--iterations', type=int, default=1000, metavar='N',
help='number of iterations (default: 1000)')
parser.add_argument('--lr', type=float, default=0.005, metavar='LR',
help='learning rate (default: 0.005)')
parser.add_argument('--maml-lr', type=float, default=0.01, metavar='LR',
help='learning rate for MAML (default: 0.01)')
parser.add_argument('--no-cuda', action='store_true', default=False,
help='disables CUDA training')
parser.add_argument('--seed', type=int, default=1, metavar='S',
help='random seed (default: 1)')
parser.add_argument('--download-location', type=str, default="/tmp/mnist", metavar='S',
help='download location for train data (default : /tmp/mnist')
args = parser.parse_args()[0]
use_cuda = not args.no_cuda and torch.cuda.is_available()
random.seed(args.seed)
np.random.seed(args.seed)
torch.manual_seed(args.seed)
if use_cuda:
torch.cuda.manual_seed(args.seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
device = torch.device("cuda" if use_cuda else "cpu")
main(lr=args.lr,
maml_lr=args.maml_lr,
iterations=args.iterations,
ways=args.ways,
shots=args.shots,
tps=args.tasks_per_step,
fas=args.fast_adaption_steps,
device=device,
download_location=args.download_location)
Second,我说一下网上其他的解决办法
在程序最开始输入如下代码
import sys
print(sys.argv)
#我的输出是 ['/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py', '-f', '/root/.local/share/jupyter/runtime/kernel-1add5e22-adea-4721-b221-2f17bd5c4085.json']
在程序最开始,添加如下代码也可免于报错
sys.argv = ['/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py','-f','/root/.local/share/jupyter/runtime/kernel-1add5e22-adea-4721-b221-2f17bd5c4085.json']
Thrid, 第二种网上的解决办法
args = parser.parse_args() #你自己的
args = parser.parse_args()[0] #替换后的
每个人的程序因人而异,大家多尝试一下,大家若有问题,欢迎点赞留言,我会第一时间看到并回复。