jupyter notebook
jupyter notebook使用:https://zhuanlan.zhihu.com/p/32320214
在jupyter notebook中,可直接调用arr.dtype
arr.shape
显示np相应的属性
from tqdm.notebook import tqdm
tqdm中简单一行的进度条
整体缩进
1.选中要缩进的代码。
2.按Tab键,这样就可以实现整体缩进了。(Shift+Tab是向前缩进)。
py文件运行
在jupyter notebook中,运行 %run name.py
命令行
%
和!
都用于命令行操作,区别在于:
!
开一个新的progress,执行完之后立即终止;provided by the Jupyter%
的操作会持续;provided by the IPython kernel
%load_ext autoreload
%autoreload 2
# 在执行用户代码之前重新加载模块的 IPython 扩展。
# autoreload在输入执行在 IPython 提示符下键入的代码之前自动重新加载模块。
# 这使得例如以下工作流程成为可能:
%load_ext autoreload
%autoreload 2
from foo import some_function
some_function()
Out[4]: 42
# open foo.py in an editor and change some_function to return 43
some_function()
Out[6]: 43
# 模块在没有显式重新加载的情况下被重新加载,并且导入的对象也被更新。
%autoreload 0 # 禁用自动重新加载。
%autoreload 1 # 每次执行键入的 Python 代码之前,重新加载所有使用 %aimport 导入的模块。
%autoreload 2 # 每次执行键入的 Python 代码之前,重新加载所有模块(%aimport排除的模块除外)。
%aimport # 列出要自动导入或不导入的模块。
%aimport foo # Import module ‘foo’ and mark it to be autoreloaded for %autoreload 1
%aimport -foo # Mark module ‘foo’ to not be autoreloaded.
使用argparse模块

jupyter notebook训练的话
可能会把中间结果全保留,需要使用torch.cuda.empty_cache()
pycharm
注释:Ctrl+/
取消注释:Ctrl+/
ctrl+左键就会跳到函数定义处,还有查找函数在哪里使用的
鼠标中键Find Usages
把光标放在要查询的对象上,打开视图菜单,quick definition查看对象的定义,quick documentation 快速文档,这个是jet brains自己对python的解释文档,第三个external documentation 外部文档,这个是python 的官方帮助文档,调转到网页帮助文档中。
在Run/Debug Configurations中,Parameters传入参数:
Environment variables传入环境变量:
PyCharm中Python代码提示:Shadows name from outer scope
函数内部的变量,如果和函数被调用的外部的变量一样的话,就被PyCharm中叫做shadows name
这样的话,容易引发不容易觉察到的,由于函数内部和外部的变量名一致而引发的一些问题:
比如:内部函数名引用时不小心写错了时,就会导致其实调用了外部变量名,从而导致逻辑错乱。
所以解决办法是:
确保函数内部和外部的变量名不要重复,这样就不会导致可能由此导致的错误了。
配置python编译器
notepad++
编辑->行操作->删除空行,可以一键去除空行
VSCode
远程连接过程试图写入的管道不存在
打开本地的Known_hosts,将对应的要连接的服务器的记录删掉,再重连就可以了
ALT+左键,后退;ALT+右键,前进。
空格和Tab不能混用,否则会报错,红色的波浪下划线
解决vscode 获取扩展失败,XHR failed
使用代理的问题,把vpn关掉就行了
vscode调试
launch.json
配置调试环境:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
"program": "${file}",# 假设是python tools/run.py,那么program就是指的tools/runpy
"console": "integratedTerminal",
# 执行python文件的命令函参数
"args": [
"--num-steps", "48320",
"--help-info", "替换为dce"
],
# 设置当前工作目录为当前目录
#"cwd":""
#
"cwd": "${fileDirname}"# 设置当前的工作目录
}
]
}
在一侧的监视:
可以设置要监视的变量
在vscode中,命令行操作输入部分后按Tab可以自动补全文件名
调试ddp分布式代码
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
# 设置使用torch分布式包中的launch.py文件来作为启动脚本
"program": "/home/dch/anaconda3/lib/python3.8/site-packages/torch/distributed/launch.py",
"console": "integratedTerminal",
"args": [
"--nproc_per_node=2",
"/home/dch/ProCA/train_src.py",
"-cfg", "configs/gta5/deeplabv2_r101_src.yaml"
],
"cwd": "${fileDirname}"
}
]
}