PyTorch搭建兩層網路

2021-10-02 01:12:46 字數 1476 閱讀 3945

舉乙個很簡單的例子來熟悉使用pytorch構建和訓練神經網路的整個過程。

import torch

import torch.nn as nn

n, d_in, h, d_out =64,

1000

,100,10

#隨機建立一些訓練資料

x = torch.randn(n, d_in)

y = torch.randn(n, d_out)

#定義model

class

towlayernet

(nn.module)

:def

__init__

(self, d_in, h, d_out)

:super

(towlayernet, self)

.__init__(

)# define the model architecture

self.linear1 = torch.nn.linear(d_in, h, bias=

false

) self.linear2 = torch.nn.linear(h, d_out, bias=

false

)#在呼叫towlayernet(x)的時候自動呼叫forward函式

defforward

(self, x)

: y_pred = self.linear2(self.linear1(x)

.clamp(

min=0)

)return y_pred

#使用模型

model = towlayernet(d_in, h, d_out)

#定義loss函式

loss_fn = nn.mseloss(reduction=

'sum'

)#定義學習率

learning_rate =1e-

4#進行梯度下降優化模型

optimizer = torch.optim.adam(model.parameters(

), lr = learning_rate)

#訓練網路

for it in

range

(500):

#forward pass

y_pred = model(x)

# model.forward()

#計算loss

loss = loss_fn(y_pred, y)

# 在計算機中是乙個計算圖

print

(it, loss.item())

#每一次要把梯度置0

optimizer.zero_grad(

)#backward pass,計算出每一步的梯度

loss.backward(

)#update model paraeters

optimizer.step(

)

Pytorch兩層神經網路

這一次我們不用手動更新model的weights,而是使用optim這個包來幫助我們更新引數。optim這個package提供了各種不同的model優化方法,包括sgd momentum,rmsprop,adam import torch n,d in,h,d out 64,1000 100,10 ...

兩層卷積網路分類

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 讀取資料 mnist input data.read data sets mnist data one hot true x為訓練影象...

兩層網路 三層網路的理解

對於搞it的同行而言,大部分人都不會直接和網路打交道,因此除非從事網路開發,否則對網路內部機制也不會太關心,但是明白網路資料是怎麼走的,這對每個it工程師應該是很重要的基礎知識。網路資料報如何在網路上遊蕩,長久以來也困擾了我很長時間,現在把這部分內容總結分享一下。說起網路,大家不約而同會想起大學課本...