【PyTorch】深度学习实战之PyTorch实现线性回归

PyTorch实现线性回归

可调用对象:

如果要使用一个可调用对象,那么在类的声明的时候要定义一个call函数

class Foobar: 
    def __init__(self):
        pass
    def __call__(self,*args,**kwargs):
        pass

其中参数*args代表把前n个参数变成n元组,**kwargsd会把参数变成一个词典,这些都是python的基础语法

def func(*args,**kwargs):
    print(args)
    print(kwargs)
    
func(1,2,3,4,x=3,y=5)
"""
(1, 2, 3, 4)
{'x': 3, 'y': 5}
"""

PyTorch线性回归的四个过程:

  • 准备训练集
  • 使用类设计模型(目的是为了前向传播forward,计算y hat)
  • 构造损失函数和优化器(其中,loss是为了进行反向传播,optimizer是为了更新梯度
  • 循环训练(前向算损失,反向算梯度,然后不断更新)

【PyTorch】深度学习实战之PyTorch实现线性回归_第1张图片

每一次训练的过程就是:

  • 前向传播,求y_hat(预测值)
  • 根据y_hat和y_label(y_data)计算loss
  • 反向传播backward(计算梯度)
  • 根据梯度,更新参数

实现代码:

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

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)  # 构造对象,并说明输入输出的维数,第三个参数默认为true,表示用到b

    def forward(self, x):
        y_pred = self.linear(x)  # 可调用对象,计算y=wx+b
        return y_pred


model = LinearModel()  # 实例化模型

criterion = torch.nn.MSELoss(reduction='sum')
# model.parameters()会扫描module中的所有成员,如果成员中有相应的权重,那么都会将结果加到要训练的集合参数上
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  # lr为学习率

epoch_list = []
loss_list = []
# for epoch in np.arange(0, 100, 2):
for epoch in range(100):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(epoch, loss.item())

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    epoch_list.append(epoch)
    loss_list.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(epoch_list, loss_list)
plt.xlabel('times')
plt.ylabel('loss')
plt.title('SGD')
plt.show()

运行结果:

0 111.91926574707031
1 49.82788848876953
2 22.186500549316406
3 9.881272315979004
4 4.403273582458496
5 1.9645596742630005
6 0.8788504600524902
7 0.3954624831676483
8 0.18021120131015778
9 0.08432696759700775
10 0.04158348590135574
11 0.022497136145830154
12 0.013943195343017578
13 0.01007873099297285
14 0.008302716538310051
15 0.007457221858203411
16 0.007026821840554476
17 0.006781961768865585
18 0.006620422005653381
19 0.006496733520179987
20 0.006390667520463467
21 0.006293224636465311
22 0.0062002213671803474
23 0.006110009737312794
24 0.006021701730787754
25 0.005934945307672024
26 0.005849512759596109
27 0.0057654669508337975
28 0.005682558752596378
29 0.005600868724286556
30 0.005520401056855917
31 0.005441035609692335
32 0.0053628794848918915
33 0.005285775288939476
34 0.005209808703511953
35 0.005134933162480593
36 0.005061125382781029
37 0.004988380707800388
38 0.00491672195494175
39 0.0048460508696734905
40 0.004776409827172756
41 0.00470777926966548
42 0.004640108905732632
43 0.004573439247906208
44 0.00450771301984787
45 0.004442923702299595
46 0.004379057325422764
47 0.004316150210797787
48 0.004254107363522053
49 0.004192924126982689
50 0.0041326736100018024
51 0.004073282703757286
52 0.004014759790152311
53 0.003957051318138838
54 0.0039002075791358948
55 0.0038441140204668045
56 0.003788899164646864
57 0.0037344531156122684
58 0.003680775174871087
59 0.0036278674378991127
60 0.003575714770704508
61 0.0035243607126176357
62 0.003473697230219841
63 0.003423791378736496
64 0.003374570980668068
65 0.0033260590862482786
66 0.003278267802670598
67 0.003231176408007741
68 0.0031847076024860144
69 0.003138953121379018
70 0.003093830542638898
71 0.0030493782833218575
72 0.0030055600218474865
73 0.0029623594600707293
74 0.002919779857620597
75 0.0028778419364243746
76 0.002836476778611541
77 0.002795706270262599
78 0.0027555148117244244
79 0.0027159445453435183
80 0.002676892327144742
81 0.0026384363882243633
82 0.002600492676720023
83 0.0025631182361394167
84 0.002526274649426341
85 0.0024899819400161505
86 0.002454179571941495
87 0.002418922260403633
88 0.0023841557558625937
89 0.002349911257624626
90 0.002316119149327278
91 0.002282818779349327
92 0.0022500380873680115
93 0.002217694651335478
94 0.002185826888307929
95 0.00215441663749516
96 0.0021234452724456787
97 0.0020929216407239437
98 0.002062862040475011
99 0.0020332084968686104
100 0.002003985922783613
101 0.0019751866348087788
102 0.0019467804813757539
103 0.001918816938996315
104 0.0018912453670054674
105 0.0018640740308910608
106 0.0018372738268226385
107 0.0018108657095581293
108 0.001784833031706512
109 0.0017591910436749458
110 0.001733899349346757
111 0.0017089805332943797
112 0.0016844116616994143
113 0.0016602291725575924
114 0.0016363603062927723
115 0.001612839405424893
116 0.0015896671684458852
117 0.0015668260166421533
118 0.0015443124575540423
119 0.001522109261713922
120 0.0015002378495410085
121 0.0014786679530516267
122 0.0014574120286852121
123 0.0014364882372319698
124 0.0014158295234665275
125 0.0013954855967313051
126 0.0013754288665950298
127 0.001355661079287529
128 0.0013361722230911255
129 0.0013169720768928528
130 0.0012980597093701363
131 0.001279402757063508
132 0.001261006691493094
133 0.0012428790796548128
134 0.0012250192230567336
135 0.0012074338737875223
136 0.0011900682002305984
137 0.0011729714460670948
138 0.001156097394414246
139 0.0011394887696951628
140 0.0011231095995754004
141 0.0011069591855630279
142 0.0010910582495853305
143 0.0010753886308521032
144 0.0010599269298836589
145 0.0010446920059621334
146 0.0010296754771843553
147 0.0010148788569495082
148 0.0010003031929954886
149 0.0009859097190201283
150 0.0009717456414364278
151 0.0009577884338796139
152 0.0009440178982913494
153 0.0009304375271312892
154 0.000917085912078619
155 0.0009038953576236963
156 0.0008909063180908561
157 0.0008780990610830486
158 0.0008654752746224403
159 0.0008530430495738983
160 0.0008407951099798083
161 0.000828702817671001
162 0.0008167877094820142
163 0.0008050596225075424
164 0.000793489976786077
165 0.0007820756873115897
166 0.0007708377670496702
167 0.0007597563089802861
168 0.0007488586707040668
169 0.0007380808237940073
170 0.000727484468370676
171 0.0007170209428295493
172 0.0007067119004204869
173 0.0006965635111555457
174 0.0006865419563837349
175 0.0006766760488972068
176 0.0006669536232948303
177 0.0006573746213689446
178 0.0006479285657405853
179 0.0006386140594258904
180 0.0006294238264672458
181 0.0006203900557011366
182 0.0006114718853496015
183 0.0006026810733601451
184 0.0005940191331319511
185 0.0005854846676811576
186 0.0005770691204816103
187 0.0005687727243639529
188 0.0005606025224551558
189 0.0005525473970919847
190 0.0005445994902402163
191 0.000536768464371562
192 0.0005290556000545621
193 0.0005214675911702216
194 0.0005139674176461995
195 0.0005065829609520733
196 0.0004992962349206209
197 0.0004921280196867883
198 0.00048504749429412186
199 0.00047808061935938895
200 0.00047120696399360895
201 0.0004644320288207382
202 0.0004577508952934295
203 0.000451191037427634
204 0.0004447005921974778
205 0.00043830828508362174
206 0.00043200943036936224
207 0.0004257993132341653
208 0.000419680611230433
209 0.000413648784160614
210 0.00040770642226561904
211 0.0004018489853478968
212 0.00039607673534192145
213 0.00039037613896653056
214 0.00038477274938486516
215 0.00037923362106084824
216 0.00037378750857897103
217 0.00036842323606833816
218 0.000363122031558305
219 0.0003579076728783548
220 0.000352765986463055
221 0.0003476918500382453
222 0.0003426942857913673
223 0.00033776601776480675
224 0.0003329095197841525
225 0.00032813241705298424
226 0.00032341183396056294
227 0.00031876281718723476
228 0.0003141886554658413
229 0.0003096659784205258
230 0.000305226887576282
231 0.0003008380008395761
232 0.0002965079329442233
233 0.0002922510029748082
234 0.00028805245528928936
235 0.00028391077648848295
236 0.0002798252971842885
237 0.00027581193717196584
238 0.00027184293139725924
239 0.0002679398166947067
240 0.00026408283156342804
241 0.0002602913591545075
242 0.0002565561735536903
243 0.00025285815354436636
244 0.00024923100136220455
245 0.00024565105559304357
246 0.00024211419804487377
247 0.0002386317210039124
248 0.00023520743707194924
249 0.00023182653239928186
250 0.0002284982183482498
251 0.00022520618222188205
252 0.0002219718007836491
253 0.00021879092673771083
254 0.00021564667986240238
255 0.00021253875456750393
256 0.00020948282326571643
257 0.0002064757572952658
258 0.00020350786508060992
259 0.00020058780501130968
260 0.0001977002975763753
261 0.00019486373639665544
262 0.00019205897115170956
263 0.00018929773068521172
264 0.00018657554755918682
265 0.00018389672914054245
266 0.00018125608039554209
267 0.0001786492794053629
268 0.0001760876039043069
269 0.00017355362069793046
270 0.00017106080485973507
271 0.00016859735478647053
272 0.00016618025256320834
273 0.00016379325825255364
274 0.00016143165703397244
275 0.00015911652008071542
276 0.0001568283187225461
277 0.00015457186964340508
278 0.00015234826423693448
279 0.0001501685765106231
280 0.00014800387725699693
281 0.00014587736222893
282 0.0001437864702893421
283 0.0001417134189978242
284 0.00013967811537440866
285 0.00013766845222562551
286 0.00013569161819759756
287 0.0001337405265076086
288 0.00013181622489355505
289 0.00012992908887099475
290 0.00012805817823391408
291 0.00012621653149835765
292 0.0001244024751940742
293 0.00012261891970410943
294 0.00012085082562407479
295 0.00011911460023839027
296 0.00011740921763703227
297 0.00011571861250558868
298 0.00011406076373532414
299 0.00011241550964768976
300 0.00011080055264756083
301 0.00010920397471636534
302 0.00010764009493868798
303 0.00010609466698952019
304 0.00010456875315867364
305 0.000103063925052993
306 0.00010158288932871073
307 0.00010012130223913118
308 9.868244524113834e-05
309 9.726431017043069e-05
310 9.586840315023437e-05
311 9.448936179978773e-05
312 9.313040936831385e-05
313 9.179022163152695e-05
314 9.047079947777092e-05
315 8.917245577322319e-05
316 8.788896229816601e-05
317 8.662667823955417e-05
318 8.538694237358868e-05
319 8.41582877910696e-05
320 8.294330473290756e-05
321 8.175554103218019e-05
322 8.057739614741877e-05
323 7.94233419583179e-05
324 7.827813533367589e-05
325 7.715502579230815e-05
326 7.604916754644364e-05
327 7.495431054849178e-05
328 7.387487858068198e-05
329 7.281420403160155e-05
330 7.176808139774948e-05
331 7.073834422044456e-05
332 6.972138362471014e-05
333 6.871660298202187e-05
334 6.772964115953073e-05
335 6.675790064036846e-05
336 6.579553883057088e-05
337 6.484999903477728e-05
338 6.391966599039733e-05
339 6.299928645603359e-05
340 6.209199636941776e-05
341 6.120128819020465e-05
342 6.0323789512040094e-05
343 5.9453534049680457e-05
344 5.8601610362529755e-05
345 5.7759814808377996e-05
346 5.693112689186819e-05
347 5.611103915725835e-05
348 5.5304259149124846e-05
349 5.4511900088982657e-05
350 5.3724834288004786e-05
351 5.295407027006149e-05
352 5.219517333898693e-05
353 5.144467286299914e-05
354 5.070540282758884e-05
355 4.997436553821899e-05
356 4.925883695250377e-05
357 4.855332736042328e-05
358 4.785049532074481e-05
359 4.716516559710726e-05
360 4.6487159124808386e-05
361 4.581720713758841e-05
362 4.516032277024351e-05
363 4.4509350118460134e-05
364 4.387349326862022e-05
365 4.324298060964793e-05
366 4.261969297658652e-05
367 4.200921830488369e-05
368 4.140314194955863e-05
369 4.080964208696969e-05
370 4.0223010728368536e-05
371 3.964318602811545e-05
372 3.907411883119494e-05
373 3.851312794722617e-05
374 3.79597840947099e-05
375 3.741293039638549e-05
376 3.6875338992103934e-05
377 3.6346893466543406e-05
378 3.5822966310661286e-05
379 3.530940011842176e-05
380 3.4800570574589074e-05
381 3.43019055435434e-05
382 3.381022179382853e-05
383 3.3321754017379135e-05
384 3.2844498491613194e-05
385 3.237068813177757e-05
386 3.190491406712681e-05
387 3.1448067602468655e-05
388 3.099644891335629e-05
389 3.055067645618692e-05
390 3.010972068295814e-05
391 2.9677672500838526e-05
392 2.9250637453515083e-05
393 2.88316878140904e-05
394 2.8417931389412843e-05
395 2.8009937523165718e-05
396 2.760855932137929e-05
397 2.7210986445425078e-05
398 2.681990918063093e-05
399 2.6433754101162776e-05
400 2.6050996893900447e-05
401 2.5679866666905582e-05
402 2.5311401259386912e-05
403 2.4945307814050466e-05
404 2.458850940456614e-05
405 2.4231992938439362e-05
406 2.388490247540176e-05
407 2.354200478293933e-05
408 2.320410931133665e-05
409 2.287004463141784e-05
410 2.25408894038992e-05
411 2.221850081696175e-05
412 2.189789665862918e-05
413 2.1583939087577164e-05
414 2.1274128812365234e-05
415 2.096655407513026e-05
416 2.0665716874646023e-05
417 2.0370198399177752e-05
418 2.0076811779290438e-05
419 1.9787879864452407e-05
420 1.950258229044266e-05
421 1.92236893781228e-05
422 1.8946553609566763e-05
423 1.86752004083246e-05
424 1.8405800801701844e-05
425 1.8143808119930327e-05
426 1.788246663636528e-05
427 1.7623995518079028e-05
428 1.73712833202444e-05
429 1.7122561985161155e-05
430 1.6876825611689128e-05
431 1.6633344785077497e-05
432 1.639351285120938e-05
433 1.615986184333451e-05
434 1.5926731066429056e-05
435 1.5696905393269844e-05
436 1.5472180166398175e-05
437 1.5247943338181358e-05
438 1.5029847418190911e-05
439 1.481488834542688e-05
440 1.460147905163467e-05
441 1.4392705452337395e-05
442 1.4186093721946236e-05
443 1.3982497875986155e-05
444 1.377972603222588e-05
445 1.3583790860138834e-05
446 1.3387559192779008e-05
447 1.3194443454267457e-05
448 1.3005874279770069e-05
449 1.2818456525565125e-05
450 1.2634050108317751e-05
451 1.2452416740416083e-05
452 1.2273524589545559e-05
453 1.2097342732886318e-05
454 1.192404033645289e-05
455 1.1752387763408478e-05
456 1.1582967999856919e-05
457 1.141674420068739e-05
458 1.1251527212152723e-05
459 1.1090029147453606e-05
460 1.0931621545751113e-05
461 1.0775689588626847e-05
462 1.0619175554893445e-05
463 1.04669998108875e-05
464 1.0317045052943286e-05
465 1.016965507005807e-05
466 1.0023141840065364e-05
467 9.878241144178901e-06
468 9.736570063978434e-06
469 9.597725693311077e-06
470 9.45791180129163e-06
471 9.321960533270612e-06
472 9.188757758238353e-06
473 9.057212992047425e-06
474 8.925750080379657e-06
475 8.79921208252199e-06
476 8.671694558870513e-06
477 8.546809112885967e-06
478 8.424010047747288e-06
479 8.302604328491725e-06
480 8.184073521988466e-06
481 8.066394002526067e-06
482 7.949567589093931e-06
483 7.836033546482213e-06
484 7.723156159045175e-06
485 7.611097316839732e-06
486 7.502723747165874e-06
487 7.394652129733004e-06
488 7.289719178515952e-06
489 7.183512025221717e-06
490 7.080404429871123e-06
491 6.979118552408181e-06
492 6.87825377099216e-06
493 6.778428542020265e-06
494 6.682335879304446e-06
495 6.586185008927714e-06
496 6.491768544947263e-06
497 6.399209269147832e-06
498 6.304980161075946e-06
499 6.215796929609496e-06
500 6.1262408053153194e-06
501 6.038193532731384e-06
502 5.951350431132596e-06
503 5.8656987675931305e-06
504 5.781647814728785e-06
505 5.698339919035789e-06
506 5.616879207082093e-06
507 5.535729542316403e-06
508 5.4563952289754525e-06
509 5.378305104386527e-06
510 5.3001112974016e-06
511 5.224213964538649e-06
512 5.149129719939083e-06
513 5.074589807918528e-06
514 5.0021517381537706e-06
515 4.930622708343435e-06
516 4.859482032770757e-06
517 4.789874765265267e-06
518 4.720644938061014e-06
519 4.652042662200984e-06
520 4.585435817716643e-06
521 4.519929461821448e-06
522 4.455506768863415e-06
523 4.3914251364185475e-06
524 4.327808255766286e-06
525 4.265615189069649e-06
526 4.205065124551766e-06
527 4.144592367083533e-06
528 4.0845575313142035e-06
529 4.0261279536935035e-06
530 3.967771590396296e-06
531 3.911910425813403e-06
532 3.855189788737334e-06
533 3.800130343734054e-06
534 3.745016783796018e-06
535 3.6906415061821463e-06
536 3.638326688815141e-06
537 3.585614422263461e-06
538 3.5337236568011576e-06
539 3.483296950435033e-06
540 3.433339315961348e-06
541 3.3843855362647446e-06
542 3.3358885502821067e-06
543 3.287636900495272e-06
544 3.240259047743166e-06
545 3.1935371680447133e-06
546 3.148084488202585e-06
547 3.1027514069137396e-06
548 3.058559968849295e-06
549 3.0137782687233994e-06
550 2.970929017465096e-06
551 2.928386720668641e-06
552 2.8862516501249047e-06
553 2.8442248094506795e-06
554 2.8032841328240465e-06
555 2.7636074264592025e-06
556 2.723925263126148e-06
557 2.6845300453715026e-06
558 2.6456120849616127e-06
559 2.608197291920078e-06
560 2.5712365641084034e-06
561 2.5338915747852297e-06
562 2.4967289391497616e-06
563 2.4610242235212354e-06
564 2.425759475954692e-06
565 2.39146766034537e-06
566 2.356526465518982e-06
567 2.3224631604534807e-06
568 2.2888248167873826e-06
569 2.2568281110579846e-06
570 2.2243634703045245e-06
571 2.192048441429506e-06
572 2.1606531390716555e-06
573 2.1294843008945463e-06
574 2.099215180351166e-06
575 2.0690797555289464e-06
576 2.0385809875733685e-06
577 2.009462832575082e-06
578 1.9812891878245864e-06
579 1.9520155092322966e-06
580 1.924169055200764e-06
581 1.8965226900036214e-06
582 1.86899751497549e-06
583 1.8423827441438334e-06
584 1.815880978028872e-06
585 1.7897275483846897e-06
586 1.7642259990680031e-06
587 1.7394445421814453e-06
588 1.713849314910476e-06
589 1.6888211575860623e-06
590 1.6653273178235395e-06
591 1.6406572740379488e-06
592 1.6175022210518364e-06
593 1.5942182471917477e-06
594 1.5713942502770806e-06
595 1.5490240912185982e-06
596 1.5264561170624802e-06
597 1.504623696746421e-06
598 1.4833015029580565e-06
599 1.4615698091802187e-06
600 1.4406966784008546e-06
601 1.419973614247283e-06
602 1.3991941614222014e-06
603 1.3792509889754e-06
604 1.3595181371783838e-06
605 1.3398607734416146e-06
606 1.3206799849285744e-06
607 1.302301370742498e-06
608 1.2831962976633804e-06
609 1.2644266007555416e-06
610 1.2465761756175198e-06
611 1.2290433915040921e-06
612 1.2108046121284133e-06
613 1.1937174804188544e-06
614 1.1766892384912353e-06
615 1.1597833236010047e-06
616 1.1429997357481625e-06
617 1.1263384749327088e-06
618 1.1102283679065295e-06
619 1.0942344488285016e-06
620 1.0788392046379158e-06
621 1.0630737961037084e-06
622 1.0474243481439771e-06
623 1.0324822596885497e-06
624 1.0179398941545514e-06
625 1.0035007562692044e-06
626 9.887025953503326e-07
627 9.744730959937442e-07
628 9.609170774638187e-07
629 9.468897133046994e-07
630 9.334719379694434e-07
631 9.196469363814685e-07
632 9.062580375029938e-07
633 8.934605943977658e-07
634 8.803183391137281e-07
635 8.682484349264996e-07
636 8.552401595807169e-07
637 8.43343968881527e-07
638 8.31319141525455e-07
639 8.191703386728477e-07
640 8.07319793239003e-07
641 7.957628440635744e-07
642 7.840833973205008e-07
643 7.73052533986629e-07
644 7.618968993483577e-07
645 7.510237196584058e-07
646 7.404287885037775e-07
647 7.296610533558123e-07
648 7.193664828264446e-07
649 7.089980158525577e-07
650 6.984622018535447e-07
651 6.883909122734622e-07
652 6.789673534512985e-07
653 6.687537847938074e-07
654 6.590883003809722e-07
655 6.496341597994615e-07
656 6.404802661563735e-07
657 6.311609581644007e-07
658 6.222310844350432e-07
659 6.134100658528041e-07
660 6.046070666343439e-07
661 5.958677320450079e-07
662 5.868362222827272e-07
663 5.784470431535738e-07
664 5.705579155801388e-07
665 5.620691467811412e-07
666 5.539470748772146e-07
667 5.462700300995493e-07
668 5.382631229622348e-07
669 5.3061199878357e-07
670 5.227628321335942e-07
671 5.155566782377718e-07
672 5.081103608972626e-07
673 5.010062977817142e-07
674 4.936255209031515e-07
675 4.863398430643429e-07
676 4.793901666744205e-07
677 4.724905124930956e-07
678 4.6564088052036823e-07
679 4.5911701818113215e-07
680 4.5263919901117333e-07
681 4.459355409380805e-07
682 4.396674739837181e-07
683 4.333288075031305e-07
684 4.270361841918202e-07
685 4.211672148812795e-07
686 4.1496383573758067e-07
687 4.091036771569634e-07
688 4.029901106150646e-07
689 3.9717912159176194e-07
690 3.915197908099799e-07
691 3.857924752992403e-07
692 3.803937147495162e-07
693 3.750331529772666e-07
694 3.6953434801034746e-07
695 3.642510932877485e-07
696 3.5907623896491714e-07
697 3.5386847230256535e-07
698 3.486648552097904e-07
699 3.4387471714580897e-07
700 3.3874545124490396e-07
701 3.3395627951904316e-07
702 3.290019776613917e-07
703 3.2421712603536434e-07
704 3.1976225045582396e-07
705 3.151756118313642e-07
706 3.104926236119354e-07
707 3.0597317390856915e-07
708 3.016461960214656e-07
709 2.9731859285675455e-07
710 2.9286502467584796e-07
711 2.8885096980957314e-07
712 2.847095856850501e-07
713 2.8072128088751924e-07
714 2.766084890026832e-07
715 2.7279884307063185e-07
716 2.686840616661357e-07
717 2.648999384291528e-07
718 2.61291006609099e-07
719 2.573236201897089e-07
720 2.535617227295006e-07
721 2.4988594304886647e-07
722 2.4623710714877234e-07
723 2.427580056973966e-07
724 2.3936081561259925e-07
725 2.3578996888318215e-07
726 2.325819536963536e-07
727 2.292570684403472e-07
728 2.2598351279157214e-07
729 2.2262383936322294e-07
730 2.1939814587312867e-07
731 2.1616921230815933e-07
732 2.130980760739476e-07
733 2.103156475641299e-07
734 2.0694324120995589e-07
735 2.0422726265678648e-07
736 2.0103402675886173e-07
737 1.9835761122521944e-07
738 1.9546774865375482e-07
739 1.9254804328738828e-07
740 1.897010406537447e-07
741 1.870762957878469e-07
742 1.8427044778945856e-07
743 1.8168367432735977e-07
744 1.7931188267539255e-07
745 1.766869104358193e-07
746 1.739601884764852e-07
747 1.7163966958833043e-07
748 1.691196871433931e-07
749 1.6664193935866933e-07
750 1.6418249515481875e-07
751 1.6202199049075716e-07
752 1.5964366184562095e-07
753 1.5716727830294985e-07
754 1.5493924365728162e-07
755 1.5272712516889442e-07
756 1.5053092283778824e-07
757 1.483506366639631e-07
758 1.4620815136368037e-07
759 1.4421402738662437e-07
760 1.4225543054635637e-07
761 1.4024521988176275e-07
762 1.3818390698361327e-07
763 1.3609525240099174e-07
764 1.3417161426332314e-07
765 1.3228259376774076e-07
766 1.3021855238548596e-07
767 1.283574988519831e-07
768 1.2675855032284744e-07
769 1.2479932820497197e-07
770 1.2312057151575573e-07
771 1.21088760351995e-07
772 1.1943535582759068e-07
773 1.1783305353674223e-07
774 1.1620204531936906e-07
775 1.1442494951552362e-07
776 1.12817815534072e-07
777 1.1104771147074644e-07
778 1.0946433803837863e-07
779 1.08045469460194e-07
780 1.0631310942699201e-07
781 1.0489588930795435e-07
782 1.0335730848964886e-07
783 1.0186732879446936e-07
784 1.004801220005902e-07
785 9.910246490107966e-08
786 9.75890657173295e-08
787 9.623141750125797e-08
788 9.47941884987813e-08
789 9.345609441879787e-08
790 9.212755003318307e-08
791 9.080855534193688e-08
792 8.949911034505931e-08
793 8.819921504255035e-08
794 8.690886943441001e-08
795 8.561096365156118e-08
796 8.433971743215807e-08
797 8.32456521493441e-08
798 8.199214107662556e-08
799 8.073175195022486e-08
800 7.974341542649199e-08
801 7.854941941332072e-08
802 7.746120900264941e-08
803 7.636464260940556e-08
804 7.514836397604086e-08
805 7.419504299832624e-08
806 7.316907613130752e-08
807 7.197860441010562e-08
808 7.092171472322661e-08
809 6.991882628426538e-08
810 6.899927029735409e-08
811 6.807067620684393e-08
812 6.696797072436311e-08
813 6.606796887353994e-08
814 6.505553074021009e-08
815 6.415399411707767e-08
816 6.315644895948935e-08
817 6.228293614185532e-08
818 6.154482434794772e-08
819 6.049646117389784e-08
820 5.962721161267837e-08
821 5.8778141465154476e-08
822 5.7963461586041376e-08
823 5.71126292925328e-08
824 5.619995135930367e-08
825 5.5580585467396304e-08
826 5.463903107738588e-08
827 5.393422952693072e-08
828 5.314063855621498e-08
829 5.2326186050777324e-08
830 5.153088977749576e-08
831 5.083376208858681e-08
832 5.0167273002443835e-08
833 4.937601261190139e-08
834 4.8732090363046154e-08
835 4.805428943654988e-08
836 4.736835990115651e-08
837 4.6637126160931075e-08
838 4.596154212777037e-08
839 4.532813591140439e-08
840 4.467420922082965e-08
841 4.396434860609588e-08
842 4.3405179894762114e-08
843 4.27655777457403e-08
844 4.2154454149567755e-08
845 4.151229404669721e-08
846 4.0886789065552875e-08
847 4.038275847051409e-08
848 3.9754240788170137e-08
849 3.925725877707009e-08
850 3.8637608668068424e-08
851 3.814767524090712e-08
852 3.753689270524774e-08
853 3.7054007862025173e-08
854 3.645209289970808e-08
855 3.5976256640424253e-08
856 3.5383209251449443e-08
857 3.490390554361511e-08
858 3.441641638346482e-08
859 3.39434791385429e-08
860 3.345240884300438e-08
861 3.296509021311067e-08
862 3.250215740990825e-08
863 3.2052923870651284e-08
864 3.157583705615252e-08
865 3.1102501907298574e-08
866 3.073438392675598e-08
867 3.018635652551893e-08
868 2.9823695513186976e-08
869 2.936377541118418e-08
870 2.8926763206982287e-08
871 2.85718328996154e-08
872 2.812157617881894e-08
873 2.7771648092311807e-08
874 2.734691406658385e-08
875 2.6896941562881693e-08
876 2.6535701636021258e-08
877 2.6120517304661917e-08
878 2.5783322143979603e-08
879 2.5420433757972205e-08
880 2.5087786070798757e-08
881 2.472989990565111e-08
882 2.4329267489520134e-08
883 2.400389575996087e-08
884 2.3653740299778292e-08
885 2.333291604372789e-08
886 2.2987762804405065e-08
887 2.267148602186353e-08
888 2.2331335003400454e-08
889 2.2019605694367783e-08
890 2.168445689676446e-08
891 2.1377275061240653e-08
892 2.1131427274667658e-08
893 2.0736024453071877e-08
894 2.0502284314716235e-08
895 2.0195386696286732e-08
896 1.987433506656089e-08
897 1.957255335582886e-08
898 1.93208506971132e-08
899 1.903094926092308e-08
900 1.8799084955389844e-08
901 1.8489402009436162e-08
902 1.8198306861449964e-08
903 1.8018226910498925e-08
904 1.7730428680806654e-08
905 1.7452805423090467e-08
906 1.7269030649913475e-08
907 1.698737150945817e-08
908 1.671565996730351e-08
909 1.653575054660905e-08
910 1.626767698326148e-08
911 1.603126520421938e-08
912 1.5759951565996744e-08
913 1.5498244465561584e-08
914 1.53250425682927e-08
915 1.5116938811843283e-08
916 1.4910312984284246e-08
917 1.4740635378984734e-08
918 1.4480349364021095e-08
919 1.42781573231332e-08
920 1.4077443211135687e-08
921 1.3857516023563221e-08
922 1.365975776934647e-08
923 1.34634774440201e-08
924 1.3254975783638656e-08
925 1.3055114322924055e-08
926 1.2849795893998817e-08
927 1.2711836916423636e-08
928 1.251584080819157e-08
929 1.2379587133182213e-08
930 1.214158373841201e-08
931 1.1988049664068967e-08
932 1.1835993518616306e-08
933 1.1602878657868132e-08
934 1.1471740890556248e-08
935 1.1285749224043684e-08
936 1.1156316759297624e-08
937 1.0960604868159862e-08
938 1.0833218766492791e-08
939 1.0682470019673929e-08
940 1.0556789220572682e-08
941 1.0378073511674302e-08
942 1.025409801513888e-08
943 1.0066571576317074e-08
944 9.938560197042534e-09
945 9.81731318461243e-09
946 9.690893421065994e-09
947 9.508596576779382e-09
948 9.384223176311934e-09
949 9.26638676901348e-09
950 9.143604984274134e-09
951 9.021732694236562e-09
952 8.845802312862361e-09
953 8.725976385903778e-09
954 8.6122327047633e-09
955 8.49399839353282e-09
956 8.376673577004112e-09
957 8.207109658542322e-09
958 8.08108779892791e-09
959 7.966491466504522e-09
960 7.852804628782906e-09
961 7.780727173667401e-09
962 7.632763754372718e-09
963 7.546589131379733e-09
964 7.435858151438879e-09
965 7.330982043640688e-09
966 7.21712467566249e-09
967 7.098833521013148e-09
968 7.030394044704735e-09
969 6.923528417246416e-09
970 6.808079433540115e-09
971 6.750497050234117e-09
972 6.636412308580475e-09
973 6.5278982219751924e-09
974 6.429502263927134e-09
975 6.3274114836531226e-09
976 6.2489675656252075e-09
977 6.184848189150216e-09
978 6.084576398279751e-09
979 6.0079514696553815e-09
980 5.9090439208375756e-09
981 5.8110458667215426e-09
982 5.7492002270009834e-09
983 5.6748490351310465e-09
984 5.578669970418559e-09
985 5.51818857275066e-09
986 5.423373750090832e-09
987 5.329468422132777e-09
988 5.299853000906296e-09
989 5.19457898917608e-09
990 5.102720024297014e-09
991 5.04473973705899e-09
992 4.987214197171852e-09
993 4.925652774545597e-09
994 4.836294920096407e-09
995 4.7478465603489894e-09
996 4.719822754850611e-09
997 4.620460458681919e-09
998 4.5340584620134905e-09
999 4.510411599767394e-09
w= 1.999955415725708
b= 0.0001014413865050301
y_pred =  tensor([[7.9999]])

Process finished with exit code 0

由此可以得出结论,w是趋向2,b是趋向0,y_pred是趋向8

下面给出不同优化器在性能上的区别,我们以直观的图像来看

生成图像的代码

# 先声明
import matplotlib.pyplot as plt

# 定义空集合
epoch_list = []
loss_list = []

# 放到循环后面给空集添加元素
epoch_list.append(epoch)
loss_list.append(loss.item())

# 画图
plt.plot(epoch_list, loss_list)

# 设置x坐标,y坐标名称,以及这个图像的标题
plt.xlabel('times')
plt.ylabel('loss')
plt.title('SGD')

# 显示图像
plt.show()

以下图像都是迭代100次的图像,因为迭代1000次区别很难看出来
以下包含了Adagrad Adam ASGD RMSprop Rprop SGD六种优化器的loss下降图。
【PyTorch】深度学习实战之PyTorch实现线性回归_第2张图片
【PyTorch】深度学习实战之PyTorch实现线性回归_第3张图片
【PyTorch】深度学习实战之PyTorch实现线性回归_第4张图片
【PyTorch】深度学习实战之PyTorch实现线性回归_第5张图片
【PyTorch】深度学习实战之PyTorch实现线性回归_第6张图片

【PyTorch】深度学习实战之PyTorch实现线性回归_第7张图片

我总是会习惯性说服自己“明天再调整作息”“明天再开始学习”“明天再去锻炼身体”,但实际上这个明天只是拖延最完美的借口罢了,因为总会有明天。拖延是最容易压垮一个人斗志的东西,如果不停止这个念头行动起来,只会把自己的人生拖垮,错过很多本该属于我们的风景。

你可能感兴趣的:(PyTorch,pytorch,深度学习,线性回归)