linux使用基础
软连接创建软连接: ln -s <source> <symbolic link>删除软连接: rm/unlink <symbolic link>参考:
How to Remove Symbolic Link in Linux with Example
软连接、硬链接的区别参考:
理解 Linux 的硬链接与软链接
linux中的文件都分成两部分:user data, meta data
文件的inode号才是linux系统查找文件用的。
在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。
硬链接:若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名。硬链接可由命令 link 或 ln 创建。其特点是:
文件有相同的 inode 及 data block
删除一个硬链接文件并不影响其他有相 ...
服务器Slurm的使用
Slurm服务器的常用概念Quick Start User Guide
--ntasks 对应 进程(Process),即设定脚本在几个并行任务中 同时执行。可以进一步更改--ntasks-per-node来设定每个node的进程数。默认是一个node的每一个task一个进程
--cpus-per-task (-c)实际设定的是 线程(Thread)数
task:即 process ,进程,通过设定 --ntasks 即设定了pytorch中的 world size
tasks:任务数,单个作业(job)或作业步(job step)可有多个任务,一般一个任务需一个CPU核,可理解为所需的CPU核数。
job: 即在一段时间内分配给一个用户的资源。一条srun指令或者一条salloc + shell 文件 或者一个sbatch指令就是 一个job
job steps:每一个job中可以有子命令,即step。最直观的例子,就是多线程应用,在shell文件中有 多条srun语句, 则每一条srun语句都对应一个step。
下面的例子中,可以看到-n指定tasks对sbatc ...
pycharm
IdeaVim实用查询网址:IdeaVim键位查询
z系列:折叠相关g系列:查找相关(查找reference,usage等等)常用命令
左右移动: b, ge/ w
查找定义: K
查找使用:gd(当前函数中的定义),gD(当前文件中的定义)
代码折叠:zc
代码折叠打开:zo
所有代码折叠:zM
所有代码折叠都打开: zR
大小写W w E e B b的区别默认的小写把各种标点符号作为分隔,而大写则是把space作为分隔,因此大写应该是比较常用的
What is difference between w and W in escape mode of vim?
w jump by start of words (punctuation considered words)
W jump by words (spaces separate words)
e jump to end of words (punctuation considered words)
E jump to end of words (no punctuation)
multiple ...
jupyter lab配置教程
参考:
服务器集成anaconda安装jupyter-notebook
JUPYTERLAB 的安装与配置
安装直接通过conda安装即可
conda install jupyter-lab
配置1. 先生成配置文件jupyter lab --generate-config
2. 修改password在本地/home/xxx/.jupyter/jupyter_notebook_config.py,打开这个py文件
c.NotebookApp.ip = '*' # 允许访问此服务器的 IP,星号表示任意 IP
c.NotebookApp.password = u'sha1:xxx:xxx' # 之前生成的密码 hash 字串
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 12035 # 使用的端口,随意设置
c.NotebookApp.enable_mathjax = True # 启用 MathJax
c.NotebookApp.allow_re ...
CloudAtCost服务器搭建
CentOS6/7
首先安装依赖:unzip, zip, gcc, wget, curlyum install gcc wget curl
yum install zip unzip
yum install -y git
还要注意安装yum utils参考 yum中途中断There are unfinished transactions remaining. You might consider running yum-complete-tra)
yum install yum-utils
yum clean all
yum-complete-transaction –cleanup-only
安装魔改bbr参考Linux NetSpeed
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
chmod +x tcp.sh
./tcp.sh
然后安装v2ray(包括了Shadowsocks)参考
V2 ...
sklearn使用
equal percentage切分数据集(Cross-Validation)sklearn.model_selection.StratifiedKFold
单纯的按比例切分,能够保证不重复的folds
sklearn.model_selection.StratifiedShuffleSplit
StratifiedKFold与RandomSplit的结合,因此 无法保证所有folds都不一样
sklearn.model_selection.ShuffleSplit
单纯的随机切分
sklearn.model_selection.RepeatedStratifiedKFold
fold中的元素允许重复,但是仍旧是保证各个fold都互不相同
pytorch中的Dataloader与Sampler(以及collate_fn)
参考:
Pytorch中的数据加载艺术
pytorch之dataloader深入剖析
DataLoader
支持两种类型的Dataset:
Map-Style :torch.utils.data.Dataset
Iteratable: torch.utils.data.IterableDataset
前者需要重点实现__len__以及__getitem__,后者重点实现__iter__(注意应该 返回一个迭代器)
可通过Sampler和BatchSampler定制输出的结果
Sampler:
与shuffle冲突,本质上就是确定 batch从什么样的indices list中得到,当对Sampler进行赋值后,默认的batch抽取顺序是按照Sampler的__iter__返回的indices list 按顺序逐个抽取,直至达到一个batch size或者遍历完所有元素
BatchSampler:
对比Sampler更进一步,当指定了之后,和sampler, batch_size, shuffle等参数都冲突。最终Dataloader的返回,是按照BatchSampler的 ...
pythons生成器(generator)、yield的理解
参考:
python中yield的用法详解——最简单,最清晰的解释
Python 中的黑暗角落(一):理解 yield 关键字
What does the “yield” keyword do? 推荐这个,第一个回答说的很清楚
Python Generator yield的部分说的很清楚
生成器Generator特点
生成的时候不会计算内部的值,而是在调用next() 的时候才会计算一次
只能读取一次(read once),再次调用需要重新生成(通过itertools或者再次调用生成器)
没有next(),需要用next(generator)来读取下一个值
为什幺要用生成器:节省空间,特别是对于一个很大list来说,完全算完可能时间要好久或者内存不足。此时用生成器就可以逐个迭代出来,节省内存。
使用
先得到一个生成器,然后再next(逐个调用)
gen = generator(...) #some function or class that returns a generator
while true:
try:
next(gen)
'''
...
DGL使用基础
Builtin message passing functions
message function只能用在arguments里面明确指出了message_func的函数中,因此若把一个builtin message function作为apply_node的arguments会报错:
func = fn.u_add_v('nf','t','e')
g.apply_nodes(func)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-16-629bfb5541ce> in <module>
----> 1 g.apply_nodes(func)
~/.conda/envs/ptpy_3/lib/python3.6 ...
attention机制
参考:
Attention算法调研(四) —— 视觉应用中的Soft Attention
Attention机制详解(二)——Self-Attention与Transformer
模型汇总24 - 深度学习中Attention Mechanism详细介绍:原理、分类及应用
Attention? Attention! 这篇相当详细,值得参考
详解注意力机制(Attention)——Global/Local/Self Attention
Attention机制论文阅读——global attention和local attention