【PyTorch基礎教程7】多維特徵input(學不會來打我啊)
# -*- coding: utf-8 -*-
"""
Created on Mon Oct 18 10:18:24 2021
@author: 86493
"""
import torch
import torch.nn as nn
import numpy as np
import matplotlib.pyplot as plt
# 這裡的 type 不用 double ,特斯拉 GPU 才 double
xy = np.loadtxt('diabetes.csv',
delimiter = ' ',
dtype = np.float32)
# 最後一列不要
x_data = torch.from_numpy(xy[: , : -1])
# [-1] 則拿出來的是一個矩陣,去了中括號則拿出向量
y_data = torch.from_numpy(xy[:, [-1]])
losslst = []
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.linear1 = nn.Linear(9, 6)
self.linear2 = nn.Linear(6, 4)
self.linear3 = nn.Linear(4, 1)
# 上次 logistic 是呼叫 nn.functional 的 Sigmoid
self.sigmoid = nn.Sigmoid()
# 外匯跟單gendan5.com 這個也是繼承 Module, 沒有引數 , 比上次寫法不容易出錯
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 = nn.BCELoss(size_average = False)
optimizer = torch.optim.SGD(model.parameters(),
lr = 0.01)
# 訓練,下面沒有用 mini-batch ,後面講 dataloader 再說
for epoch in range(10):
y_predict = model(x_data)
loss = criterion(y_predict, y_data)
# 列印 loss 物件會自動呼叫 __str__
print(epoch, loss.item())
losslst.append(loss.item())
# 梯度清零後反向傳播
optimizer.zero_grad()
loss.backward()
# 更新權重
optimizer.step()
# 畫圖
plt.plot(range(10), losslst)
plt.ylabel('Loss')
plt.xlabel('epoch')
plt.show()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2838188/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PyTorch基礎教程7】多維特徵inputPyTorch特徵
- 關於 JOIN 耐心總結,學不會你打我係列
- 基礎篇:非同步程式設計不會?我教你啊!CompeletableFuture非同步程式設計
- 看了這篇還不會Linux效能分析和優化,你來打我Linux優化
- 26. 企業級開發基礎7:物件導向特徵(多型)物件特徵多型
- 深度學習及pytorch基礎深度學習PyTorch
- 怎麼學習基礎知識啊?
- Unity基礎——InputUnity
- PyTorch基礎——輸入batch第0維含義PyTorchBAT
- python基礎學習之 特徵工程Python特徵工程
- 思維導圖來學習Javascript基礎知識JavaScript
- Python好學嗎難不難?0基礎能學會嗎?Python
- JavaScript學習7:DOM基礎JavaScript
- 使用 C# 入門深度學習:Pytorch 基礎C#深度學習PyTorch
- Java 7基礎教程:掌握Java 7的理想起點Java
- C++多執行緒基礎教程C++執行緒
- 美團面試,問的都是基礎啊!面試
- 《Python基礎教程》第7章 更加抽象Python抽象
- Spring Boot 2.x基礎教程:MyBatis的多資料來源配置Spring BootMyBatis
- ES5基礎學習教程
- 【Pytorch教程】迅速入門Pytorch深度學習框架PyTorch深度學習框架
- 學習Linux運維需要花費多長時間?Linux基礎Linux運維
- 0基礎學web前端難不難?Web前端
- 零基礎學習人工智慧—Python—Pytorch學習(一)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(二)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(三)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(九)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(四)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(五)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(六)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(七)人工智慧PythonPyTorch
- 零基礎學習人工智慧—Python—Pytorch學習(八)人工智慧PythonPyTorch
- Pytorch系列之常用基礎操作PyTorch
- Pytorch基礎-張量基本操作PyTorch
- 十二、pytorch的基礎知識PyTorch
- 第二章 Pytorch基礎PyTorch
- Xamarin圖表開發基礎教程(7)OxyPlot框架框架
- AndoridSQLite資料庫開發基礎教程(7)SQLite資料庫