Jupyter自定义设置详解
今天专门花时间总结梳理一下jupyter的一些高级设置,jupyter我已经介绍过一次基本内容了,Setup and Linux | James Chen’s Blogs,尤其是如何在服务器运行jupyter并且在本地浏览器显示,简直是使用python进行机器学习、深度学习、大数据的工作者的巨大福音。作为一个重度python&jupyter使用者,我已经习惯于在jupyter上进行大量的实验以及一次性的小工作、作业,需要跑很久的代码才会在运行通过后用VSCode编辑一下提交上去跑。用jupyter写了很多脚本,尤其适合可视化、展示和教学。可以在我的GitHub找到很多用jupyter写的代码,事实上很多教程和实验大家也都习惯于jupyter做了,比如我在这篇Deep Learning Practice介绍的资源中就有大量用jupyter写的。
下面就讲一下jupyter的一些高级玩法。
自定义主题
https://github.com/dunovank/jupyter-themes
jupyter extension
相见恨晚,用着非常非常爽,强烈推荐
https://github.com/ipython-contrib/jupyter_contrib_nbextensions
1 |
pip install jupyter_contrib_nbextensions |
推荐使用的插件
table of contents
设置着很简单,找到后打个对勾就行了,效果很棒:
jupyter支持markdown,只需要将某个代码框选为markdown格式,使用table of contents插件,就会自动在左边栏生成目录。对于写的很长的代码,可以帮助整理思路,快速定位代码。大家用jupyter一般是做前期的各种各样的实验,思路可能比较发散,所以用table of contents可以帮忙梳理思路,也方便以后再寻找、理解代码
freeze
可以“冰冻”某个代码块,有个代码块儿暂时不再使用,就可以暂时冰冻,这样就无法运行,也不会被误删除。是个很有用的功能。
highlighter
可以高亮注释
Gist-it
Adds a button to publish the current notebook as a gist
Snippets menu
帮助懒人插入一些经典库的经典方法的代码块,感觉很不错哦,比去Stack Overflow搜要快一些~不过支持的还是比较少的。
Snippet:
强烈强烈推荐!感觉有望帮助节约不少写代码的时间
This extension adds a drop-down menu to the IPython toolbar that allows easy insertion of code snippet cells into the current notebook. The code snippets are defined in a JSON file in nbextensions/snippets/snippets.json and an example snippet is included with this extension
Snippets are specified by adding a new JSON block to the list of existing snippets in $(jupyter —data-dir)/nbextensions/snippets/snippets.json. (I put my customized json file in jupyter-notebooks directory in /Users/james/) For example, to add a new snippet that imports numpy, matplotlib, and a print statement, the JSON file should be modified。
先分别列一下各种情景下需要导入哪些库:
Basic science
1 |
import argparse, sys, os, errno |
Highlevel plot
1 |
import matplotlib.animation as animation |
Deeplearning keras
1 |
import keras |
Pytorch
1 |
import torch |
总结起来就是下面这样,注意语法别错,东西一多看着还是很头疼的,配置好就可以用了。
1 |
{ |
这个配置这里坑了我很久,主要是snippets不会显示错误信息,debug得很仔细一个一个找,因此花了很久发现是keras部分的几个破双引号冲突了,还有一个注释竟然也忘删了,折腾了很久才配置好。用sublime text是可以很容易发现语法错误的,可惜最开始没在意
本地的snippets.json在:
1 |
/Users/james/Library/Jupyter/nbextensions/snippets/snippets.json |
我在james目录下也放了一份,因为最近估计需要不断更新完善,所以就放一份在:
1 |
/Users/james/snippets.json |
每次修改后,需要同步到本地以及ibme、cnode、hpc1几个机器上面,这样不用我几个地方都各自改一遍,费事。
首先找到各个机器上的json文件在哪儿
1 |
$(jupyter --data-dir)/nbextensions/snippets/snippets.json |
然后写个同步的脚本syncsnip.sh
1 |
cp /Users/james/snippets.json /Users/james/Library/Jupyter/nbextensions/snippets/snippets.json |
然后做个同步快捷方式:
1 |
alias snip='bash syncsnip.sh' |
测试几个机器的配置均通过
配置好了还是很美的:
jupyter dashboard
看起来是可以进一步帮助展示的利器
1 |
pip install jupyter_dashboards |
不过用了一下,过分自动化的布局反而限制的比较死,,不太好看
hide input
不显示code,只显示output,适合展示时用。
ipywidgets interactive coding
使用专为jupyter设计的ipywidgets,可以更好地展示、调整代码,尤其适合运行较快、有较多参数需要探索、选取的场合,比如绘图
以使用python的seaborn绘制boxplot为例,我们有多个参数待选,比如:
- context & style 可以设置不同的背景和字体风格
- width & height 设置图片的宽和高
- boxplot/violinplot 使用传统的box表示还是用可以同时表示点的分布密度的violinplot表示
- showdot & showbox 可以选择是否显示点,以及是否显示box,或者同时都显示、都不显示
- fondsize & dotsize,分别调整文字大小和点的大小
- boxwidth 调整box和violin的宽度
- ylim 调整纵坐标的最大与最小值
- compareheight* 调整几个注释文字距离box顶点的高度
- palettesind 选择第几套配色方案
- saturation 调整色彩饱和度
可以看到python的绘图函数一般都留有很大的调整空间,可选参数较多,可以组合出很多效果,但是也给调整带来了很多麻烦。如果把这些参数都传入绘图函数中,每次调整其中的一个或几个,依照经验来调整,效率就比较低。这个时候就可以考虑使用ipywidgets方便地调整这些参数。通过ipywidgets,可以把这些控制浮点型、整型或字符串控制参数用Float、Int slider、Dropdown,RadioButtion等控制,不需要每次更改参数再运行代码框,可以快速地调整出自己想要的图像。
效果如下:
一份示例代码plots_roc.ipynb放在了something more
Jupyter自定义设置详解的更多相关文章
- 绘制基本图形和线型(StrokeStyle)的设置详解
绘制基本图形和线型(StrokeStyle)的设置详解 目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网 ...
- loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解
运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...
- Android 自定义 View 详解
View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Andro ...
- Mac OS 网络设置教程 wifi设置与宽带设置详解
虽然所有设备连接无线网络的步骤都相差无几,但是Mac与windows系统还是不相同的,那么,苹果Mac怎么连接无线网络呢?针对此问题,本文就为大家介绍Mac网络的设置教程,有兴趣的朋友们可以了解下.如 ...
- 【转】Eclipse Java注释模板设置详解
Eclipse Java注释模板设置详解 设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后 ...
- Win7 NFS 设置详解 | X-Space
Win7 NFS 设置详解 | X-Space Win7 NFS 设置详解
- [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
[转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/st ...
- fiddler软件测试——Fiddler抓取https设置详解(图文)(摘抄)
随笔- 8 文章- 0 评论- 0 fiddler软件测试——Fiddler抓取https设置详解(图文) 强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)转 本文主要说 ...
- fiddler软件测试——Fiddler抓取https设置详解(图文)
强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)转 本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各 ...
随机推荐
- 蓝桥杯 传球游戏(dp)
Description 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始 ...
- angular 父子组件传值 用get set 访问器设置默认值
private _PLACEHOLDER: string; @Input() public set placeholder(v: string) { this._PLACEHOLDER = v; } ...
- SQL服务器攻击总结-注入
查库选择convert(int,db_name())sysobjects 查当前表id,从sysobjects中选择id,xtype ='u'//此处要记录下数据库的id syscolumns查表对应 ...
- Opencv笔记(四)——绘图函数
常用的绘图函数有: cv2.line() cv2.circle() cv2.rectangle() cv2.ellipse() cv2.putText( ...
- django,模板继承常用标签和规则
一.定义基础模板 在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分{% block title %}一些内容,这里可不填{% endblock %} ...
- LeetCode No.121,122,123
No.121 MaxProfit 买卖股票的最佳时机 题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你 ...
- 回归分析|r^2|Se|变差|多重相关系数|决定系数|多重共线性|容忍度|VIF|forward selection|backward elimination|stepwise regression procedure|best-subset approach|回归方程的置信区间|预测区间|残差分析|虚拟变量
应用统计学-回归分析 拟合度使用r^2和Se来检验. 显著性检验中,对于线性model使用ANOVA,对于单独的回归系数使用t检验. 最小二乘法.贝叶斯和最大似然都可用于求回归参数,最小二乘法是最小化 ...
- Android drawable 加载效果
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:ones ...
- AI入门:人工神经网络理解及BP神经网络
本人是个菜鸟,对于机器学习还没入门,但是我去看到了一个作者写的文章,个人感觉是神经网络入门的好帮手,在此推荐给大家,支持原著! https://baijiahao.baidu.com/s?id=160 ...
- Java调用net的webservice故障排除实战分享
转载地址:http://blog.sina.com.cn/s/blog_4c925dca01014y3r.html 前几天公司要接入国外公司的一个业务功能,对方是提供的net产生的webservice ...