在 jupyter notebook 中循环传入类似终端的命令的值

Posted

技术标签:

【中文标题】在 jupyter notebook 中循环传入类似终端的命令的值【英文标题】:in cycle pass in values for terminal-like command inside jupyter notebook 【发布时间】:2021-06-17 21:44:28 【问题描述】:

当我使用 argparse 运行一些脚本时,找不到在 jupyter notebook 中为类似终端的命令传递值的方法:

!python train.py --img 512 --batch 8 --epochs 40

需要使用不同的时期数值迭代运行该脚本:10,40,70,100。喜欢:

!python train.py --img 512 --batch 8 --epochs 10
!python train.py --img 512 --batch 8 --epochs 40
!python train.py --img 512 --batch 8 --epochs 70
!python train.py --img 512 --batch 8 --epochs 100 

【问题讨论】:

如果答案解决了您的问题,请记得接受并投票;) 【参考方案1】:

您可以将 python 变量传递给命令行环境 (!),并在其前面加上 $: 你也可以在 python 代码中运行命令行:

epochs = [10, 40, 70, 100]
for e in epochs:
    !echo $e

输出:

10
40
70
100

您的 jupyter 单元应如下所示:

epochs = [10, 40, 70, 100]
for e in epochs:
    !python train.py --img 512 --batch 8 --epochs $e

【讨论】:

以上是关于在 jupyter notebook 中循环传入类似终端的命令的值的主要内容,如果未能解决你的问题,请参考以下文章

在 jupyter/iPython notebook 脚本和类方法之间同步代码

Jupyter Notebook从同一目录中的python文件导入类

使用Jupyter Notebook在Python3中使用`exit`关键字做什么?

Jupyter Notebook - 在函数内绘图 - 未绘制图 [重复]

Jupyter Lab 在错误的路径中打开,与 Jupyter Notebook 不同,两者在“jupyter_notebook_config.py”中具有相同的映射。

深度学习之环境配置 jupyter notebook