经过两天的环境设置,我终于可以使用cmd运行premade_estimator.py了,我遵循了tensorflow tutorial

但当我试图在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)

我try 使用以下方法修复它,但没有成功:

pip install --ignore-installed --upgrade jupyter

pip install ipykernel
python -m ipykernel install

conda install notebook ipykernel
ipython kernelspec install-self

任何 idea 都将不胜感激!谢谢

推荐答案

我得到了它!我们之所以会出错,是因为这段代码使用了argparse,而这个模块用于编写用户友好的命令行界面,所以它似乎与Jupyter Notebook有冲突.

我在这page个问题中找到了解决方案:

我们要做的是:

删除或注释以下行:

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值作为参数的属性.

Update

在深入研究python这一年之后,我发现这个问题的解决方案要简单得多(我们不需要使用任何外部库或方法).argparse只是从终端向python脚本传递参数的多种方法之一.当我试图在jupyter笔记本上做这件事时,显然那是行不通的.我们可以直接在函数中替换如下参数:

funtion(batch_size=100, train_steps=1000)

现在,如果我们有一长串函数参数,我们可以使用*args**kargs.

*args在函数中传递一个元组作为参数,在这种情况下,尤其是:

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

**kargs将字典作为参数传递给函数:

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

只要在谷歌上搜索一下,你就会发现一个很好的解释,关于如何使用它们,这里是我用来研究这个的documentation.

Python-3.x相关问答推荐

如何在Python Matplotlib中在x轴上放置点

我正在try 从 10*3 矩阵中删除随机值并将其变为 10*2 矩阵

为什么 tkinter 在 tkinter 窗口外计算鼠标事件?

try 使用 GEKKO 求解非线性方程组.系统有多种解决方案,但 GEKKO 给出了错误的解决方案.我该如何解决?

在 python pandas 中设置条件和分配新值

通过点和线计算CV2 Homography

XPATH:使用 .find_elements_by_xpath 为未知数量的 xpath 输入值

使用大型多个数据集,其中每个数据集包含多个值 - Pytorch

将字典列表展平为数据框列

机器学习实验笔记本的工作区 url

从 h264 帧解析数据包时 PyAV 不一致

如何准确测定cv2的结果.在BW/黑白图像中查找对象?

python3源的类图查看器应用程序

如何从 Python 3.5 降级到 Python 3.4

ImportError:无法导入名称cross_validate

定义 True,如果没有定义,会导致语法错误

Python的max函数有多高效

为什么 TensorFlow 的 `tf.data` 包会减慢我的代码速度?

python - 使用 matplotlib 和 boto 将绘图从内存上传到 s3

使用 python 3.0 的 Numpy