Pytorch深度學習實踐(二) 線性模型

2021-10-17 08:46:31 字數 2174 閱讀 2369

import numpy as np

import matplotlib.pyplot as plt

x_data =

[1.0

,2.0

,3.0

]y_data =

[2.0

,4.0

,6.0

]def

forward

(x):

return x * w

defloss

(x, y)

: y_pred = forward(x)

return

(y_pred - y)

*(y_pred - y)

w_list =

mse_list =

for w in np.arange(

0.0,

4.1,

0.1)

:print

('w='

,w) l_sum =

0for x_val, y_val in

zip(x_data, y_data)

: y_pred_val = forward(x_val)

loss_val = loss(x_val, y_val)

l_sum += loss_val

print

('\t'

, x_val, y_val, y_pred_val, loss_val)

print

('mse='

, l_sum/3)

3)plt.plot(w_list, mse_list)

plt.ylabel(

'mse'

)plt.xlabel(

'w')

plt.show(

)

結果如下:

課後作業:

將線性模型由 y(hat) = x * w 改為 y(hat) = x * w - b

損失函式發生改變,結果圖由二維變為三維

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import axes3d

x_data =

[1.0

,2.0

,3.0

]y_data =

[2.0

,4.0

,6.0

]def

forward

(x):

return x * w - b

defloss

(x, y)

: y_pred = forward(x)

return

(y_pred - y)

*(y_pred - y)

mse_list =

w = np.arange(

0.0,

4.1,

0.1)

b = np.arange(

0.0,

4.1,

0.1)

[w,b]

=np.meshgrid(w,b)

#生成座標點的網格矩陣,自動進行二次迴圈

l_sum =

0for x_val, y_val in

zip(x_data, y_data)

: y_pred_val = forward(x_val)

print

(y_pred_val)

loss_val = loss(x_val, y_val)

l_sum += loss_val

fig = plt.figure(

)ax = axes3d(fig)

ax.plot_su***ce(w, b, l_sum/3)

plt.show(

)

結果展示:

PyTorch深度學習實踐 Overview

pytorch是乙個基於torch的python開源機器學習庫,用於自然語言處理等應用程式。它主要由facebookd的人工智慧小組開發,不僅能夠 實現強大的gpu加速,同時還支援動態神經網路。pytorch是乙個動態的框架,而tensorflow是靜態框架 2.x版本也為動態框架優先 靜態框架就是...

Pytorch深度學習實踐 線性模型

在看劉二大人的pytorch教程,寫個筆記記錄一下,如果有什麼問題歡迎一起 呀 傳送門 劉二大人的pytorch深度學習實踐 線性模型 首先是線性模型的定義 給定由d個屬性描述對的示例x x x x 其中 是第i個屬性上的取值,線性模型試圖學得乙個通過屬性的線性組合來進行 的函式,即 轉換成向量形式...

PyTorch深度學習實踐 反向傳播

pytorch深度學習實踐 完結合集 嗶哩嗶哩 bilibili 目錄在之前課程中介紹的線性模型就是乙個最簡單的神經網路的結構,其內部引數的更新過程如下 對於簡單的模型來說可以直接使用表示式的方式來更新權重,但是如果網路結構比較複雜 如下圖 直接使用解析式的方式來更新顯然有些複雜且不太可能實現。反向...