《PyTorch深度学习实践》

文章目录

    • 1.线性模型
    • 2.梯度下降算法
    • 3.反向传播
      • 3.1原理
      • 3.2Tensor in PyTorch
    • 4.用PyTorch实现线性模型

1.线性模型

2.梯度下降算法

在这里插入图片描述
在这里插入图片描述

# 梯度下降

x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]

w = 3.0

def forward(x):
    return x*w


# 损失函数
def cost(xs,ys):
    cost = 0
    for x,y in zip(xs,ys):
        y_pred = forward(x)
        cost += (y_pred - y) ** 2
    return cost / len(xs)

# 计算梯度(求导)
def gradient(xs,ys):
    grad = 0
    for x,y in zip(xs,ys):
        grad += 2*x*(x*w-y)
    return grad / len(xs)

print('Predict(before training)',4,forward(4))

loss_list = []
# 学习过程
for epoch in range(100):
    cost_val = cost(x_data, y_data)
    loss_list.append(cost_val)
    grad_val = gradient(x_data,y_data)
    w -= 0.01 * grad_val
    print('Epoch:',epoch,'w=',w,'loss=',cost_val)
    
print('Predict(after training)',4,forward(4))

plt.plot(range(len(loss_list)), loss_list)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Loss Function')
plt.show()

print('w=',w)

在这里插入图片描述
随机梯度下降:
在这里插入图片描述
随机梯度下降从n个数据中随机选择一个,
更新公式为:单个样本损失函数对权重求导,进行更新。
有可能可以解决鞍点问题
在这里插入图片描述

code:

# 随机梯度下降(SGD)

x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]

w = 3.0

def forward(x):
    return x*w


# 损失函数
def loss(xs,ys):
    y_pred = forward(x)
    return (y_pred - y) ** 2

def gradient(xs,ys):
    return 2*x*(x*w-y)

print('Predict(before training)',4,forward(4))

l_list = []

for epoch in range(100):
    for x,y in zip(x_data,y_data):
        grad = gradient(x,y)
        w = w - 0.01 * grad
        print("\tgrad:",x,y,grad)
        l = loss(x,y)
        l_list.append(l)
    
print('Predict(after training)',4,forward(4))

plt.plot(range(len(l_list)), l_list)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Loss Function')
plt.show()

print('w=',w)

在这里插入图片描述
但是随机梯度下降性能比较低(无法并行)
采用梯度下降(整个数据集都用上,但是最优值有可能没有随机梯度下降好)
所以我们采用折中的方式,采用mini-batch梯度下降,若干个一组去求梯度。
在这里插入图片描述

3.反向传播

3.1原理

当网络比较复杂时,在向上面一样写解析式就会比较复杂,难以实现。
BP:将网络看作一个图,在图上传播梯度,然后根据链式法则求导,求出最终需要的导数。
在这里插入图片描述
从上图可以看出经过不断地线性变换,最终不管神经网络有多少层,最终都会统一成右边的形式。所以神经网络层数多少并没有什么本质区别。
所以对每一层的输出加一层非线性变换函数。在这里插入图片描述
前向传播+反向传播:
在这里插入图片描述

example:f=x*w,x=2,w=3
在这里插入图片描述
绿色框为函数计算模块,可以计算局部梯度

完整的计算图分析如下:
在这里插入图片描述

3.2Tensor in PyTorch

在这里插入图片描述
code:

import torch
import matplotlib.pyplot as plt
# y = x * w

x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]

w = torch.Tensor([1.0])  # 初始化权重
w.requires_grad = True  # 需要计算梯度

 
def forward(x):
    return x * w  #返回tensor对象

def loss(x,y):
    y_pred = forward(x)
    return (y_pred - y) ** 2

print('Predict(before training)',4,forward(4).item())

l_list = []
# 需要获取梯度的数值时,可以使用w.grad.item();
# 需要对梯度进行操作、使用其他PyTorch函数或者与其他张量进行运算时,可以使用w.grad.data

for epoch in range(100):
    for x,y in zip(x_data,y_data):
        l = loss(x,y)
        l_list.append(l.item())
        l.backward()
        print('\tgrad:',x,y,w.grad.item())
        w.data = w.data - 0.01 * w.grad.data
        
        w.grad.data.zero_()
    print("progress:",epoch,l.item())
    
    
print('Predict(after training)',4,forward(4).item())

plt.plot(range(len(l_list)), l_list)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Loss Function')
plt.show()

Predict(before training) 4 12.0
grad: 1.0 2.0 2.0
grad: 2.0 4.0 7.84
grad: 3.0 6.0 16.228800000000003
grad: 1.0 2.0 1.478624
grad: 2.0 4.0 5.796206080000001
grad: 3.0 6.0 11.998146585600002
grad: 1.0 2.0 1.093164466688
grad: 2.0 4.0 4.285204709416959
grad: 3.0 6.0 8.870373748493105
grad: 1.0 2.0 0.808189608196038
grad: 2.0 4.0 3.1681032641284688
grad: 3.0 6.0 6.557973756745934
grad: 1.0 2.0 0.5975042756146296
grad: 2.0 4.0 2.3422167604093467
grad: 3.0 6.0 4.8483886940473475
grad: 1.0 2.0 0.4417420810132029
grad: 2.0 4.0 1.731628957571754
grad: 3.0 6.0 3.5844719421735274
grad: 1.0 2.0 0.3265852213980329
grad: 2.0 4.0 1.2802140678802907
grad: 3.0 6.0 2.6500431205121995
grad: 1.0 2.0 0.241448373202223
grad: 2.0 4.0 0.9464776229527132
grad: 3.0 6.0 1.9592086795121144
grad: 1.0 2.0 0.17850567968888154
grad: 2.0 4.0 0.699742264380415
grad: 3.0 6.0 1.44846648726746
grad: 1.0 2.0 0.13197139106214628
grad: 2.0 4.0 0.5173278529636143
grad: 3.0 6.0 1.070868655634678
grad: 1.0 2.0 0.09756803306893769
grad: 2.0 4.0 0.38246668963023467
grad: 3.0 6.0 0.7917060475345838
grad: 1.0 2.0 0.07213321766426173
grad: 2.0 4.0 0.28276221324390605
grad: 3.0 6.0 0.5853177814148793
grad: 1.0 2.0 0.05332895341780031
grad: 2.0 4.0 0.20904949739777834
grad: 3.0 6.0 0.4327324596134048
grad: 1.0 2.0 0.03942673520922124
grad: 2.0 4.0 0.15455280202014876
grad: 3.0 6.0 0.3199243001817109
grad: 1.0 2.0 0.029148658460999677
grad: 2.0 4.0 0.1142627411671171
grad: 3.0 6.0 0.23652387421593346
grad: 1.0 2.0 0.02154995298411766
grad: 2.0 4.0 0.08447581569773988
grad: 3.0 6.0 0.17486493849431994
grad: 1.0 2.0 0.015932138840593524
grad: 2.0 4.0 0.06245398425512505
grad: 3.0 6.0 0.12927974740810555
grad: 1.0 2.0 0.011778821430517006
grad: 2.0 4.0 0.0461729800076256
grad: 3.0 6.0 0.09557806861577944
grad: 1.0 2.0 0.00870822402943805
grad: 2.0 4.0 0.034136238195397794
grad: 3.0 6.0 0.0706620130644744
grad: 1.0 2.0 0.0064380945236521825
grad: 2.0 4.0 0.02523733053271826
grad: 3.0 6.0 0.052241274202728505
grad: 1.0 2.0 0.004759760538470381
grad: 2.0 4.0 0.01865826131080439
grad: 3.0 6.0 0.03862260091336189
grad: 1.0 2.0 0.0035189480832178432
grad: 2.0 4.0 0.013794276486212453
grad: 3.0 6.0 0.028554152326460525
grad: 1.0 2.0 0.002601600545299121
grad: 2.0 4.0 0.010198274137572128
grad: 3.0 6.0 0.02111042746477665
grad: 1.0 2.0 0.0019233945023460208
grad: 2.0 4.0 0.007539706449197325
grad: 3.0 6.0 0.01560719234984198
grad: 1.0 2.0 0.0014219886363191492
grad: 2.0 4.0 0.0055741954543719885
grad: 3.0 6.0 0.011538584590550016
grad: 1.0 2.0 0.001051293262694486
grad: 2.0 4.0 0.004121069589761106
grad: 3.0 6.0 0.008530614050808794
grad: 1.0 2.0 0.0007772337246292338
grad: 2.0 4.0 0.0030467562005469517
grad: 3.0 6.0 0.006306785335137732
grad: 1.0 2.0 0.0005746182194235061
grad: 2.0 4.0 0.002252503420141494
grad: 3.0 6.0 0.004662682079690228
grad: 1.0 2.0 0.0004248221450389167
grad: 2.0 4.0 0.0016653028085542587
grad: 3.0 6.0 0.0034471768137098735
grad: 1.0 2.0 0.0003140761096931399
grad: 2.0 4.0 0.0012311783499967532
grad: 3.0 6.0 0.0025485391844988214
grad: 1.0 2.0 0.00023220023680980972
grad: 2.0 4.0 0.0009102249282939567
grad: 3.0 6.0 0.0018841656015720076
grad: 1.0 2.0 0.000171668421476312
grad: 2.0 4.0 0.000672940212187001
grad: 3.0 6.0 0.001392986239231675
grad: 1.0 2.0 0.00012691652401830567
grad: 2.0 4.0 0.0004975127741531082
grad: 3.0 6.0 0.0010298514425031158
grad: 1.0 2.0 9.383090920511705e-05
grad: 2.0 4.0 0.0003678171640828509
grad: 3.0 6.0 0.0007613815296476645
grad: 1.0 2.0 6.937031714571162e-05
grad: 2.0 4.0 0.0002719316432120422
grad: 3.0 6.0 0.0005628985014531906
grad: 1.0 2.0 5.1286307909848006e-05
grad: 2.0 4.0 0.00020104232700646207
grad: 3.0 6.0 0.0004161576169003922
grad: 1.0 2.0 3.7916582873442906e-05
grad: 2.0 4.0 0.00014863300486211983
grad: 3.0 6.0 0.00030767032005840633
grad: 1.0 2.0 2.8032184716586528e-05
grad: 2.0 4.0 0.00010988616408980079
grad: 3.0 6.0 0.0002274643596678061
grad: 1.0 2.0 2.0724530547688857e-05
grad: 2.0 4.0 8.124015974786403e-05
grad: 3.0 6.0 0.00016816713067413502
grad: 1.0 2.0 1.5321894128561553e-05
grad: 2.0 4.0 6.006182498552448e-05
grad: 3.0 6.0 0.0001243279777209949
grad: 1.0 2.0 1.1327660192073097e-05
grad: 2.0 4.0 4.440442795328181e-05
grad: 3.0 6.0 9.191716586265386e-05
grad: 1.0 2.0 8.37467511161094e-06
grad: 2.0 4.0 3.2828726435951694e-05
grad: 3.0 6.0 6.79554637201818e-05
grad: 1.0 2.0 6.191497806007362e-06
grad: 2.0 4.0 2.4270671399762023e-05
grad: 3.0 6.0 5.0240289800385085e-05
grad: 1.0 2.0 4.577448626363889e-06
grad: 2.0 4.0 1.794359861406747e-05
grad: 3.0 6.0 3.714324913239864e-05
grad: 1.0 2.0 3.3841626985164908e-06
grad: 2.0 4.0 1.3265917779392566e-05
grad: 3.0 6.0 2.7460449802063636e-05
grad: 1.0 2.0 2.5019520935032347e-06
grad: 2.0 4.0 9.80765220504054e-06
grad: 3.0 6.0 2.0301840065073407e-05
grad: 1.0 2.0 1.8497232057157476e-06
grad: 2.0 4.0 7.250914965339916e-06
grad: 3.0 6.0 1.5009393973031138e-05
grad: 1.0 2.0 1.3675225618570153e-06
grad: 2.0 4.0 5.360688440703143e-06
grad: 3.0 6.0 1.109662507481346e-05
grad: 1.0 2.0 1.011025839936508e-06
grad: 2.0 4.0 3.963221292480057e-06
grad: 3.0 6.0 8.203868070211229e-06
grad: 1.0 2.0 7.474635355109172e-07
grad: 2.0 4.0 2.9300570574264384e-06
grad: 3.0 6.0 6.06521810908589e-06
grad: 1.0 2.0 5.526087614171615e-07
grad: 2.0 4.0 2.166226344968436e-06
grad: 3.0 6.0 4.484088535150477e-06
grad: 1.0 2.0 4.08550288710785e-07
grad: 2.0 4.0 1.6015171304673004e-06
grad: 3.0 6.0 3.3151404608133817e-06
grad: 1.0 2.0 3.020461303293587e-07
grad: 2.0 4.0 1.1840208316016287e-06
grad: 3.0 6.0 2.450923123120674e-06
grad: 1.0 2.0 2.2330632898359681e-07
grad: 2.0 4.0 8.753608113920563e-07
grad: 3.0 6.0 1.811996877876254e-06
grad: 1.0 2.0 1.6509304945344638e-07
grad: 2.0 4.0 6.471647537864555e-07
grad: 3.0 6.0 1.3396310407642886e-06
grad: 1.0 2.0 1.22055272555599e-07
grad: 2.0 4.0 4.784566698390336e-07
grad: 3.0 6.0 9.904053097642418e-07
grad: 1.0 2.0 9.023692815190998e-08
grad: 2.0 4.0 3.5372875828443284e-07
grad: 3.0 6.0 7.322185258118452e-07
grad: 1.0 2.0 6.671324381812838e-08
grad: 2.0 4.0 2.6151591470124913e-07
grad: 3.0 6.0 5.413379398078177e-07
grad: 1.0 2.0 4.932190122985958e-08
grad: 2.0 4.0 1.933418545263521e-07
grad: 3.0 6.0 4.002176350326181e-07
grad: 1.0 2.0 3.6464273378555845e-08
grad: 2.0 4.0 1.4293995320713293e-07
grad: 3.0 6.0 2.9588569994132286e-07
grad: 1.0 2.0 2.6958474563798518e-08
grad: 2.0 4.0 1.0567721986376455e-07
grad: 3.0 6.0 2.1875184863517916e-07
grad: 1.0 2.0 1.993072373807081e-08
grad: 2.0 4.0 7.812843705323758e-08
grad: 3.0 6.0 1.6172586470020178e-07
grad: 1.0 2.0 1.473502297955065e-08
grad: 2.0 4.0 5.7761290861435555e-08
grad: 3.0 6.0 1.1956587187000878e-07
grad: 1.0 2.0 1.0893779212040045e-08
grad: 2.0 4.0 4.270361486646834e-08
grad: 3.0 6.0 8.839647946956575e-08
grad: 1.0 2.0 8.05390154567931e-09
grad: 2.0 4.0 3.157129313535734e-08
grad: 3.0 6.0 6.535257668360828e-08
grad: 1.0 2.0 5.9543463493128e-09
grad: 2.0 4.0 2.334103754719763e-08
grad: 3.0 6.0 4.8315953904420894e-08
grad: 1.0 2.0 4.402119557767037e-09
grad: 2.0 4.0 1.725630838222969e-08
grad: 3.0 6.0 3.5720557178819945e-08
grad: 1.0 2.0 3.254539748809293e-09
grad: 2.0 4.0 1.2757794820572599e-08
grad: 3.0 6.0 2.640863527858528e-08
grad: 1.0 2.0 2.4061197478886243e-09
grad: 2.0 4.0 9.431989411723407e-09
grad: 3.0 6.0 1.952421158080142e-08
grad: 1.0 2.0 1.778873048863261e-09
grad: 2.0 4.0 6.973181143621332e-09
grad: 3.0 6.0 1.443448560678462e-08
grad: 1.0 2.0 1.31514177326153e-09
grad: 2.0 4.0 5.155357030162122e-09
grad: 3.0 6.0 1.0671591610389441e-08
grad: 1.0 2.0 9.723004623651832e-10
grad: 2.0 4.0 3.811418736177075e-09
grad: 3.0 6.0 7.88963561149103e-09
grad: 1.0 2.0 7.188329931295812e-10
grad: 2.0 4.0 2.817824196199581e-09
grad: 3.0 6.0 5.832891503132487e-09
grad: 1.0 2.0 5.314415574275699e-10
grad: 2.0 4.0 2.083250905116074e-09
grad: 3.0 6.0 4.312326495892194e-09
grad: 1.0 2.0 3.929008229874853e-10
grad: 2.0 4.0 1.5401724340335932e-09
grad: 3.0 6.0 3.188153741007227e-09
grad: 1.0 2.0 2.9047608762766686e-10
grad: 2.0 4.0 1.1386660503376334e-09
grad: 3.0 6.0 2.357042561129674e-09
grad: 1.0 2.0 2.1475266009929328e-10
grad: 2.0 4.0 8.418297170464939e-10
grad: 3.0 6.0 1.7425900722400911e-09
grad: 1.0 2.0 1.5876899794875499e-10
grad: 2.0 4.0 6.223750403933082e-10
grad: 3.0 6.0 1.288313455916068e-09
grad: 1.0 2.0 1.1737988359072915e-10
grad: 2.0 4.0 4.601297121098469e-10
grad: 3.0 6.0 9.524701027885385e-10
grad: 1.0 2.0 8.678036067522044e-11
grad: 2.0 4.0 3.4017944017250556e-10
grad: 3.0 6.0 7.041727201340109e-10
grad: 1.0 2.0 6.415756814703855e-11
grad: 2.0 4.0 2.5149660132228746e-10
grad: 3.0 6.0 5.205968989230314e-10
grad: 1.0 2.0 4.743228032566549e-11
grad: 2.0 4.0 1.8593482309370302e-10
grad: 3.0 6.0 3.8488678910653107e-10
grad: 1.0 2.0 3.5067060366600344e-11
grad: 2.0 4.0 1.3746159766014898e-10
grad: 3.0 6.0 2.845510493898473e-10
grad: 1.0 2.0 2.5925039892626955e-11
grad: 2.0 4.0 1.0162537478208833e-10
grad: 3.0 6.0 2.1037038777649286e-10
grad: 1.0 2.0 1.9166890297128703e-11
grad: 2.0 4.0 7.5132788879273e-11
grad: 3.0 6.0 1.5552359400317073e-10
grad: 1.0 2.0 1.4169998507895798e-11
grad: 2.0 4.0 5.554667836804583e-11
grad: 3.0 6.0 1.1498002550069941e-10
grad: 1.0 2.0 1.0476064460362977e-11
grad: 2.0 4.0 4.106581741325499e-11
grad: 3.0 6.0 8.500400383582019e-11
grad: 1.0 2.0 7.744915819785092e-12
grad: 2.0 4.0 3.036149109902908e-11
grad: 3.0 6.0 6.284572862114146e-11
grad: 1.0 2.0 5.726086271806707e-12
grad: 2.0 4.0 2.2446045022661565e-11
grad: 3.0 6.0 4.646949491871055e-11
grad: 1.0 2.0 4.233946526710497e-12
grad: 2.0 4.0 1.659827830735594e-11
grad: 3.0 6.0 3.4356517630840244e-11
grad: 1.0 2.0 3.1299407510232413e-12
grad: 2.0 4.0 1.227107304657693e-11
grad: 3.0 6.0 2.5403679160262982e-11
grad: 1.0 2.0 2.3145929617385264e-12
grad: 2.0 4.0 9.07363073565648e-12
grad: 3.0 6.0 1.878497357665765e-11
grad: 1.0 2.0 1.7115198147621413e-12
grad: 2.0 4.0 6.707523425575346e-12
grad: 3.0 6.0 1.3887557770431158e-11
grad: 1.0 2.0 1.2647660696529783e-12
grad: 2.0 4.0 4.959588295605499e-12
grad: 3.0 6.0 1.0263789818054647e-11
grad: 1.0 2.0 9.352518759442319e-13
grad: 2.0 4.0 3.666400516522117e-12
grad: 3.0 6.0 7.58859641791787e-12
grad: 1.0 2.0 6.910028105266974e-13
grad: 2.0 4.0 2.7071678232459817e-12
grad: 3.0 6.0 5.6061821851471905e-12
grad: 1.0 2.0 5.10702591327572e-13
grad: 2.0 4.0 2.0037305148434825e-12
grad: 3.0 6.0 4.1460168631601846e-12
grad: 1.0 2.0 3.7836400679225335e-13
grad: 2.0 4.0 1.4814816040598089e-12
grad: 3.0 6.0 3.069544618483633e-12
grad: 1.0 2.0 2.7977620220553945e-13
grad: 2.0 4.0 1.0977885267493548e-12
grad: 3.0 6.0 2.27018404075352e-12
grad: 1.0 2.0 2.0694557179012918e-13
grad: 2.0 4.0 8.100187187665142e-13
grad: 3.0 6.0 1.6786572132332367e-12
Predict(after training) 4 8.000000000000306
在这里插入图片描述
w= 2.0000000000000764

训练:y = w1xx + w2 *x + b

import numpy as np
import matplotlib.pyplot as plt
import torch

x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]

w1 = torch.Tensor([1.0])#初始权值
w1.requires_grad = True#计算梯度,默认是不计算的
w2 = torch.Tensor([1.0])
w2.requires_grad = True
b = torch.Tensor([1.0])
b.requires_grad = True

def forward(x):
    return w1 * x**2 + w2 * x + b

def loss(x,y):#构建计算图
    y_pred = forward(x)
    return (y_pred-y) **2

print('Predict (befortraining)',4,forward(4).item())
loss_history = [] 
for epoch in range(100):
    for x,y in zip(x_data,y_data):
        l = loss(x, y)
        l.backward()
        print('\tgrad:',x,y,w1.grad.item(),w2.grad.item(),b.grad.item())
        w1.data = w1.data - 0.01 * w1.grad.data #注意这里的grad是一个tensor,所以要取他的data
        w2.data = w2.data - 0.01 * w2.grad.data
        b.data = b.data - 0.01 * b.grad.data
        w1.grad.data.zero_() 
        w2.grad.data.zero_()
        b.grad.data.zero_()
        
    loss_history.append(l.item())
    print('progress:',epoch,l.item())

print('Predict(after training)',4,forward(4).item())

print('w1=',w1.item(),'w2=',w2.item(),'b=',b.item())
# 绘制损失函数图像
plt.plot(loss_history)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Loss Function')
plt.show()

w1= 0.24038191139698029 w2= 0.9266766309738159 b= 0.99135422706604
在这里插入图片描述

4.用PyTorch实现线性模型

pytorch:
1.准备数据
采用mini-batch设计时,需要注意x和y都应该是一个矩阵
在这里插入图片描述

2.设计模型
主要是构造计算图
在这里插入图片描述

3.构造损失函数和优化器
(1)使用SGD优化器

import torch
x_data = torch.Tensor([[1.0],[2.0],[3.0]])
y_data = torch.Tensor([[2.0],[4.0],[6.0]])

# 准备模型
class LinearModel(torch.nn.Module):
    def __init__(self):
        super(LinearModel,self).__init__()
        self.linear = torch.nn.Linear(1,1)
        
    def forward(self,x):
        y_pred = self.linear(x)
        return y_pred

model = LinearModel()

# 损失函数和优化器
loss_history = [] # 用于存储每次迭代的损失值

criterion = torch.nn.MSELoss(size_average=False)
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)

for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred,y_data)
    print(epoch,loss.item())
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    loss_history.append(loss.item())
    
print('w=',model.linear.weight.item())
print('b=',model.linear.bias.item())

x_test = torch.Tensor([[4.0]])
y_test = model(x_test)

print('y_pred=',y_test.data)


# 绘制损失函数图像
plt.plot(loss_history)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Loss Function')
plt.show()

在这里插入图片描述
(2)Adagrad
在这里插入图片描述

(3)Adam
在这里插入图片描述
(4)Adamax
在这里插入图片描述
(4)ASGD

criterion = torch.nn.MSELoss(size_average=False)
optimizer = torch.optim.ASGD(model.parameters(), lr=0.01)

在这里插入图片描述

4.训练周期(前向传播+反馈+更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/44621.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 Flink SQL CDC 数据处理的终极武器

文章目录 一、传统的数据同步方案与 Flink SQL CDC 解决方案1.1 Flink SQL CDC 数据同步与原理解析1.2 基于日志的 CDC 方案介绍1.3 选择 Flink 作为 ETL 工具 二、 基于 Flink SQL CDC 的数据同步方案实践2.1 CDC Streaming ETL2.2 Flink-CDC实践之mysql案例 来源互联网多篇文…

华为OD机试真题 Java 实现【文件目录大小】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明4、再输入5、再输出6、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题…

spring-cloud-alibaba——nacos-server搭建

前言:组件版本关系,官方:组件版本关系 1,nacos-server搭建(windows环境),下载地址nacos 选择对应的版本,这里以目前最新版2.2.3为例子,下载后解压 单机模式 修改\nacos-server-2.2.3\nacos\bin\startup.c…

分布式调用与高并发处理 Nginx

一、初识Nginx 1.1 Nginx概述 Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型。 常见服务…

(2)前端控制器的扩展配置, 视图解析器类型以及MVC执行流程的概述

SpringMVC入门程序的扩展说明 注册前端控制器的细节 在web.xml文件注册SpringMVC的前端控制器DispatcherServlet时使用url-pattern标签中使用/和/*的区别 /可以匹配.html或.js或.css等方式的请求路径,但不匹配*.jsp的请求路径/*可以匹配所有请求(包括.jsp请求), 例如在过滤器…

【Linux Shell】基础知识

Linux Shell基础知识 一、Linux Shell基础概念1.1 Shell定义1.2 命令行提示符 二、初识Shell2.1 Shell定义2.2 登录Shell相关文件2.3 Shell中的变量变量类型变量的引用单引号\ 与双引号\" \"变量的删除与检查 2.4 Shell中的扩展大括号扩展{ }其他扩展 一、Linux Shel…

使用springboot进行后端开发100问

properties和yaml文件怎么互转 安装插件 properties文件和yaml文件区别 properties 文件通过“.”和“”赋值,值前不加空格,yaml通过“:”赋值,值前面加一个空格;yaml文件缩进用空格; properties只支持键值对&#x…

flash attention 2论文学习

flash attention作者Tri Dao发布了flash attention 2,性能为flash attention的2倍。 优化点主要如下: 一、减少 non-matmul FLOPs A00中由于tensor core的存在,使得gpu对于浮点矩阵运算吞吐很高,如FP16/BF16可以达到312 TFLOPs/…

LINUX中的myaql(一)安装

目录 前言 一、概述 二、数据库类型 三、数据库模型 四、MYSQL的安装 (一)yum安装MYSQL (二)rpm安装MYSQL 五、MYSQL本地登录 rpm安装MYSQL本地登录 六、重置密码 总结 前言 MySQL是一种常用的开源关系型数据库管理系统&#xff…

蛋白质分子结构设计

paper read 1 Created by: 银晗 张 Created time: May 27, 2023 3:47 PM Tags: Product 补充了解蛋白质的生物学知识学习一下Diffusion的原理 💡 Method & Innovations Framework Summary: first deep learning models to perform antibody sequence-stru…

banner轮播图实现、激活状态显示和分类列表渲染、解决路由缓存问题、使用逻辑函数拆分业务(一级分类)【Vue3】

一级分类 - banner轮播图实现 分类轮播图实现 分类轮播图和首页轮播图的区别只有一个,接口参数不同,其余逻辑完成一致 适配接口 export function getBannerAPI (params {}) {// 默认为1 商品为2const { distributionSite 1 } paramsreturn httpIn…

pearcmd.php文件包含妙用

文章目录 pearcmd.php文件包含妙用利用条件原理利用config-createinstalldownload pearcmd关键词被ban参考 pearcmd.php文件包含妙用 利用条件 php.ini中register_argc_argvOn开启安装pecl/pear pecl是PHP中用于管理扩展而使用的命令行工具,而pear是pecl依赖的类…

从新手到专业人士:探索 C++ STL 以获得终极性能

探索 C STL 以获得终极性能 博主简介一、引言二、C STL 简介2.1、STL 是什么?2.2、STL 中的常用组件2.3、STL 的优点 三、入门指南:了解基本概念和用法3.1、容器:vector、list、deque、set、map 等3.2、算法:查找、排序、遍历等3.…

Javascript程序异常处理

什么是异常,异常就是我们在编写Javascript程序时出现的一些错误,并会在控制台中抛出这个错误,出现异常其实并不是一件坏事,相对的呢它可以提醒我们开发人员哪里出现了错误,方便我们后续的修改,能让我们的代…

OSI 和 TCP/IP 网络分层模型详解(基础)

OSI模型: 即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。 OSI 七层模型 OS…

centos逻辑分区磁盘扩展

最近碰到服务器磁盘空间不足,需要扩展逻辑分区的需求,特地做下小笔记,方便后续自己回忆。下图是磁盘的相关概念示意图: 1、查看磁盘空间 [rootlocalhost ~]# df -h #查看磁盘空间,根分区的大小是18G,已经用…

RISCV -3 RV32I/RV64I基本整型指令集

RISCV -3 RV32I/RV64I基本整型指令集 1 RV32I Base Integer Instruction Set1.1 Programmers’ Model for Base Integer ISA1.2 Base Instruction Formats1.3 Immediate Encoding Variants1.4 Integer Computational Instructions1.4.1 Integer Register-Immediate Instruction…

深入浅出多种开发语言对接淘宝京东1688阿里巴巴等电商平台,获取实时商品详情数据API接口介绍

api接口详解大全?优秀的设计是产品变得卓越的原因设计API意味着提供有效的接口,可以帮助API使用者更好地了解、使用和集成,同时帮助人们有效地维护它每个产品都需要使用手册,API也不例外在API领域,可以将设计视为服务器和客户端之…

iPortal 注册登录模块扩展开发

作者:yx 文章目录 前言一、示例代码简介二、对接 iPortal REST API 接口2.1、登录模块扩展开发2.2、注册模块扩展开发 三、页面内容及样式实现四、配置启用定制页面 前言 针对注册登录模块,iPortal 允许用户通过 iFrame 方式接入自行开发的页面&#xf…

pytorch安装GPU版本 (Cuda12.1)教程: Windows、Mac和Linux系统快速安装指南

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…