日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

 

 

 

 

 

人工智能編程:如何可視化神經(jīng)網(wǎng)絡(luò)算法模型的訓(xùn)練過(guò)程?

 

 

人工智能編程:如何可視化神經(jīng)網(wǎng)絡(luò)算法模型的訓(xùn)練過(guò)程?

 

 

本文將介紹一個(gè)和pytorch緊密結(jié)合的機(jī)器學(xué)習(xí)庫(kù),visdom

Visdom的安裝

Pip install visdom

如果安裝失敗

pip install --upgrade visdom

安裝好之后,我們需要實(shí)時(shí)開啟

Python -m visdom.server

然后會(huì)出現(xiàn)

人工智能編程:如何可視化神經(jīng)網(wǎng)絡(luò)算法模型的訓(xùn)練過(guò)程?

 

在瀏覽輸入這個(gè)網(wǎng)址就可以開啟visdom了

當(dāng)我們使用visdom畫圖的時(shí)候,我們需要

from visdom import Visdom

viz=Visdom()

然后就可以使用viz來(lái)進(jìn)行畫圖了

畫線的話可以使用viz.line

畫圖片的話可以使用viz.image

畫文字的話可以使用viz.text

畫線的時(shí)候,要先畫一個(gè)起始點(diǎn),然后后面的對(duì)它進(jìn)行覆蓋操作

from visdom import Visdom
import numpy as np
import torch
x=np.arange(0,10)
y=np.arange(0,10)*9
print(x)
viz=Visdom()
viz.line([0.],[0.],win="first",opts=dict(title='first'))
viz.line(y,x,win="first",update='Append')

畫線的時(shí)候,可以先畫一個(gè)其實(shí)的圖,然后后面的對(duì)它進(jìn)行添加操作,當(dāng)然也可以直接來(lái)畫圖

viz.line([0.],[0.],win="first",opts=dict(title='first'))

表示畫起始點(diǎn)

viz.line(y,x,win="first",update='append')

表示添加操作

其中win=""first"表示畫在first的區(qū)域,主題名為first

然后

viz.line(y,x,win="first",update='append')

win="first"表示對(duì)first區(qū)域添加畫圖,append表示添加

 

import torch

import torch.nn as nn

import torch.nn.functional as F

import torch.optim as optim

from torchvision import datasets, transforms

from visdom import Visdom

batch_size=200

learning_rate=0.01

epochs=10

train_loader = torch.utils.data.DataLoader(

datasets.MNIST('./data', train=True, download=True,

transform=transforms.Compose([

transforms.ToTensor(),

])),

batch_size=batch_size, shuffle=True)

test_loader = torch.utils.data.DataLoader(

datasets.MNIST('./data', train=False, transform=transforms.Compose([

transforms.ToTensor(),

])),

batch_size=batch_size, shuffle=True)

class MLP(nn.Module):

def __init__(self):

super(MLP, self).__init__()

self.model = nn.Sequential(

nn.Linear(784, 200),

nn.LeakyReLU(inplace=True),

nn.Linear(200, 200),

nn.LeakyReLU(inplace=True),

nn.Linear(200, 10),

nn.LeakyReLU(inplace=True),

)

def forward(self, x):

x = self.model(x)

return x

device = torch.device('cpu')

net = MLP().to(device)

optimizer = optim.SGD.NET.parameters(), lr=learning_rate)

criteon = nn.CrossEntropyLoss()

viz = Visdom()

viz.line([0.], [0.], win='train_loss', opts=dict(title='train loss'))

viz.line([[0.0, 0.0]], [0.], win='test', opts=dict(title='test loss&acc.',

legend=['loss', 'acc.']))

global_step = 0

for epoch in range(epochs):

for batch_idx, (data, target) in enumerate(train_loader):

data = data.view(-1, 28*28)

data, target = data.to(device), target.to(device)

logits = net(data)
#print(target)

loss = criteon(logits, target)

optimizer.zero_grad()

loss.backward()

# print(w1.grad.norm(), w2.grad.norm())

optimizer.step()

global_step += 1

viz.line([loss.item()], [global_step], win='train_loss', update='append')

if batch_idx % 100 == 0:

print('Train Epoch: {} [{}/{} ({:.0f}%)]tLoss: {:.6f}'.format(

epoch, batch_idx * len(data), len(train_loader.dataset),

100. * batch_idx / len(train_loader), loss.item()))

test_loss = 0

correct = 0

for data, target in test_loader:

data = data.view(-1, 28 * 28)

data, target = data.to(device), target.to(device)

logits = net(data)

test_loss += criteon(logits, target).item()

pred = logits.argmax(dim=1)

correct += pred.eq(target).float().sum().item()

viz.line([[test_loss, correct / len(test_loader.dataset)]],

[global_step], win='test', update='append')

viz.images(data.view(-1, 1, 28, 28), win='x')

viz.text(str(pred.detach().cpu().numpy()), win='pred',

opts=dict(title='pred'))

test_loss /= len(test_loader.dataset)

print('nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)n'.format(

test_loss, correct, len(test_loader.dataset),

100. * correct / len(test_loader.dataset)))

分享到:
標(biāo)簽:編程 智能
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定