我正在尝试使用jupyter笔记本运行一些代码,但是从一开始,我就遇到了问题。
确实,看来我不能使用以下命令:
parser.add_argument('--lr', default=0.1, type=float, help='learning rate')
parser.add_argument('--resume', '-r', action='store_true', help='resume from checkpoint')
用法:ipykernel_launcher.py [-h] [--lr LR] [--resume]
并且ipykernel_launcher.py
给出错误:unrecognized arguments: -f
并且:
args = parser.parse_args()
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/argparse.py in parse_args(self, args, namespace)
1750 if argv:
1751 msg = _('unrecognized arguments: %s')
-> 1752 self.error(msg % ' '.join(argv))
1753 return args
1754
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/argparse.py in error(self, message)
2499 self.print_usage(_sys.stderr)
2500 args = {'prog': self.prog, 'message': message}
-> 2501 self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/argparse.py in exit(self, status, message)
2486 if message:
2487 self._print_message(message, _sys.stderr)
-> 2488 _sys.exit(status)
2489
2490 def error(self, message):
SystemExit: 2
我已经看到一些人在尝试使用jupyter和arg_parse时已经遇到了这个问题,但是我找不到简单的解决方案。
谢谢您的帮助!
答案 0 :(得分:0)
当我启动一个空白笔记本并执行时
import sys
sys.argv
我明白了
['/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py',
'-f',
'/run/user/1000/jupyter/kernel-b2d72478-6aaa-4206-9bf3-38fc1a0fd303.json']
parse_args()
使用的sys.argv
列表通常来自调用脚本的shell。这是命令行字符串的列表。
脚本看到的sys.argv
包含由-f
创建的jupyter
自变量。
您可以使用parse_known_args()
,以便您的解析器不会引发此错误。但这并不能帮助您获取--lr
或-r
参数-因为jupyter's
自己的解析器将拒绝它们。
以前的SO问题的实质是您不能向笔记本提供命令行参数。