jupyter notebook参数化运行python方式


Posted in Python onApril 10, 2020

Updates

(2019.8.14 19:53)吃饭前用这个方法实战了一下,吃完回来一看好像不太行:跑完一组参数之后,到跑下一组参数时好像没有释放之占用的 GPU,于是 notebook 上的结果,后面好几条都报错说 cuda out of memory。

现在改成:将 notebook 中的代码写在一个 python 文件中,然后用命令行运行这个文件,比如:

# autorun.py
import os
# print(os.getcwd())

over = [ # 之前手工改参数跑完的参数组合
 [0, 1, 1], [0, 1, 2], [0, 1, 3],
 [0, 2, 1],
 [1, 0, 1],
 [1, 2, 1]
]

for alpha in range(1, 4, 1):
 for beta in range(3):
  for gamma in range(3):
   if [alpha, beta, gamma] in over:
    continue
   os.system(f'python main.py --alpha {alpha} --beta {beta} --gamma {gamma}')

这里的 main.py 是训练用的主文件。改在 py 里用 os.system 跑,希望跑一组参数之后完会自动释放资源再跑下一组(?)

Notes

有多组参数组合需要尝试,不想每组参数都人工修改 python 代码,再在 notebook 中 %run 它。

python 参数通过的 argparse 接收,在 notebook 中写个多重循环遍历参数组合传给 python 程序自动运行。

记录一个简例。

Codes

test_dir
|- test.py
|- test.ipynb

in py file

# test.py
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--number', type=int, default=0, help='number')
parser.add_argument('--string', type=str, default='abc', help='string')
args = parser.parse_args()

print('number:', args.number, type(args.number))
print('string:', args.string, type(args.string))

in notebook

注意传参数时 $ 的使用

# test.ipynb
for i in range(3):
 for s in ('a', 'b', 'c'):
  %run test.py --number $i --string $s

补充知识:Jupyter Notebook出现kernel error FileNotFoundError: [WinError 2] 系统找不到指定的文件

Jupyter Notebook出现kernel error

jupyter notebook参数化运行python方式

conda create -n py36 --clone root

当时用Anaconda克隆本地的环境root到自己创建的py36环境,由于克隆完成后我又更改了虚拟环境名称,所以导致启动

jupyter notebook 进入文件是不能找到连接文件。

File”//anaconda/lib/python2.7/site-packages/jupyter_client/manager.py”, line 190, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File “//anaconda/lib/python2.7/site-packages/jupyter_client/launcher.py”, line 123, in launch_kernel
proc = Popen(cmd, **kwargs)
File “//anaconda/lib/python2.7/subprocess.py”, line 710, in init
errread, errwrite)
File “//anaconda/lib/python2.7/subprocess.py”, line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or director

解决办法

首先在cmd 使用jupyter kernelspec list查看安装的内核和位置

进入安装内核目录打开kernel.jason文件,查看Python编译器的路径是否正确

jupyter notebook参数化运行python方式

如果不正确python -m ipykernel install --user重新安装内核,如果有多个内核,如果你使用conda create -n python2 python=2,为Python2.7设置conda变量,那么在anacoda下使用activate pyhton2切换python环境,重新使用python -m ipykernel install --user安装内核.(通用情况)

或者直接进入kernel.json里更改py36(这是属于我的情况)

重启jupyter notebook即可。

以上这篇jupyter notebook参数化运行python方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现多行注释的另类方法
Aug 22 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
Python基础练习之用户登录实现代码分享
Nov 08 Python
快速了解Python中的装饰器
Jan 11 Python
python中logging包的使用总结
Feb 28 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
对Python3 序列解包详解
Feb 16 Python
python读写csv文件方法详细总结
Jul 05 Python
python opencv实现gif图片分解的示例代码
Dec 13 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
用Python简陋模拟n阶魔方
Apr 17 Python
Python库skimage绘制二值图像代码实例
Apr 10 #Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 #Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 #Python
Python批量安装卸载1000个apk的方法
Apr 10 #Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 #Python
Selenium常见异常解析及解决方案示范
Apr 10 #Python
pandas分组聚合详解
Apr 10 #Python
You might like
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
Python解析nginx日志文件
2015/05/11 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
python用requests实现http请求代码实例
2019/10/31 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
优秀员工年终发言演讲稿
2014/01/01 职场文书
公司企业表扬信
2014/01/11 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
今日说法观后感
2015/06/08 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL