3.1 加减乘除
加法 - add
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.randint(1,10,size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
t2 = t.add(t0,t1)
print('t2 :', t2, '\n')
t0 : tensor([[8, 5, 8, 8],
[3, 5, 2, 6],
[3, 7, 7, 5]])
t1 : tensor([[6, 1, 1, 6],
[3, 4, 2, 8],
[3, 3, 2, 9]])
t2 : tensor([[14, 6, 9, 14],
[ 6, 9, 4, 14],
[ 6, 10, 9, 14]])
sum = t0 + alpha*t1
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.ones(size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
t2 = t.add(t0,t1,alpha=3)
print('t2 :', t2, '\n')
t0 : tensor([[5, 5, 5, 7], [8, 5, 6, 9], [3, 3, 9, 6]])
t1 : tensor([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]])
t2 : tensor([[ 8, 8, 8, 10], [11, 8, 9, 12], [ 6, 6, 12, 9]])
与这个效果一样
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.ones(size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
t2 = t.add(t0,1,alpha=3) #<<<<<<< t1 --> 1
print('t2 :', t2, '\n')
加法结合乘法 - addcmul()
output = t0 + value x t1 x t2
语法 ts = t.addcmul(t0,value=2,tensor1=t1,tensor2=t2)
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.randint(1,10,size=(3,4))
t2 = t.randint(1,10,size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
print('t2 :', t2, '\n')
ts = t.addcmul(t0,value=2,tensor1=t1,tensor2=t2)
print('ts :', ts, '\n')
t0 : tensor([[1, 1, 7, 9], [3, 8, 7, 4], [4, 1, 2, 6]])
t1 : tensor([[4, 6, 5, 5], [5, 6, 8, 3], [1, 8, 6, 4]])
t2 : tensor([[4, 3, 7, 8], [3, 6, 6, 5], [4, 8, 5, 4]])
ts : tensor([[ 33, 37, 77, 89], [ 33, 80, 103, 34], [ 12, 129, 62, 38]])
加法结合除法 - addcdiv()
output = t0 + value x t1 / t2
语法 ts = t.addcdiv(t0,value=2,tensor1=t1,tensor2=t2)
import torch as t
t0 = t.randn(size=(3,4),dtype=t.float)
t1 = t.randn(size=(3,4),dtype=t.float)
t2 = t.randn(size=(3,4),dtype=t.float)
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
print('t2 :', t2, '\n')
ts = t.addcdiv(t0,value=2,tensor1=t1,tensor2=t2)
print('ts :', ts, '\n')
t0 : tensor([[-0.0131, -1.4668, 0.1647, 0.2856], [ 0.7442, -0.8059, 0.3785, -0.6320], [ 1.0198, 1.1876, -1.1679, 0.0637]])
t1 : tensor([[ 0.9938, 0.7138, -1.2564, 0.0882], [ 0.6521, 1.2313, 0.5641, 0.3282], [-0.3884, 1.0358, 0.7508, -0.4457]])
t2 : tensor([[-0.2492, 0.1901, -0.1678, 0.3419], [-0.2414, -0.8395, 0.4291, 0.8404], [ 0.3786, -1.1990, -0.1640, -0.3971]])
ts : tensor([[ -7.9878, 6.0448, 15.1387, 0.8015], [ -4.6586, -3.7393, 3.0079, 0.1490], [ -1.0322, -0.5401, -10.3267, 2.3084]])
-7.9878 = -0.0131 + 2 * 0.9938 / -0.2492
−0.0131+2×0.9938÷−0.2492=−7.989022953451043 , 误差是因为 print t0,..t2 不完整
减法 sub
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.ones(size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
t2 = t.sub(t0,t1,alpha=3)
print('t2 :', t2, '\n')
t0 : tensor([[6, 7, 7, 4],
[7, 4, 2, 1],
[3, 5, 7, 8]])
t1 : tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
t2 : tensor([[ 3., 4., 4., 1.],
[ 4., 1., -1., -2.],
[ 0., 2., 4., 5.]])
乘法 mul()
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.randint(1,10,size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
t2 = t.mul(t0,t1)
print('t2 :', t2, '\n')
t0 : tensor([[3, 3, 9, 8],
[2, 4, 7, 8],
[9, 5, 4, 6]])
t1 : tensor([[9, 6, 6, 4],
[9, 4, 7, 4],
[7, 1, 8, 8]])
t2 : tensor([[27, 18, 54, 32],
[18, 16, 49, 32],
[63, 5, 32, 48]])
import torch as t
t0 = t.randint(1,10,size=(3,4))
t1 = t.randint(1,10,size=(3,4))
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
t2 = t.mul(t0,3)
print('t2 :', t2, '\n')
t0 : tensor([[6, 5, 9, 1], [2, 8, 5, 9], [3, 4, 8, 7]])
t1 : tensor([[2, 9, 5, 7], [6, 2, 5, 5], [4, 1, 2, 8]])
t2 : tensor([[18, 15, 27, 3], [ 6, 24, 15, 27], [ 9, 12, 24, 21]])
除法 div()
import torch as t
t0 = t.randn(size=(3,4),dtype=t.float)
t1 = t.randn(size=(3,4),dtype=t.float)
print('t0 :', t0, '\n')
print('t1 :', t1, '\n')
ts = t.div(t0,t1)
print('ts :', ts, '\n')
t0 : tensor([[-1.6617, -0.5301, 0.5634, 0.1159],
[-1.3822, -1.2207, -0.0972, 0.4269],
[-0.1547, -0.3474, -0.4760, -1.8090]])
t1 : tensor([[ 0.2044, -1.5251, -1.4955, 0.0749],
[ 0.4626, 0.2249, 0.4656, -0.7232],
[-1.3094, -1.6005, -0.4334, -0.3464]])
ts : tensor([[-8.1284, 0.3476, -0.3767, 1.5480],
[-2.9878, -5.4288, -0.2088, -0.5904],
[ 0.1181, 0.2171, 1.0982, 5.2230]])
3.2 数学函数
import torch as t
t0 = t.randn(size=(1,3),dtype=t.float)
print('t0 :', t0, '\n')
ts = t.log(t0)
print('log :', ts, '\n')
ts = t.log10(t0)
print('log10 :', ts, '\n')
ts = t.log2(t0)
print('log2 :', ts, '\n')
ts = t.exp(t0)
print('exp :', ts, '\n')
ts = t.abs(t0)
print('abs :', ts, '\n')
ts = t.pow(2,t0) # 2 的次方
print('pow :', ts, '\n')
ts = t.cos(t0)
print('cos :', ts, '\n')
ts = t.sin(t0)
print('sin :', ts, '\n')
ts = t.tanh(t0)
print('tanh :', ts, '\n')
t0 : tensor([[-0.6627, 0.5164, 1.3497]])
log : tensor([[ nan, -0.6610, 0.2999]])
log10 : tensor([[ nan, -0.2871, 0.1302]])
log2 : tensor([[ nan, -0.9536, 0.4326]])
exp : tensor([[0.5155, 1.6759, 3.8562]])
abs : tensor([[0.6627, 0.5164, 1.3497]])
pow : tensor([[0.6317, 1.4303, 2.5485]])
cos : tensor([[0.7883, 0.8696, 0.2193]])
sin : tensor([[-0.6153, 0.4937, 0.9757]])
tanh : tensor([[-0.5802, 0.4749, 0.8740]])