pytorch 梳理
unsqueeze增加维度,unsqueeze(1)在第二维增加一个维度。 squeeze压缩维度,只有目标维度大小唯一时可压缩
m.expand(args) 扩展维度 args后几维必须与m的维度一致, 前面剩余参数 从右至左 依次复制增加到目标维度
tensor.repeat( size) : size参数从左往右 复制扩展成对应份 包裹当前维,再依次处理外维
ts.masked_fill_(mask,value):在 mask 值为1/true 的地方, 用value填充。注意ts与mask尺寸相同
nn.Model
# 如何查看模型参数,3种方式
model.state_dict()
for name, param in model.named_parameters():
for param in model.parameters():
nn.Softmax(dim):进行归一化的维度,-1选取最后一维
word_embedding:通过所给词典计算每个词的独特向量(nn.Embedding(词典长度 ,维度),均值为0 , 方差为1)在后续计算中都会被缓存,除非重新生成nn.Embedding
.matmul(t1 , t2):返回 t1* t2转置
sh run.sh IP:nums
gpus:使用哪几张GPU卡
num_nodes:使用哪几台机器
world_size= expr $num_gpus * $num_nodes 总共多少张卡
当num_nodes不为1时
需要手动启动 num_nodes 台机器,
如: sh run.sh IP 0 sh run.sh 1 , 启动完后会自动计算 world_size 是否符合设置,否则超时报错
DDP模式:多机(由Python GIL:全局解释器锁原理,每台机器一个进程)多卡,不同机器间:ring-reduce后向计算
DP:多卡下,一个master卡,汇总并计算其它卡的数据(DDP下num_nodes=1 实际效果等同DP)