pytorch笔记二
序列化
save
load两个方法可以序列化存储对象到硬盘上做永久化存储
参数f可以是类文件对象(自定义或者类似的第三方文件对象,实现了写入和刷新)
或者是字符串或者路径对象含有文件名的.pt
并发与分布式
get_num_threadsCPU并行计算的线程数量
set_num_threads上面的设置
数学运算
abs张量的每个元素求绝对值
ceil向上取整
floor向下取整
clamp将张量的元素截断到[min-max]区间上
trunc将张量截断到最接近的整数
acos求每个元素的反余弦
cos求每个元素的余弦
cosh求每个元素的双曲余弦
asin求每个元素反正弦
sin求每个元素的正弦
sinh求每个元素的双曲正弦
atan求每个元素的反正切
tan求每个元素的正切
tanh求每个元素的双曲正切
atan2 #card=math&code=out%20%3D%20atan2%28input1%2Finput2%29)
add张量元素逐个加上value标量
div 每个元素逐个除以value标量
mul每个元素逐个乘以value标量
exp 每个元素逐个计算
fmod计算余数 input除以divisor除数
frac返回分数部分(小数)
lerp对两个张量start end做插值 #card=math&code=out_i%20%3D%20start_i%20%2B%20weight%2A%28end_i-start_i%29)
log计算自然对数
log1p计算自然对数#card=math&code=out_i%20%3D%20log%28input_i%2B1%29)
neg元素取负
pow按照 exponent作为幂值来求指数
reciprocal求每个元素的倒数
remainder计算逐元素余数 和fmod差不多
round舍入到最近整数
rsqrt每个元素的平方根倒数
sqrt每个元素求平方
sigmoid计算每个元素sigmoid
sign计算每个元素正负 负数输出-1 正数输出1
addcdiv(tensor,value,tensor1,tensor2) 张量形状不需要匹配,但是元素数量必须一致。
addcmul和上面形式差不多#card=math&code=out%20%3D%20tensor%20%2B%20value%20%5Ctimes%20%28tensor2%20%5Cstar%20tebsor1%29)
维度减少的操作
cumprod dim上计算累计的乘积
cumsum dim上计算累计和
dist other计算输入和它的差的p范数 1绝对距离 2欧式距离
简单说就是两个张量差的范数指数和开范数方
mean求均值dim
median求中位数dim
mode求众数dim
std求标准差dim
var求方差dim
norm张量的范数幂指数和开范数方
prod 求连乘dim
sum求总和dim
比较操作
eq比较两个向量每个元素是否相等返回为0或者1的bytetensor
equal两个向量是否完全等值
ge张量a是否>=张量b
gt张量a是否>张量b
le 小于等于
lt小于
ne不等于
kthvalue dim上第k个最小值
max张量上的最大值 /dim,或者两个张量保留最大值
min 1.张量上所有元素的最小值 2.指定维度上张量最小值 3.两个张量保留最小值
sort进行升序排列,默认是按照最后一维
topk沿dim返回最大k个值
cross计算向量积
diag对角阵对角线转换
histc计算直方图
renorm计算 对张量进行规范化,如果元素小于最大范数值就不变动
trace对角线和
tril矩阵下三角
triu矩阵上三角
addbmm批量矩阵乘
%2B(%5Calpha*%5Csum(batch1_i%40batch2_i))#card=math&code=res%20%3D%20%28%5Cbeta%20%2A%20M%29%2B%28%5Calpha%2A%5Csum%28batch1_i%40batch2_i%29%29)
)#card=math&code=i%20%5Cin%280%2Cbatch.size%280%29%29)
addmm矩阵乘
%2B(%5Calpha*mat1%40mat2)#card=math&code=outt%20%3D%20%28%5Cbeta%2AM%29%2B%28%5Calpha%2Amat1%40mat2%29)
addmv矩阵和向量行相乘
%2B(%5Calpha*(mat%40vec))#card=math&code=out%20%3D%20%28%5Cbeta%2AM%29%2B%28%5Calpha%2A%28mat%40vec%29%29)
线代操作
addr(beta=1,mat,alpha=1,vec1,vec2)->tensor
对vec1和vec2做张量积操作,也就是向量张量积
%2B(%5Calpha*batch1_i%20%5Ctimes%20batch2_i)#card=math&code=res_i%20%3D%20%28%5Cbeta%2AM_i%29%2B%28%5Calpha%2Abatch1_i%20%5Ctimes%20batch2_i%29)
最后将矩阵加到结果上
baddbmm对两个batch1和batch2存储的矩阵进行批量矩阵乘的操作,mat最终会加到结果中,%2B(%5Calpha*batch1_i%20%5Ctimes%20batch2_i)#card=math&code=res_i%20%3D%20%28%5Cbeta%2AM_i%29%2B%28%5Calpha%2Abatch1_i%20%5Ctimes%20batch2_i%29)这个和前面的
addbmm函数有哪些差异。
