iPython 笔记本中的 Argparse:无法识别的参数:-f
Argparse in iPython notebook: unrecognized arguments: -f
我正在尝试将 .py
文件传递到 ipython 笔记本环境。
我以前从来没有直接与 argparse 打交道。如何重写 main()
函数?
我试图删除 def main():
行并保留其余代码。
但是 args = parser.parse_args()
" 返回了一个错误:
ipykernel_launcher.py: error: unrecognized arguments: -f.
而当我 运行 。 %tb:
showing this
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--data_dir', type=str, default='data/tinyshakespeare',
help='data directory containing input.txt')
parser.add_argument('--input_encoding', type=str, default=None,
help='character encoding of input.txt, from https://docs.python.org/3/library/codecs.html#standard-encodings')
parser.add_argument('--log_dir', type=str, default='logs',
help='directory containing tensorboard logs')
parser.add_argument('--save_dir', type=str, default='save',
help='directory to store checkpointed models')
parser.add_argument('--rnn_size', type=int, default=256,
help='size of RNN hidden state')
parser.add_argument('--num_layers', type=int, default=2,
help='number of layers in the RNN')
parser.add_argument('--model', type=str, default='lstm',
help='rnn, gru, or lstm')
parser.add_argument('--batch_size', type=int, default=50,
help='minibatch size')
parser.add_argument('--seq_length', type=int, default=25,
help='RNN sequence length')
parser.add_argument('--num_epochs', type=int, default=50,
help='number of epochs')
parser.add_argument('--save_every', type=int, default=1000,
help='save frequency')
parser.add_argument('--grad_clip', type=float, default=5.,
help='clip gradients at this value')
parser.add_argument('--learning_rate', type=float, default=0.002,
help='learning rate')
parser.add_argument('--decay_rate', type=float, default=0.97,
help='decay rate for rmsprop')
parser.add_argument('--gpu_mem', type=float, default=0.666,
help='%% of gpu memory to be allocated to this process. Default is 66.6%%')
parser.add_argument('--init_from', type=str, default=None,
help="""continue training from saved model at this path. Path must contain files saved by previous training process:
'config.pkl' : configuration;
'words_vocab.pkl' : vocabulary definitions;
'checkpoint' : paths to model file(s) (created by tf).
Note: this file contains absolute paths, be careful when moving files around;
'model.ckpt-*' : file(s) with model definition (created by tf)
""")
args = parser.parse_args()
train(args)
你可以试试args = parser.parse_args(args=[])
.
Jupyter 执行最好使用@nbro 的回答。
args = parser.parse_args(args=[])
如果你想以class格式管理参数,你可以试试这个。
class Args:
data = './data/penn'
model = 'LSTM'
emsize = 200
nhid = 200
args=Args()
正如@nbro 所建议的,以下命令应该有效:
args = parser.parse_args(args=[])
此外,如果您的解析器中有必需的参数,请将它们设置在列表中:
args = parser.parse_args(args=['--req_1', '10', '--req_2', '10'])
您之前使用的地方:
import argparse
parser = argparse.ArgumentParser(description="Dummy parser")
parser.add_argument("--req_1", type=int, required=True, help="required int 1")
parser.add_argument("--req_2", type=int, required=True, help="required int 2")
您还可以从笔记本中看到所有参数:
print("see all args:", args)
print("use one arg:", args.req_1)
您可以在文档中找到更多信息:Parsing arguments
一个例子是:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('echo')
args = parser.parse_args(['aa']) # actually you don't have to write (args=['aa'])
print(args.echo)
输出应该是
>>> aa
我正在尝试将 .py
文件传递到 ipython 笔记本环境。
我以前从来没有直接与 argparse 打交道。如何重写 main()
函数?
我试图删除 def main():
行并保留其余代码。
但是 args = parser.parse_args()
" 返回了一个错误:
ipykernel_launcher.py: error: unrecognized arguments: -f.
而当我 运行 。 %tb: showing this
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--data_dir', type=str, default='data/tinyshakespeare',
help='data directory containing input.txt')
parser.add_argument('--input_encoding', type=str, default=None,
help='character encoding of input.txt, from https://docs.python.org/3/library/codecs.html#standard-encodings')
parser.add_argument('--log_dir', type=str, default='logs',
help='directory containing tensorboard logs')
parser.add_argument('--save_dir', type=str, default='save',
help='directory to store checkpointed models')
parser.add_argument('--rnn_size', type=int, default=256,
help='size of RNN hidden state')
parser.add_argument('--num_layers', type=int, default=2,
help='number of layers in the RNN')
parser.add_argument('--model', type=str, default='lstm',
help='rnn, gru, or lstm')
parser.add_argument('--batch_size', type=int, default=50,
help='minibatch size')
parser.add_argument('--seq_length', type=int, default=25,
help='RNN sequence length')
parser.add_argument('--num_epochs', type=int, default=50,
help='number of epochs')
parser.add_argument('--save_every', type=int, default=1000,
help='save frequency')
parser.add_argument('--grad_clip', type=float, default=5.,
help='clip gradients at this value')
parser.add_argument('--learning_rate', type=float, default=0.002,
help='learning rate')
parser.add_argument('--decay_rate', type=float, default=0.97,
help='decay rate for rmsprop')
parser.add_argument('--gpu_mem', type=float, default=0.666,
help='%% of gpu memory to be allocated to this process. Default is 66.6%%')
parser.add_argument('--init_from', type=str, default=None,
help="""continue training from saved model at this path. Path must contain files saved by previous training process:
'config.pkl' : configuration;
'words_vocab.pkl' : vocabulary definitions;
'checkpoint' : paths to model file(s) (created by tf).
Note: this file contains absolute paths, be careful when moving files around;
'model.ckpt-*' : file(s) with model definition (created by tf)
""")
args = parser.parse_args()
train(args)
你可以试试args = parser.parse_args(args=[])
.
Jupyter 执行最好使用@nbro 的回答。
args = parser.parse_args(args=[])
如果你想以class格式管理参数,你可以试试这个。
class Args:
data = './data/penn'
model = 'LSTM'
emsize = 200
nhid = 200
args=Args()
正如@nbro 所建议的,以下命令应该有效:
args = parser.parse_args(args=[])
此外,如果您的解析器中有必需的参数,请将它们设置在列表中:
args = parser.parse_args(args=['--req_1', '10', '--req_2', '10'])
您之前使用的地方:
import argparse
parser = argparse.ArgumentParser(description="Dummy parser")
parser.add_argument("--req_1", type=int, required=True, help="required int 1")
parser.add_argument("--req_2", type=int, required=True, help="required int 2")
您还可以从笔记本中看到所有参数:
print("see all args:", args)
print("use one arg:", args.req_1)
您可以在文档中找到更多信息:Parsing arguments
一个例子是:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('echo')
args = parser.parse_args(['aa']) # actually you don't have to write (args=['aa'])
print(args.echo)
输出应该是
>>> aa