我是用的是pytorch框架,python3.6, 開發工具pycharm
這裡自己造假資料,實現回歸模型
一、造資料
import torch
import numpy as np
import matplotlib.pyplot as plt
from torch.nn.functional as f #獲得神經網路的激勵函式
from torch.autograd import variable #變數(將張量資料變數化,神經網路只能處理變數)
x = torch.unsqueeze(torch.linspace(-1,1,100),dim=1) #使用unsqueeze將資料轉換為二維資料,需要用上dim引數
y = x.pow(2) + 0.2*torch.rand(x.size())
x, y = variable(x,requires_grad=false), variable(y,requires_grad=false)
二、搭神經網路
class net(torch.nn.module):
def __init__(self, n_feature,n_hidden,n_output):
super(net, self).__init__()
self.hidden = torch.nn.linear(n_feature,n_hidden)
self.predict = torch.nn.linear(n_hidden,n_output)
def forward(self,x):
x = f.relu(self.hidden(x))
x = self.predict(x)
return x
net = net(1,10,1)
plt.ion()
plt.show()
三、優化神經網路
optimizer = torch.optim.sgd(net.parameters(), lr=0.5)
loss_func = torch.nn.mseloss() #均方差足以解決回歸問題中的誤差
四、訓練
for t in range(100):
prediction = net(x)
loss = loss_func(prediction, y)
#所有引數的梯度降為為0
optimizer.zero_grad()
#反向傳遞,給每乙個神經元計算出梯度
loss.backward()
#以0.5的學習率來優化梯度
optimizer.step()
#以下為畫圖**:
if t % 5 == 0:
plt.cla()
plt.scatter(x.data.numpy(), y.data.numpy())
plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=5)
plt.text(0.5, 0, 'loss=%.4f' % loss.data.item(), fontdict=)
plt.pause(0.1)
plt.ioff()
plt.show()
就這樣這是乙個簡單的實現神經網路進行回歸訓練的例項
訓練結果:
上述步驟的第二步,也可以用快速搭建法去實現神經網路的搭建, 這樣就省事多了
在這裡插入**片
net = torch.nn.sequential(
torch.nn.linear(1,10),
torch.nn.relu(),
torch.linear(10,1),
)
搭建第乙個Vue專案
如果沒有什麼問題的話,nodejs安裝成功後會將npm 包管理工具 自動新增至系統的環境變數。開啟cmd,輸入命令 npm v 我的結果如下,表示安裝成功,npm已新增至系統環境變數 npm畢竟是國外的,抽風是極有可能的。所以可以使用taobao的替代產品cnpm。安裝方式為在cmd中輸入如下 np...
EMguCV搭建第乙個程式
這篇部落格旨在教學emgucv3.0的安裝與配置。環境 vs2013 emgucv3.0 emgu cv簡介 emgu cv 是.net平台下對opencv影象處理庫的封裝。也就是opencv的.net版。它執行在.net相容的程式語言下呼叫opencv的函式,如c vb vc 等。同時這個封裝庫可...
python學習 動手寫第乙個類
俗話說 好記性不如爛筆頭 真正開始寫類的時候才發現那是相當累啊。一 題目 編寫乙個類,實現簡單的棧。資料的操作按照先進後出 filo 的順序。主要成員函式為put item 實現資料item插入棧中 get 實現從棧中取乙個資料。二 準備工作 開始之前要做些準備工作,主要是熟悉點規範吧,以後慢慢正規...