pytorch笔记二
序列化
save
load
两个方法可以序列化存储对象到硬盘上做永久化存储
参数f
可以是类文件对象(自定义或者类似的第三方文件对象,实现了写入和刷新)
或者是字符串或者路径对象含有文件名的.pt
并发与分布式
get_num_threads
CPU并行计算的线程数量
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
函数有哪些差异。