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是为了更新梯度循环训练(前向算损失,反向算梯度,然后不断更新)
每一次训练的过程就是:
前向传播,求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下降图。
| 我总是会习惯性说服自己“明天再调整作息”“明天再开始学习”“明天再去锻炼身体”,但实际上这个明天只是拖延最完美的借口罢了,因为总会有明天。拖延是最容易压垮一个人斗志的东西,如果不停止这个念头行动起来,只会把自己的人生拖垮,错过很多本该属于我们的风景。 |
|---|



