生活随笔
收集整理的這篇文章主要介紹了
Pytorch(六) --处理高维特征数据
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本次的實(shí)驗(yàn),就類(lèi)似于神經(jīng)網(wǎng)絡(luò)中的全連接神經(jīng)網(wǎng)絡(luò),這是用來(lái)處理高維數(shù)據(jù)的。
神經(jīng)網(wǎng)絡(luò)共3層;第一層是8維到6維的非線性空間變換,第二層是6維到4維的非線性空間變換,第三層是4維到1維的非線性空間變換。
代碼如下所示:
xy
= np
.loadtxt
('E:\\tmp\\.keras\\datasets\\diabetes.csv\\diabetes.csv',delimiter
=',',dtype
=np
.float32
)
x_data
= torch
.from_numpy
(xy
[:,:-1])
y_data
= torch
.from_numpy
(xy
[:,[-1]])
class Model(torch
.nn
.Module
):def __init__(self
):super(Model
,self
).__init__
()self
.linear1
= torch
.nn
.Linear
(8,6)self
.linear2
= torch
.nn
.Linear
(6,4)self
.linear3
= torch
.nn
.Linear
(4,1)self
.sigmoid
= torch
.nn
.Sigmoid
()def forward(self
,x
):x
= self
.sigmoid
(self
.linear1
(x
))x
= self
.sigmoid
(self
.linear2
(x
))x
= self
.sigmoid
(self
.linear3
(x
))return x
model
= Model
()
criterion
= torch
.nn
.BCELoss
(reduction
='mean')
optimizer
= torch
.optim
.SGD
(model
.parameters
(),lr
=0.01)
epoch_list
= []
acc_list
= []
for epoch
in range(100000):y_pred
= model
(x_data
)loss
= criterion
(y_pred
,y_data
)optimizer
.zero_grad
()loss
.backward
()optimizer
.step
()y_pred_label
= torch
.where
(y_pred
>=0.5,torch
.tensor
([1.0]),torch
.tensor
([0.0]))acc
= torch
.eq
(y_pred_label
,y_data
).sum().item
()/y_data
.size
(0)epoch_list
.append
(epoch
)acc_list
.append
(acc
)print('epoch=',epoch
,'loss=',loss
.item
(),'acc=',acc
)
plt
.plot
(epoch_list
,acc_list
)
plt
.xlabel
('epoch')
plt
.ylabel
('acc')
plt
.show
()
模型最終的效果并不是很好,準(zhǔn)確率在78%左右。
epoch
= 99999 loss
= 0.4616067409515381 acc
= 0.764163372859025
努力加油a啊
總結(jié)
以上是生活随笔為你收集整理的Pytorch(六) --处理高维特征数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。