4. pytorch-全連接網(wǎng)絡(回歸)

參考莫煩教程

import torch
import numpy as np
from torch.autograd import Variable
import torch.nn.functional as F
import matplotlib.pyplot as plt


class Net(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.l1 = torch.nn.Linear(1, 10) # 不需要考慮batch_size
        self.l2 = torch.nn.Linear(10, 1)

    def forward(self, x):
        x = F.relu(self.l1(x))
        x = self.l2(x)
        return x


if __name__ == "__main__":
    # 1. 數(shù)據(jù)準備
    x_np = np.linspace(-1, 1, 100, dtype=np.float32)  # 保證使用from_numpy生成FloatTensor
    x = torch.unsqueeze(torch.from_numpy(x_np), dim=1)
    y = x ** 2 + 0.2 * torch.rand(x.size())
    x, y = Variable(x), Variable(y)
    # plt.scatter(x.data.numpy(), y.data.numpy())
    # plt.show()

    # 2. 定義網(wǎng)絡結(jié)構(gòu)
    neural_net = Net()
    # print(neural_net) # 查看網(wǎng)絡結(jié)構(gòu)

    # 3. 訓練網(wǎng)絡
    optimizer = torch.optim.SGD(neural_net.parameters(), lr=0.5)
    loss_F = torch.nn.MSELoss()
    # 畫圖
    plt.ion()  # 打開交互模式,調(diào)用plot會立即顯示,無需使用show()
    for t in range(100):
        # 重載了__call__()方法
        prediction = neural_net(x)  # 默認把第一維看成batch_size,定義網(wǎng)絡時并不關(guān)心batch_size

        loss = loss_F(prediction, y)
        if t % 10 == 0:
            # 畫圖
            plt.cla()  # 清空圖
            plt.scatter(x.data.numpy(), y.data.numpy())
            plt.plot(x.data.numpy(), prediction.data.numpy(), color="red", linewidth=2.0)
            plt.text(0.5, 0.1, "loss: {:.5f}".format(loss.data.numpy()))
            plt.pause(0.1)  # 如果不暫停,循環(huán)10次會非常快潭辈。導致只能看到最后一張圖

        optimizer.zero_grad()  # 因為每次反向傳播的時候嫡锌,變量里面的梯度都要清零
        loss.backward()  # 變量得到了grad
        optimizer.step()  # 更新參數(shù)
    plt.ioff()
    plt.show()  # 使用show()會阻塞(即,窗口不會變化蚕苇,也不會自動退出)
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子忱详,更是在濱河造成了極大的恐慌,老刑警劉巖跺涤,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匈睁,死亡現(xiàn)場離奇詭異,居然都是意外死亡桶错,警方通過查閱死者的電腦和手機航唆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來院刁,“玉大人糯钙,你說我怎么就攤上這事。” “怎么了任岸?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵鸳玩,是天一觀的道長。 經(jīng)常有香客問我演闭,道長不跟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任米碰,我火速辦了婚禮窝革,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吕座。我一直安慰自己虐译,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布吴趴。 她就那樣靜靜地躺著漆诽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锣枝。 梳的紋絲不亂的頭發(fā)上厢拭,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音撇叁,去河邊找鬼供鸠。 笑死,一個胖子當著我的面吹牛陨闹,可吹牛的內(nèi)容都是我干的楞捂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼趋厉,長吁一口氣:“原來是場噩夢啊……” “哼寨闹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起君账,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤繁堡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后杈绸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帖蔓,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡矮瘟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年瞳脓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澈侠。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡劫侧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烧栋,我是刑警寧澤写妥,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站审姓,受9級特大地震影響珍特,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜魔吐,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一扎筒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酬姆,春花似錦嗜桌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至相满,卻和暖如春层亿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背立美。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工棕所, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悯辙。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓琳省,卻偏偏與公主長得像,于是被迫代替她去往敵國和親躲撰。 傳聞我的和親對象是個殘疾皇子针贬,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容