web-dev-qa-db-ja.com

ipykernel_launcher.pyを修正する方法:エラー:jupyterの認識されない引数?

私はこのテンソルフローに従っています チュートリアル 2日後に環境を設定した後、ようやくpremade_estimator.py cmdを使用

しかし、jupyterノートブックで同じコードを実行しようとすると、次のエラーが発生します。

usage: ipykernel_launcher.py [-h] [--batch_size BATCH_SIZE]
                             [--train_steps TRAIN_STEPS]

ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\david\AppData\Roaming\jupyter\runtime\kernel-4faecb24-6e87-40b4-bf15-5d24520d7130.json

例外が発生しました。%tbを使用して完全なトレースバックを確認してください。

SystemExit: 2

C:\Anaconda3\envs\python3x\lib\site-packages\IPython\core\interactiveshell.py:2918: 
UserWarning: To exit: use 'exit', 'quit', or Ctrl-D. warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

私は成功せずにそれを修正しようとしました:

pip install --ignore-installed --upgrade jupyter

pip install ipykernel
python -m ipykernel install

conda install notebook ipykernel
ipython kernelspec install-self

どんなアイデアでも感謝します!ありがとう!

12
virtualdvid

わかった!エラーが発生する理由は、このコードが argparse を使用しており、このモジュールを使用してユーザーフレンドリーなコマンドラインインターフェイスを作成しているためです。 Jupyter Notebook。

私はこの中に解決策を見つけました ページ

私たちがしなければならないのは:

次の行を削除またはコメント化します。

parser = argparse.ArgumentParser()
parser.add_argument('--batch_size', default=100, type=int, help='batch size')
parser.add_argument('--train_steps', default=1000, type=int,
                    help='number of training steps')

argsを置き換えます

args = parser.parse_args(argv[1:])

ライブラリ easydict を次のように使用する辞書の場合:

args = easydict.EasyDict({
    "batch_size": 100,
    "train_steps": 1000
})

easydictを使用すると、引数の属性としてdict値にアクセスできます。

更新

今年のすべてがpythonを深く掘り下げた後、私はこの質問の解決策がはるかに単純であることを発見しました(外部のライブラリやメソッドを使用する必要はありません)。 argparseは、python=でターミナルからスクリプトに引数を渡す多くの方法の1つにすぎません。jupyterノートブックで実行しようとしたとき、明らかにそれはうまくいきませんでした関数内で次のようにパラメーターを直接置き換えるだけです。

funtion(batch_size=100, train_steps=1000)

これで、関数のパラメーターの長いリストがある場合は、*argsまたは**kargsを使用できます。

*argsタプルを関数のパラメーターとして渡します。この場合、特に次のようになります。

args = (100, 1000)
function(*args)

**kargs関数に引数として辞書を渡します。

args = {"batch_size": 100,
        "train_steps": 1000}
function(**args)

グーグルするだけで、両方を使用する方法についての非常に良い説明が見つかります。ここでは、これを研究するために使用した documentation です。

9
virtualdvid

やってみました :

conda install ipykernel --name Python3
python -m ipykernel install
0
An0n