Pytorch线性模型初体验

目录

目标

训练【train.py】

调参

运行

使用【detect.py】

结果


目标

x在[1,1000]

y=w*x+b

根据给定的数据集

x=[[1],[2],[3],...[1000]]

y=[[6],[8],[10],...[2004]]

求出w=2,b=4

训练【train.py】

import torch


def create_datas():
    x, y = [], []
    for i in range(0, 1000):
        x.append([i])
        y.append([2 * i + 4])
    return torch.FloatTensor(x), torch.FloatTensor(y)


class Module(torch.nn.Module):

    def __init__(self):
        super(Module, self).__init__()
        self.linear = torch.nn.Linear(1, 1)

    def forward(self, inputs):
        outputs = self.linear(inputs)
        return outputs


def __main__():
    module = Module()
    x, y = create_datas()
    optimizer = torch.optim.Adam(module.parameters(), lr=5)
    loss_function = torch.nn.MSELoss()
    for i in range(0, 1000):
        outputs_predict = module(x)
        loss = loss_function(y, outputs_predict)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        print("第", i + 1, "次训练loss=", "%.4g" % loss.item())
    w = round(module.linear.weight.item(), 1)
    b = round(module.linear.bias.item(), 1)
    print("方程式为", f"Y={w}X+{b}")
    torch.onnx.export(module, torch.FloatTensor([1]), "module.onnx", export_params=True,
                      verbose=True, input_names=["inputs"], output_names=["outputs"])


if __name__ == "__main__":
    __main__()

调参

刚开始的时候优化器(sgd)和学习率(0.001)的选择不好,导致损失函数没有快速拟合,后面经过调整发现优化器(Adam)和学习率(5)比较适合这个任务,所以如此选用,具体的调参技巧我也在摸索中,暂时没法提供经验分享。

运行

F:\Anaconda3\python.exe D:\PycharmProjects\DeepLearning\train.py 
第 1 次训练loss= 7.677e+05
第 2 次训练loss= 4.051e+06
第 3 次训练loss= 6.623e+05
第 4 次训练loss= 4.857e+05
第 5 次训练loss= 1.97e+06
第 6 次训练loss= 1.289e+06
第 7 次训练loss= 1.269e+05
第 8 次训练loss= 2.402e+05
第 9 次训练loss= 9.992e+05
第 10 次训练loss= 9.903e+05
第 11 次训练loss= 3.375e+05
第 12 次训练loss= 402
第 13 次训练loss= 3.05e+05
第 14 次训练loss= 6.483e+05
第 15 次训练loss= 5.083e+05
第 16 次训练loss= 1.268e+05
第 17 次训练loss= 1.067e+04
第 18 次训练loss= 2.301e+05
第 19 次训练loss= 3.992e+05
第 20 次训练loss= 2.735e+05
第 21 次训练loss= 4.933e+04
第 22 次训练loss= 1.91e+04
第 23 次训练loss= 1.691e+05
第 24 次训练loss= 2.447e+05
第 25 次训练loss= 1.387e+05
第 26 次训练loss= 1.249e+04
第 27 次训练loss= 2.929e+04
第 28 次训练loss= 1.283e+05
第 29 次训练loss= 1.438e+05
第 30 次训练loss= 5.745e+04
第 31 次训练loss= 136.7
第 32 次训练loss= 4.048e+04
第 33 次训练loss= 9.473e+04
第 34 次训练loss= 7.307e+04
第 35 次训练loss= 1.374e+04
第 36 次训练loss= 5536
第 37 次训练loss= 4.636e+04
第 38 次训练loss= 6.022e+04
第 39 次训练loss= 2.558e+04
第 40 次训练loss= 65.41
第 41 次训练loss= 1.8e+04
第 42 次训练loss= 3.988e+04
第 43 次训练loss= 2.675e+04
第 44 次训练loss= 2653
第 45 次训练loss= 5721
第 46 次训练loss= 2.366e+04
第 47 次训练loss= 2.194e+04
第 48 次训练loss= 4665
第 49 次训练loss= 1525
第 50 次训练loss= 1.357e+04
第 51 次训练loss= 1.599e+04
第 52 次训练loss= 4803
第 53 次训练loss= 373.1
第 54 次训练loss= 7997
第 55 次训练loss= 1.103e+04
第 56 次训练loss= 3866
第 57 次训练loss= 119
第 58 次训练loss= 5053
第 59 次训练loss= 7428
第 60 次训练loss= 2650
第 61 次训练loss= 87.28
第 62 次训练loss= 3484
第 63 次训练loss= 4930
第 64 次训练loss= 1569
第 65 次训练loss= 131.3
第 66 次训练loss= 2590
第 67 次训练loss= 3190
第 68 次训练loss= 770.1
第 69 次训练loss= 229.8
第 70 次训练loss= 2002
第 71 次训练loss= 1955
第 72 次训练loss= 272.8
第 73 次训练loss= 360.1
第 74 次训练loss= 1534
第 75 次训练loss= 1078
第 76 次训练loss= 41.07
第 77 次训练loss= 478
第 78 次训练loss= 1104
第 79 次训练loss= 486.8
第 80 次训练loss= 8.194
第 81 次训练loss= 532.2
第 82 次训练loss= 701.4
第 83 次训练loss= 145.3
第 84 次训练loss= 85.67
第 85 次训练loss= 491
第 86 次训练loss= 358.7
第 87 次训练loss= 11.62
第 88 次训练loss= 179.3
第 89 次训练loss= 363
第 90 次训练loss= 122.3
第 91 次训练loss= 17.57
第 92 次训练loss= 217.6
第 93 次训练loss= 199.1
第 94 次训练loss= 14.14
第 95 次训练loss= 74.88
第 96 次训练loss= 179
第 97 次训练loss= 66.2
第 98 次训练loss= 8.527
第 99 次训练loss= 107.8
第 100 次训练loss= 96.39
第 101 次训练loss= 5.992
第 102 次训练loss= 43.02
第 103 次训练loss= 88.19
第 104 次训练loss= 26.16
第 105 次训练loss= 9.153
第 106 次训练loss= 59.33
第 107 次训练loss= 40.51
第 108 次训练loss= 1.781
第 109 次训练loss= 30.43
第 110 次训练loss= 41.25
第 111 次训练loss= 6.777
第 112 次训练loss= 11.57
第 113 次训练loss= 32.7
第 114 次训练loss= 13.1
第 115 次训练loss= 3.23
第 116 次训练loss= 21.56
第 117 次训练loss= 16.05
第 118 次训练loss= 1.613
第 119 次训练loss= 12.23
第 120 次训练loss= 15.4
第 121 次训练loss= 2.787
第 122 次训练loss= 6.161
第 123 次训练loss= 12.68
第 124 次训练loss= 4.296
第 125 次训练loss= 2.984
第 126 次训练loss= 9.43
第 127 次训练loss= 5.147
第 128 次训练loss= 1.71
第 129 次训练loss= 6.58
第 130 次训练loss= 5.237
第 131 次训练loss= 1.421
第 132 次训练loss= 4.464
第 133 次训练loss= 4.81
第 134 次训练loss= 1.509
第 135 次训练loss= 3.061
第 136 次训练loss= 4.153
第 137 次训练loss= 1.657
第 138 次训练loss= 2.208
第 139 次训练loss= 3.471
第 140 次训练loss= 1.745
第 141 次训练loss= 1.721
第 142 次训练loss= 2.869
第 143 次训练loss= 1.752
第 144 次训练loss= 1.454
第 145 次训练loss= 2.386
第 146 次训练loss= 1.697
第 147 次训练loss= 1.309
第 148 次训练loss= 2.017
第 149 次训练loss= 1.607
第 150 次训练loss= 1.226
第 151 次训练loss= 1.745
第 152 次训练loss= 1.504
第 153 次训练loss= 1.172
第 154 次训练loss= 1.545
第 155 次训练loss= 1.403
第 156 次训练loss= 1.131
第 157 次训练loss= 1.397
第 158 次训练loss= 1.309
第 159 次训练loss= 1.096
第 160 次训练loss= 1.286
第 161 次训练loss= 1.225
第 162 次训练loss= 1.063
第 163 次训练loss= 1.2
第 164 次训练loss= 1.152
第 165 次训练loss= 1.032
第 166 次训练loss= 1.131
第 167 次训练loss= 1.089
第 168 次训练loss= 1.001
第 169 次训练loss= 1.073
第 170 次训练loss= 1.035
第 171 次训练loss= 0.9714
第 172 次训练loss= 1.023
第 173 次训练loss= 0.9866
第 174 次训练loss= 0.9426
第 175 次训练loss= 0.9789
第 176 次训练loss= 0.9442
第 177 次训练loss= 0.9145
第 178 次训练loss= 0.9387
第 179 次训练loss= 0.9063
第 180 次训练loss= 0.8872
第 181 次训练loss= 0.9015
第 182 次训练loss= 0.872
第 183 次训练loss= 0.8602
第 184 次训练loss= 0.8667
第 185 次训练loss= 0.8406
第 186 次训练loss= 0.8336
第 187 次训练loss= 0.8339
第 188 次训练loss= 0.8115
第 189 次训练loss= 0.8074
第 190 次训练loss= 0.803
第 191 次训练loss= 0.7843
第 192 次训练loss= 0.7814
第 193 次训练loss= 0.7736
第 194 次训练loss= 0.7586
第 195 次训练loss= 0.7556
第 196 次训练loss= 0.7458
第 197 次训练loss= 0.7339
第 198 次训练loss= 0.7301
第 199 次训练loss= 0.7195
第 200 次训练loss= 0.7101
第 201 次训练loss= 0.7051
第 202 次训练loss= 0.6944
第 203 次训练loss= 0.6868
第 204 次训练loss= 0.6807
第 205 次训练loss= 0.6706
第 206 次训练loss= 0.664
第 207 次训练loss= 0.6569
第 208 次训练loss= 0.6478
第 209 次训练loss= 0.6415
第 210 次训练loss= 0.6338
第 211 次训练loss= 0.6257
第 212 次训练loss= 0.6195
第 213 次训练loss= 0.6116
第 214 次训练loss= 0.6043
第 215 次训练loss= 0.598
第 216 次训练loss= 0.5902
第 217 次训练loss= 0.5835
第 218 次训练loss= 0.5769
第 219 次训练loss= 0.5696
第 220 次训练loss= 0.5632
第 221 次训练loss= 0.5565
第 222 次训练loss= 0.5496
第 223 次训练loss= 0.5434
第 224 次训练loss= 0.5366
第 225 次训练loss= 0.5302
第 226 次训练loss= 0.524
第 227 次训练loss= 0.5174
第 228 次训练loss= 0.5113
第 229 次训练loss= 0.5052
第 230 次训练loss= 0.4989
第 231 次训练loss= 0.493
第 232 次训练loss= 0.4868
第 233 次训练loss= 0.4809
第 234 次训练loss= 0.4751
第 235 次训练loss= 0.4691
第 236 次训练loss= 0.4634
第 237 次训练loss= 0.4577
第 238 次训练loss= 0.452
第 239 次训练loss= 0.4464
第 240 次训练loss= 0.4408
第 241 次训练loss= 0.4353
第 242 次训练loss= 0.4299
第 243 次训练loss= 0.4245
第 244 次训练loss= 0.4191
第 245 次训练loss= 0.4139
第 246 次训练loss= 0.4086
第 247 次训练loss= 0.4035
第 248 次训练loss= 0.3983
第 249 次训练loss= 0.3932
第 250 次训练loss= 0.3883
第 251 次训练loss= 0.3833
第 252 次训练loss= 0.3784
第 253 次训练loss= 0.3735
第 254 次训练loss= 0.3687
第 255 次训练loss= 0.3639
第 256 次训练loss= 0.3592
第 257 次训练loss= 0.3546
第 258 次训练loss= 0.35
第 259 次训练loss= 0.3454
第 260 次训练loss= 0.3409
第 261 次训练loss= 0.3364
第 262 次训练loss= 0.332
第 263 次训练loss= 0.3277
第 264 次训练loss= 0.3233
第 265 次训练loss= 0.3191
第 266 次训练loss= 0.3148
第 267 次训练loss= 0.3107
第 268 次训练loss= 0.3065
第 269 次训练loss= 0.3024
第 270 次训练loss= 0.2984
第 271 次训练loss= 0.2944
第 272 次训练loss= 0.2904
第 273 次训练loss= 0.2865
第 274 次训练loss= 0.2827
第 275 次训练loss= 0.2789
第 276 次训练loss= 0.2751
第 277 次训练loss= 0.2713
第 278 次训练loss= 0.2677
第 279 次训练loss= 0.264
第 280 次训练loss= 0.2604
第 281 次训练loss= 0.2568
第 282 次训练loss= 0.2533
第 283 次训练loss= 0.2498
第 284 次训练loss= 0.2464
第 285 次训练loss= 0.243
第 286 次训练loss= 0.2396
第 287 次训练loss= 0.2363
第 288 次训练loss= 0.233
第 289 次训练loss= 0.2298
第 290 次训练loss= 0.2265
第 291 次训练loss= 0.2234
第 292 次训练loss= 0.2203
第 293 次训练loss= 0.2172
第 294 次训练loss= 0.2141
第 295 次训练loss= 0.2111
第 296 次训练loss= 0.2081
第 297 次训练loss= 0.2051
第 298 次训练loss= 0.2022
第 299 次训练loss= 0.1994
第 300 次训练loss= 0.1965
第 301 次训练loss= 0.1937
第 302 次训练loss= 0.1909
第 303 次训练loss= 0.1882
第 304 次训练loss= 0.1855
第 305 次训练loss= 0.1828
第 306 次训练loss= 0.1802
第 307 次训练loss= 0.1776
第 308 次训练loss= 0.175
第 309 次训练loss= 0.1724
第 310 次训练loss= 0.1699
第 311 次训练loss= 0.1675
第 312 次训练loss= 0.165
第 313 次训练loss= 0.1626
第 314 次训练loss= 0.1602
第 315 次训练loss= 0.1579
第 316 次训练loss= 0.1555
第 317 次训练loss= 0.1532
第 318 次训练loss= 0.151
第 319 次训练loss= 0.1487
第 320 次训练loss= 0.1465
第 321 次训练loss= 0.1443
第 322 次训练loss= 0.1422
第 323 次训练loss= 0.1401
第 324 次训练loss= 0.138
第 325 次训练loss= 0.1359
第 326 次训练loss= 0.1339
第 327 次训练loss= 0.1319
第 328 次训练loss= 0.1299
第 329 次训练loss= 0.1279
第 330 次训练loss= 0.126
第 331 次训练loss= 0.1241
第 332 次训练loss= 0.1222
第 333 次训练loss= 0.1203
第 334 次训练loss= 0.1185
第 335 次训练loss= 0.1167
第 336 次训练loss= 0.1149
第 337 次训练loss= 0.1131
第 338 次训练loss= 0.1114
第 339 次训练loss= 0.1097
第 340 次训练loss= 0.108
第 341 次训练loss= 0.1063
第 342 次训练loss= 0.1047
第 343 次训练loss= 0.103
第 344 次训练loss= 0.1014
第 345 次训练loss= 0.09986
第 346 次训练loss= 0.09829
第 347 次训练loss= 0.09675
第 348 次训练loss= 0.09524
第 349 次训练loss= 0.09374
第 350 次训练loss= 0.09227
第 351 次训练loss= 0.09082
第 352 次训练loss= 0.08939
第 353 次训练loss= 0.08798
第 354 次训练loss= 0.08659
第 355 次训练loss= 0.08521
第 356 次训练loss= 0.08386
第 357 次训练loss= 0.08252
第 358 次训练loss= 0.08121
第 359 次训练loss= 0.07991
第 360 次训练loss= 0.07863
第 361 次训练loss= 0.07737
第 362 次训练loss= 0.07612
第 363 次训练loss= 0.07489
第 364 次训练loss= 0.0737
第 365 次训练loss= 0.07251
第 366 次训练loss= 0.07133
第 367 次训练loss= 0.07018
第 368 次训练loss= 0.06903
第 369 次训练loss= 0.06792
第 370 次训练loss= 0.0668
第 371 次训练loss= 0.06572
第 372 次训练loss= 0.06465
第 373 次训练loss= 0.06359
第 374 次训练loss= 0.06255
第 375 次训练loss= 0.06152
第 376 次训练loss= 0.0605
第 377 次训练loss= 0.0595
第 378 次训练loss= 0.05852
第 379 次训练loss= 0.05755
第 380 次训练loss= 0.0566
第 381 次训练loss= 0.05566
第 382 次训练loss= 0.05473
第 383 次训练loss= 0.05382
第 384 次训练loss= 0.05293
第 385 次训练loss= 0.05203
第 386 次训练loss= 0.05116
第 387 次训练loss= 0.05031
第 388 次训练loss= 0.04946
第 389 次训练loss= 0.04863
第 390 次训练loss= 0.04781
第 391 次训练loss= 0.047
第 392 次训练loss= 0.04621
第 393 次训练loss= 0.04543
第 394 次训练loss= 0.04465
第 395 次训练loss= 0.04389
第 396 次训练loss= 0.04314
第 397 次训练loss= 0.04241
第 398 次训练loss= 0.04168
第 399 次训练loss= 0.04097
第 400 次训练loss= 0.04027
第 401 次训练loss= 0.03958
第 402 次训练loss= 0.0389
第 403 次训练loss= 0.03823
第 404 次训练loss= 0.03757
第 405 次训练loss= 0.03691
第 406 次训练loss= 0.03628
第 407 次训练loss= 0.03565
第 408 次训练loss= 0.03503
第 409 次训练loss= 0.03442
第 410 次训练loss= 0.03382
第 411 次训练loss= 0.03323
第 412 次训练loss= 0.03265
第 413 次训练loss= 0.03208
第 414 次训练loss= 0.03152
第 415 次训练loss= 0.03096
第 416 次训练loss= 0.03042
第 417 次训练loss= 0.02988
第 418 次训练loss= 0.02935
第 419 次训练loss= 0.02883
第 420 次训练loss= 0.02832
第 421 次训练loss= 0.02782
第 422 次训练loss= 0.02733
第 423 次训练loss= 0.02684
第 424 次训练loss= 0.02636
第 425 次训练loss= 0.02589
第 426 次训练loss= 0.02543
第 427 次训练loss= 0.02497
第 428 次训练loss= 0.02452
第 429 次训练loss= 0.02408
第 430 次训练loss= 0.02365
第 431 次训练loss= 0.02322
第 432 次训练loss= 0.02281
第 433 次训练loss= 0.02239
第 434 次训练loss= 0.02198
第 435 次训练loss= 0.02159
第 436 次训练loss= 0.02119
第 437 次训练loss= 0.02081
第 438 次训练loss= 0.02043
第 439 次训练loss= 0.02006
第 440 次训练loss= 0.01969
第 441 次训练loss= 0.01933
第 442 次训练loss= 0.01898
第 443 次训练loss= 0.01863
第 444 次训练loss= 0.01829
第 445 次训练loss= 0.01795
第 446 次训练loss= 0.01762
第 447 次训练loss= 0.01729
第 448 次训练loss= 0.01697
第 449 次训练loss= 0.01666
第 450 次训练loss= 0.01635
第 451 次训练loss= 0.01605
第 452 次训练loss= 0.01575
第 453 次训练loss= 0.01545
第 454 次训练loss= 0.01516
第 455 次训练loss= 0.01488
第 456 次训练loss= 0.01461
第 457 次训练loss= 0.01433
第 458 次训练loss= 0.01406
第 459 次训练loss= 0.0138
第 460 次训练loss= 0.01353
第 461 次训练loss= 0.01328
第 462 次训练loss= 0.01303
第 463 次训练loss= 0.01278
第 464 次训练loss= 0.01254
第 465 次训练loss= 0.0123
第 466 次训练loss= 0.01207
第 467 次训练loss= 0.01184
第 468 次训练loss= 0.01162
第 469 次训练loss= 0.01139
第 470 次训练loss= 0.01117
第 471 次训练loss= 0.01096
第 472 次训练loss= 0.01075
第 473 次训练loss= 0.01054
第 474 次训练loss= 0.01034
第 475 次训练loss= 0.01014
第 476 次训练loss= 0.009944
第 477 次训练loss= 0.009753
第 478 次训练loss= 0.009565
第 479 次训练loss= 0.009377
第 480 次训练loss= 0.009197
第 481 次训练loss= 0.009019
第 482 次训练loss= 0.008841
第 483 次训练loss= 0.008672
第 484 次训练loss= 0.0085
第 485 次训练loss= 0.008334
第 486 次训练loss= 0.008172
第 487 次训练loss= 0.008014
第 488 次训练loss= 0.007855
第 489 次训练loss= 0.007699
第 490 次训练loss= 0.007551
第 491 次训练loss= 0.007402
第 492 次训练loss= 0.007256
第 493 次训练loss= 0.007109
第 494 次训练loss= 0.00697
第 495 次训练loss= 0.006832
第 496 次训练loss= 0.006695
第 497 次训练loss= 0.006564
第 498 次训练loss= 0.006432
第 499 次训练loss= 0.006305
第 500 次训练loss= 0.006178
第 501 次训练loss= 0.006055
第 502 次训练loss= 0.005933
第 503 次训练loss= 0.005816
第 504 次训练loss= 0.005698
第 505 次训练loss= 0.005585
第 506 次训练loss= 0.005471
第 507 次训练loss= 0.005359
第 508 次训练loss= 0.005251
第 509 次训练loss= 0.005148
第 510 次训练loss= 0.005041
第 511 次训练loss= 0.004939
第 512 次训练loss= 0.00484
第 513 次训练loss= 0.004742
第 514 次训练loss= 0.004645
第 515 次训练loss= 0.004551
第 516 次训练loss= 0.004457
第 517 次训练loss= 0.004366
第 518 次训练loss= 0.004276
第 519 次训练loss= 0.004187
第 520 次训练loss= 0.004102
第 521 次训练loss= 0.004019
第 522 次训练loss= 0.003936
第 523 次训练loss= 0.003856
第 524 次训练loss= 0.003776
第 525 次训练loss= 0.003698
第 526 次训练loss= 0.003621
第 527 次训练loss= 0.003546
第 528 次训练loss= 0.003471
第 529 次训练loss= 0.003399
第 530 次训练loss= 0.003328
第 531 次训练loss= 0.00326
第 532 次训练loss= 0.003192
第 533 次训练loss= 0.003125
第 534 次训练loss= 0.003059
第 535 次训练loss= 0.002996
第 536 次训练loss= 0.002932
第 537 次训练loss= 0.002872
第 538 次训练loss= 0.002811
第 539 次训练loss= 0.002752
第 540 次训练loss= 0.002693
第 541 次训练loss= 0.002636
第 542 次训练loss= 0.00258
第 543 次训练loss= 0.002527
第 544 次训练loss= 0.002473
第 545 次训练loss= 0.002421
第 546 次训练loss= 0.002369
第 547 次训练loss= 0.002319
第 548 次训练loss= 0.002269
第 549 次训练loss= 0.002222
第 550 次训练loss= 0.002173
第 551 次训练loss= 0.002127
第 552 次训练loss= 0.002081
第 553 次训练loss= 0.002037
第 554 次训练loss= 0.001993
第 555 次训练loss= 0.00195
第 556 次训练loss= 0.001908
第 557 次训练loss= 0.001867
第 558 次训练loss= 0.001826
第 559 次训练loss= 0.001787
第 560 次训练loss= 0.001747
第 561 次训练loss= 0.00171
第 562 次训练loss= 0.001673
第 563 次训练loss= 0.001637
第 564 次训练loss= 0.001601
第 565 次训练loss= 0.001566
第 566 次训练loss= 0.001532
第 567 次训练loss= 0.001499
第 568 次训练loss= 0.001466
第 569 次训练loss= 0.001434
第 570 次训练loss= 0.001402
第 571 次训练loss= 0.001372
第 572 次训练loss= 0.001341
第 573 次训练loss= 0.001312
第 574 次训练loss= 0.001283
第 575 次训练loss= 0.001254
第 576 次训练loss= 0.001227
第 577 次训练loss= 0.001199
第 578 次训练loss= 0.001172
第 579 次训练loss= 0.001148
第 580 次训练loss= 0.001122
第 581 次训练loss= 0.001096
第 582 次训练loss= 0.001072
第 583 次训练loss= 0.001048
第 584 次训练loss= 0.001025
第 585 次训练loss= 0.001002
第 586 次训练loss= 0.0009799
第 587 次训练loss= 0.0009568
第 588 次训练loss= 0.0009359
第 589 次训练loss= 0.0009149
第 590 次训练loss= 0.0008937
第 591 次训练loss= 0.0008741
第 592 次训练loss= 0.0008538
第 593 次训练loss= 0.0008353
第 594 次训练loss= 0.0008157
第 595 次训练loss= 0.0007984
第 596 次训练loss= 0.0007797
第 597 次训练loss= 0.0007621
第 598 次训练loss= 0.0007448
第 599 次训练loss= 0.0007273
第 600 次训练loss= 0.0007106
第 601 次训练loss= 0.0006944
第 602 次训练loss= 0.0006784
第 603 次训练loss= 0.000663
第 604 次训练loss= 0.0006483
第 605 次训练loss= 0.0006333
第 606 次训练loss= 0.0006194
第 607 次训练loss= 0.0006042
第 608 次训练loss= 0.0005909
第 609 次训练loss= 0.0005775
第 610 次训练loss= 0.0005633
第 611 次训练loss= 0.0005507
第 612 次训练loss= 0.0005382
第 613 次训练loss= 0.000526
第 614 次训练loss= 0.0005135
第 615 次训练loss= 0.0005012
第 616 次训练loss= 0.0004903
第 617 次训练loss= 0.0004783
第 618 次训练loss= 0.0004675
第 619 次训练loss= 0.0004559
第 620 次训练loss= 0.0004455
第 621 次训练loss= 0.0004349
第 622 次训练loss= 0.0004248
第 623 次训练loss= 0.0004147
第 624 次训练loss= 0.0004052
第 625 次训练loss= 0.0003955
第 626 次训练loss= 0.0003867
第 627 次训练loss= 0.0003774
第 628 次训练loss= 0.0003689
第 629 次训练loss= 0.0003595
第 630 次训练loss= 0.0003513
第 631 次训练loss= 0.000343
第 632 次训练loss= 0.0003345
第 633 次训练loss= 0.0003269
第 634 次训练loss= 0.0003195
第 635 次训练loss= 0.0003116
第 636 次训练loss= 0.0003039
第 637 次训练loss= 0.0002968
第 638 次训练loss= 0.0002895
第 639 次训练loss= 0.0002831
第 640 次训练loss= 0.0002761
第 641 次训练loss= 0.0002696
第 642 次训练loss= 0.0002627
第 643 次训练loss= 0.0002571
第 644 次训练loss= 0.0002506
第 645 次训练loss= 0.0002445
第 646 次训练loss= 0.0002388
第 647 次训练loss= 0.0002329
第 648 次训练loss= 0.0002273
第 649 次训练loss= 0.0002218
第 650 次训练loss= 0.0002164
第 651 次训练loss= 0.0002112
第 652 次训练loss= 0.000206
第 653 次训练loss= 0.000201
第 654 次训练loss= 0.0001964
第 655 次训练loss= 0.0001916
第 656 次训练loss= 0.0001864
第 657 次训练loss= 0.0001822
第 658 次训练loss= 0.0001776
第 659 次训练loss= 0.0001731
第 660 次训练loss= 0.0001691
第 661 次训练loss= 0.0001649
第 662 次训练loss= 0.0001607
第 663 次训练loss= 0.0001569
第 664 次训练loss= 0.0001528
第 665 次训练loss= 0.0001492
第 666 次训练loss= 0.0001454
第 667 次训练loss= 0.000142
第 668 次训练loss= 0.0001383
第 669 次训练loss= 0.0001351
第 670 次训练loss= 0.0001318
第 671 次训练loss= 0.0001282
第 672 次训练loss= 0.0001252
第 673 次训练loss= 0.0001222
第 674 次训练loss= 0.0001189
第 675 次训练loss= 0.0001165
第 676 次训练loss= 0.0001132
第 677 次训练loss= 0.0001105
第 678 次训练loss= 0.0001077
第 679 次训练loss= 0.0001048
第 680 次训练loss= 0.0001021
第 681 次训练loss= 9.992e-05
第 682 次训练loss= 9.75e-05
第 683 次训练loss= 9.491e-05
第 684 次训练loss= 9.266e-05
第 685 次训练loss= 9.02e-05
第 686 次训练loss= 8.799e-05
第 687 次训练loss= 8.576e-05
第 688 次训练loss= 8.358e-05
第 689 次训练loss= 8.109e-05
第 690 次训练loss= 7.913e-05
第 691 次训练loss= 7.72e-05
第 692 次训练loss= 7.525e-05
第 693 次训练loss= 7.333e-05
第 694 次训练loss= 7.155e-05
第 695 次训练loss= 6.947e-05
第 696 次训练loss= 6.786e-05
第 697 次训练loss= 6.607e-05
第 698 次训练loss= 6.465e-05
第 699 次训练loss= 6.263e-05
第 700 次训练loss= 6.118e-05
第 701 次训练loss= 5.97e-05
第 702 次训练loss= 5.792e-05
第 703 次训练loss= 5.654e-05
第 704 次训练loss= 5.496e-05
第 705 次训练loss= 5.371e-05
第 706 次训练loss= 5.237e-05
第 707 次训练loss= 5.093e-05
第 708 次训练loss= 4.972e-05
第 709 次训练loss= 4.833e-05
第 710 次训练loss= 4.718e-05
第 711 次训练loss= 4.584e-05
第 712 次训练loss= 4.48e-05
第 713 次训练loss= 4.353e-05
第 714 次训练loss= 4.224e-05
第 715 次训练loss= 4.129e-05
第 716 次训练loss= 4.026e-05
第 717 次训练loss= 3.926e-05
第 718 次训练loss= 3.807e-05
第 719 次训练loss= 3.7e-05
第 720 次训练loss= 3.626e-05
第 721 次训练loss= 3.514e-05
第 722 次训练loss= 3.425e-05
第 723 次训练loss= 3.322e-05
第 724 次训练loss= 3.26e-05
第 725 次训练loss= 3.164e-05
第 726 次训练loss= 3.076e-05
第 727 次训练loss= 2.985e-05
第 728 次训练loss= 2.927e-05
第 729 次训练loss= 2.838e-05
第 730 次训练loss= 2.76e-05
第 731 次训练loss= 2.693e-05
第 732 次训练loss= 2.62e-05
第 733 次训练loss= 2.541e-05
第 734 次训练loss= 2.471e-05
第 735 次训练loss= 2.423e-05
第 736 次训练loss= 2.358e-05
第 737 次训练loss= 2.295e-05
第 738 次训练loss= 2.225e-05
第 739 次训练loss= 2.165e-05
第 740 次训练loss= 2.108e-05
第 741 次训练loss= 2.054e-05
第 742 次训练loss= 1.994e-05
第 743 次训练loss= 1.942e-05
第 744 次训练loss= 1.889e-05
第 745 次训练loss= 1.838e-05
第 746 次训练loss= 1.789e-05
第 747 次训练loss= 1.748e-05
第 748 次训练loss= 1.699e-05
第 749 次训练loss= 1.656e-05
第 750 次训练loss= 1.595e-05
第 751 次训练loss= 1.56e-05
第 752 次训练loss= 1.51e-05
第 753 次训练loss= 1.478e-05
第 754 次训练loss= 1.445e-05
第 755 次训练loss= 1.395e-05
第 756 次训练loss= 1.373e-05
第 757 次训练loss= 1.331e-05
第 758 次训练loss= 1.278e-05
第 759 次训练loss= 1.249e-05
第 760 次训练loss= 1.216e-05
第 761 次训练loss= 1.188e-05
第 762 次训练loss= 1.158e-05
第 763 次训练loss= 1.112e-05
第 764 次训练loss= 1.088e-05
第 765 次训练loss= 1.057e-05
第 766 次训练loss= 1.033e-05
第 767 次训练loss= 9.926e-06
第 768 次训练loss= 9.719e-06
第 769 次训练loss= 9.498e-06
第 770 次训练loss= 9.146e-06
第 771 次训练loss= 9.044e-06
第 772 次训练loss= 8.666e-06
第 773 次训练loss= 8.523e-06
第 774 次训练loss= 8.259e-06
第 775 次训练loss= 8.013e-06
第 776 次训练loss= 7.895e-06
第 777 次训练loss= 7.544e-06
第 778 次训练loss= 7.549e-06
第 779 次训练loss= 7.21e-06
第 780 次训练loss= 6.924e-06
第 781 次训练loss= 7.017e-06
第 782 次训练loss= 6.561e-06
第 783 次训练loss= 6.455e-06
第 784 次训练loss= 6.253e-06
第 785 次训练loss= 6.013e-06
第 786 次训练loss= 6.036e-06
第 787 次训练loss= 5.69e-06
第 788 次训练loss= 5.69e-06
第 789 次训练loss= 5.437e-06
第 790 次训练loss= 5.235e-06
第 791 次训练loss= 5.099e-06
第 792 次训练loss= 4.893e-06
第 793 次训练loss= 4.848e-06
第 794 次训练loss= 4.705e-06
第 795 次训练loss= 4.46e-06
第 796 次训练loss= 4.388e-06
第 797 次训练loss= 4.206e-06
第 798 次训练loss= 4.166e-06
第 799 次训练loss= 4.048e-06
第 800 次训练loss= 3.935e-06
第 801 次训练loss= 3.818e-06
第 802 次训练loss= 3.698e-06
第 803 次训练loss= 3.637e-06
第 804 次训练loss= 3.563e-06
第 805 次训练loss= 3.359e-06
第 806 次训练loss= 3.301e-06
第 807 次训练loss= 3.226e-06
第 808 次训练loss= 3.058e-06
第 809 次训练loss= 3.068e-06
第 810 次训练loss= 2.919e-06
第 811 次训练loss= 2.937e-06
第 812 次训练loss= 2.741e-06
第 813 次训练loss= 2.681e-06
第 814 次训练loss= 2.679e-06
第 815 次训练loss= 2.513e-06
第 816 次训练loss= 2.471e-06
第 817 次训练loss= 2.421e-06
第 818 次训练loss= 2.297e-06
第 819 次训练loss= 2.262e-06
第 820 次训练loss= 2.157e-06
第 821 次训练loss= 2.124e-06
第 822 次训练loss= 2.069e-06
第 823 次训练loss= 2.028e-06
第 824 次训练loss= 2.005e-06
第 825 次训练loss= 1.885e-06
第 826 次训练loss= 1.966e-06
第 827 次训练loss= 1.822e-06
第 828 次训练loss= 1.781e-06
第 829 次训练loss= 1.833e-06
第 830 次训练loss= 1.579e-06
第 831 次训练loss= 1.818e-06
第 832 次训练loss= 1.607e-06
第 833 次训练loss= 1.57e-06
第 834 次训练loss= 1.79e-06
第 835 次训练loss= 1.382e-06
第 836 次训练loss= 1.587e-06
第 837 次训练loss= 1.398e-06
第 838 次训练loss= 1.357e-06
第 839 次训练loss= 1.494e-06
第 840 次训练loss= 1.211e-06
第 841 次训练loss= 1.226e-06
第 842 次训练loss= 1.222e-06
第 843 次训练loss= 1.1e-06
第 844 次训练loss= 1.2e-06
第 845 次训练loss= 1.018e-06
第 846 次训练loss= 1.044e-06
第 847 次训练loss= 9.651e-07
第 848 次训练loss= 9.411e-07
第 849 次训练loss= 9.095e-07
第 850 次训练loss= 9.256e-07
第 851 次训练loss= 8.467e-07
第 852 次训练loss= 8.654e-07
第 853 次训练loss= 9.014e-07
第 854 次训练loss= 7.967e-07
第 855 次训练loss= 8.073e-07
第 856 次训练loss= 8.225e-07
第 857 次训练loss= 6.966e-07
第 858 次训练loss= 6.759e-07
第 859 次训练loss= 6.902e-07
第 860 次训练loss= 6.36e-07
第 861 次训练loss= 6.445e-07
第 862 次训练loss= 6.12e-07
第 863 次训练loss= 5.717e-07
第 864 次训练loss= 6.136e-07
第 865 次训练loss= 5.539e-07
第 866 次训练loss= 5.451e-07
第 867 次训练loss= 5.476e-07
第 868 次训练loss= 4.871e-07
第 869 次训练loss= 5.397e-07
第 870 次训练loss= 5.094e-07
第 871 次训练loss= 4.585e-07
第 872 次训练loss= 4.456e-07
第 873 次训练loss= 4.199e-07
第 874 次训练loss= 4.052e-07
第 875 次训练loss= 4.389e-07
第 876 次训练loss= 4.434e-07
第 877 次训练loss= 3.766e-07
第 878 次训练loss= 4.021e-07
第 879 次训练loss= 3.917e-07
第 880 次训练loss= 3.349e-07
第 881 次训练loss= 4.179e-07
第 882 次训练loss= 5.047e-07
第 883 次训练loss= 3.347e-07
第 884 次训练loss= 3.845e-07
第 885 次训练loss= 4.533e-07
第 886 次训练loss= 2.754e-07
第 887 次训练loss= 3.547e-07
第 888 次训练loss= 3.069e-07
第 889 次训练loss= 2.961e-07
第 890 次训练loss= 3.131e-07
第 891 次训练loss= 2.408e-07
第 892 次训练loss= 2.621e-07
第 893 次训练loss= 2.42e-07
第 894 次训练loss= 2.129e-07
第 895 次训练loss= 2.045e-07
第 896 次训练loss= 2.209e-07
第 897 次训练loss= 2.489e-07
第 898 次训练loss= 2.411e-07
第 899 次训练loss= 1.89e-07
第 900 次训练loss= 2.196e-07
第 901 次训练loss= 2.256e-07
第 902 次训练loss= 1.643e-07
第 903 次训练loss= 1.892e-07
第 904 次训练loss= 2.083e-07
第 905 次训练loss= 1.647e-07
第 906 次训练loss= 2.957e-07
第 907 次训练loss= 2.505e-07
第 908 次训练loss= 1.408e-07
第 909 次训练loss= 2.648e-07
第 910 次训练loss= 2.408e-07
第 911 次训练loss= 1.353e-07
第 912 次训练loss= 1.616e-07
第 913 次训练loss= 2.292e-07
第 914 次训练loss= 1.53e-07
第 915 次训练loss= 1.193e-07
第 916 次训练loss= 1.35e-07
第 917 次训练loss= 1.281e-07
第 918 次训练loss= 1.159e-07
第 919 次训练loss= 1.84e-07
第 920 次训练loss= 1.083e-07
第 921 次训练loss= 1.584e-07
第 922 次训练loss= 1.774e-07
第 923 次训练loss= 8.778e-08
第 924 次训练loss= 1.378e-07
第 925 次训练loss= 1.043e-07
第 926 次训练loss= 7.448e-08
第 927 次训练loss= 1.076e-07
第 928 次训练loss= 9.258e-08
第 929 次训练loss= 7.668e-08
第 930 次训练loss= 7.528e-08
第 931 次训练loss= 6.625e-08
第 932 次训练loss= 6.287e-08
第 933 次训练loss= 7.749e-08
第 934 次训练loss= 8.286e-08
第 935 次训练loss= 5.972e-08
第 936 次训练loss= 7.292e-08
第 937 次训练loss= 7.665e-08
第 938 次训练loss= 6.844e-08
第 939 次训练loss= 4.8e-08
第 940 次训练loss= 6.326e-08
第 941 次训练loss= 6.386e-08
第 942 次训练loss= 5.384e-08
第 943 次训练loss= 5.273e-08
第 944 次训练loss= 5.372e-08
第 945 次训练loss= 4.882e-08
第 946 次训练loss= 4.177e-08
第 947 次训练loss= 4.786e-08
第 948 次训练loss= 4.04e-08
第 949 次训练loss= 3.783e-08
第 950 次训练loss= 4.41e-08
第 951 次训练loss= 3.671e-08
第 952 次训练loss= 3.582e-08
第 953 次训练loss= 4.28e-08
第 954 次训练loss= 3.322e-08
第 955 次训练loss= 3.249e-08
第 956 次训练loss= 2.743e-08
第 957 次训练loss= 3.721e-08
第 958 次训练loss= 2.637e-08
第 959 次训练loss= 5.116e-08
第 960 次训练loss= 8.354e-08
第 961 次训练loss= 5.009e-08
第 962 次训练loss= 2.973e-08
第 963 次训练loss= 2.915e-08
第 964 次训练loss= 3.405e-08
第 965 次训练loss= 2.722e-08
第 966 次训练loss= 2.661e-08
第 967 次训练loss= 7.227e-08
第 968 次训练loss= 5.922e-08
第 969 次训练loss= 2.28e-08
第 970 次训练loss= 1.106e-07
第 971 次训练loss= 1.315e-07
第 972 次训练loss= 2.249e-08
第 973 次训练loss= 1.075e-07
第 974 次训练loss= 2.427e-07
第 975 次训练loss= 1.069e-07
第 976 次训练loss= 2.115e-08
第 977 次训练loss= 1.302e-07
第 978 次训练loss= 1.35e-07
第 979 次训练loss= 1.833e-08
第 980 次训练loss= 5.465e-08
第 981 次训练loss= 5.608e-08
第 982 次训练loss= 1.675e-08
第 983 次训练loss= 1.661e-08
第 984 次训练loss= 4.875e-08
第 985 次训练loss= 5.574e-08
第 986 次训练loss= 1.294e-08
第 987 次训练loss= 4.687e-08
第 988 次训练loss= 1.327e-07
第 989 次训练loss= 9.142e-08
第 990 次训练loss= 1.464e-08
第 991 次训练loss= 3.57e-08
第 992 次训练loss= 7.753e-08
第 993 次训练loss= 3.532e-08
第 994 次训练loss= 1.132e-08
第 995 次训练loss= 2.374e-08
第 996 次训练loss= 3.454e-08
第 997 次训练loss= 2.228e-08
第 998 次训练loss= 9.897e-09
第 999 次训练loss= 9.795e-09
第 1000 次训练loss= 9.762e-09
方程式为 Y=2.0X+4.0
Exported graph: graph(%inputs : Float(1, strides=[1], requires_grad=0, device=cpu),
      %linear.bias : Float(1, strides=[1], requires_grad=1, device=cpu),
      %onnx::MatMul_6 : Float(1, 1, strides=[1, 1], requires_grad=0, device=cpu)):
  %onnx::Add_4 : Float(1, strides=[1], device=cpu) = onnx::MatMul[onnx_name="MatMul_0"](%inputs, %onnx::MatMul_6) # F:\Anaconda3\lib\site-packages\torch\nn\modules\linear.py:114:0
  %outputs : Float(1, strides=[1], requires_grad=1, device=cpu) = onnx::Add[onnx_name="Add_1"](%linear.bias, %onnx::Add_4) # F:\Anaconda3\lib\site-packages\torch\nn\modules\linear.py:114:0
  return (%outputs)


Process finished with exit code 0

最终损失值比较小,w和b也比较贴近数据集的线性规律。

使用【detect.py】

上面我们训练并保存了模型,模型保存为onnx格式,接下来我们将此模型用于实际预测

import netron
import onnxruntime


def __main__():
    module_path = "module.onnx"
    netron.start(module_path)
    session = onnxruntime.InferenceSession(module_path)
    predict = session.run(output_names=["outputs"], input_feed={"inputs": [258.00]}, run_options=None)
    print("%.2f" % predict[0][0])


if __name__ == "__main__":
    __main__()

结果

netron

Pytorch线性模型初体验_第1张图片

outputs

F:\Anaconda3\python.exe D:\PycharmProjects\DeepLearning\detect.py 
Serving 'module.onnx' at http://localhost:8080
520.00

C#中调用

public static void Main()
{
      string modelFilePath = "onnxs/module.onnx";
      using var session = new InferenceSession(modelFilePath,SessionOptions.MakeSessionOptionWithCudaProvider(0));
      Tensor input = new DenseTensor(new[] { 1 });
      input[0] = 258f;
      var inputs = new List()
      {
            NamedOnnxValue.CreateFromTensor("inputs",input)
      };
      var outputs = session.Run(inputs);
      string result = ((DenseTensor)(outputs.First().Value))[0].ToString("0.00");
      Console.WriteLine(result);
      Console.ReadKey();
}

输出结果

Pytorch线性模型初体验_第2张图片

 

你可能感兴趣的:(pytorch,深度学习,人工智能)