2017-08-22 1 views
0

Je suis en train de passer un fichier .py à l'environnement d'ordinateur portable ipython. Je n'ai jamais eu à traiter directement avec argparse avant. Comment est-ce que je réécris la fonction main()?Argparse dans iPython cahier: arguments non reconnus: -f

J'ai essayé de supprimer la ligne def main(): et conservez le reste du code.

Mais args = parser.parse_args() "a retourné une erreur:

ipykernel_launcher.py: error: unrecognized arguments: -f.

Et quand je lance% 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) 
+0

J'utilise énormément 'ipython', mais pas les notebooks, mais si je me rappelle d'autres SO correctement, vous ne pouvez pas passer des arguments de ligne de commande spécifiques à un script. Les arguments que 'ipython' utilise pour démarrer le serveur. Quelle ligne de commande utilisez-vous (qui inclut le drapeau '-f')? https://stackoverflow.com/questions/43057529/how-to-pass-command-line-arguments-in-ipython-jupyter-notebook – hpaulj

+0

Quelle était la ligne de commande qui a donné cette erreur? – holdenweb

Répondre

2

Vous pouvez args = parser.parse_args (args = [])