Noonisy
Do U Know(2022-11-20)
2022-11-20
阅读:257

DO U KNOW?


1.为什么Pre Norm的效果不如Post Norm?
$$ \begin{align} \text{Pre Norm: } \quad \boldsymbol{x}_{t+1} = \boldsymbol{x}_t + F_t(\text{Norm}(\boldsymbol{x}_t))\\ \text{Post Norm: }\quad \boldsymbol{x}_{t+1} = \text{Norm}(\boldsymbol{x}_t + F_t(\boldsymbol{x}_t)) \end{align} $$
总结:$Pre\ Norm$ 结构无形地增加了模型的宽度而降低了模型的深度;$Post\ Norm$ 结构则是每次 $Norm$ 都削弱一次 $Identity\ Mapping$ 的权重,所以更突出残差分支,因此 $Post\ Norm$ 中的层数足够“深”,训练后效果更好

2.tensorboard
安装:pip install tensorboard
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter(log_dir='tensorboard_logs/name')
writer.add_scalar('data/train_loss', train_loss, e)
writer.close()
3.tensor与numpy相互转换
# tensor to numpy
tensor_a.numpy()

# numpy to tensor
torch.from_numpy(numpy_b)
4.GPU相关
(1)查看显卡信息
nvidia-smi
gpustat
使用pytorch
torch.cuda.is_available()       # 查看GPU是否可用,正常情况下输出为True
torch.cuda.device_count()       # 查看GPU数目
torch.cuda.current_device()     # 查看当前GPU索引号,索引号从0开始
torch.cuda.get_device_name(i)   # 根据索引号查看GPU名字
5.python相关
内置函数
5.1 输入二元组形式(x//y, x%y)
divmod(x, y)
5.2 对x四舍五入,保留ndigits位小数
round(x[, ndigits])
5.3 生成一个复数,re表示实数部分,im表示虚数部分
complex(re[, im])
5.4 返回的是字符串的副本,并删除前导和后缀字符,例如:b = a.strip()
strip()
5.5
str.split(str="", num=string.count(str))
# str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等
# num -- 分割次数。默认为 -1, 即分隔所有
6.文件操作
6.1 glob模块
返回指定目录下指定格式的所有文件路径组成的列表
from glob import glob
files_path = glob(os.path.join(dir, '*.npz')
6.2 返回指定文件路径中的文件名
import os
files_name = os.path.basename(file_path)
6.3 返回指定目录下的所有文件的文件名组成的列表
import os
files_name = os.listdir(dir)
6.4 返回文件名中前缀(即文件名中除去文件类型的部分)
import re
file_name_prefix = re.findall(r'(.+?)\.', basename)[0]
$\ $

参考

最后编辑于:2022 年 12 月 01 日 22:54
邮箱格式错误
网址请用http://或https://开头