好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例

pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例

熱門標(biāo)簽:鄭州智能外呼系統(tǒng)運(yùn)營(yíng)商 電話機(jī)器人適用業(yè)務(wù) 湛江電銷防封卡 徐州天音防封電銷卡 南昌辦理400電話怎么安裝 哈爾濱外呼系統(tǒng)代理商 不錯(cuò)的400電話辦理 獲客智能電銷機(jī)器人 佛山防封外呼系統(tǒng)收費(fèi)

1.效果

2.環(huán)境

1.pytorch
2.visdom
3.python3.5

3.用到的代碼

# coding:utf8
import torch
from torch import nn, optim   # nn 神經(jīng)網(wǎng)絡(luò)模塊 optim優(yōu)化函數(shù)模塊
from torch.utils.data import DataLoader
from torch.autograd import Variable
from torchvision import transforms, datasets
from visdom import Visdom  # 可視化處理模塊
import time
import numpy as np
# 可視化app
viz = Visdom()
# 超參數(shù)
BATCH_SIZE = 40
LR = 1e-3
EPOCH = 2
# 判斷是否使用gpu
USE_GPU = True
if USE_GPU:
    gpu_status = torch.cuda.is_available()
else:
    gpu_status = False
transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))])
# 數(shù)據(jù)引入
train_dataset = datasets.MNIST('../data', True, transform, download=False)
test_dataset = datasets.MNIST('../data', False, transform)
train_loader = DataLoader(train_dataset, BATCH_SIZE, True)
# 為加快測(cè)試,把測(cè)試數(shù)據(jù)從10000縮小到2000
test_data = torch.unsqueeze(test_dataset.test_data, 1)[:1500]
test_label = test_dataset.test_labels[:1500]
# visdom可視化部分?jǐn)?shù)據(jù)
viz.images(test_data[:100], nrow=10)
#viz.images(test_data[:100], nrow=10)
# 為防止可視化視窗重疊現(xiàn)象,停頓0.5秒
time.sleep(0.5)
if gpu_status:
    test_data = test_data.cuda()
test_data = Variable(test_data, volatile=True).float()
# 創(chuàng)建線圖可視化窗口
line = viz.line(np.arange(10))
# 創(chuàng)建cnn神經(jīng)網(wǎng)絡(luò)
class CNN(nn.Module):
    def __init__(self, in_dim, n_class):
        super(CNN, self).__init__()
        self.conv = nn.Sequential(
            # channel 為信息高度 padding為圖片留白 kernel_size 掃描模塊size(5x5)
            nn.Conv2d(in_channels=in_dim, out_channels=16,kernel_size=5,stride=1, padding=2),
            nn.ReLU(),
            # 平面縮減 28x28 >> 14*14
            nn.MaxPool2d(kernel_size=2),
            nn.Conv2d(16, 32, 3, 1, 1),
            nn.ReLU(),
            # 14x14 >> 7x7
            nn.MaxPool2d(2)
        )
        self.fc = nn.Sequential(
            nn.Linear(32*7*7, 120),
            nn.Linear(120, n_class)
        )
    def forward(self, x):
        out = self.conv(x)
        out = out.view(out.size(0), -1)
        out = self.fc(out)
        return out
net = CNN(1,10)
if gpu_status :
    net = net.cuda()
    #print("#"*26, "使用gpu", "#"*26)
else:
    #print("#" * 26, "使用cpu", "#" * 26)
    pass
# loss、optimizer 函數(shù)設(shè)置
loss_f = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=LR)
# 起始時(shí)間設(shè)置
start_time = time.time()
# 可視化所需數(shù)據(jù)點(diǎn)
time_p, tr_acc, ts_acc, loss_p = [], [], [], []
# 創(chuàng)建可視化數(shù)據(jù)視窗
text = viz.text("h1>convolution Nueral Network/h1>")
for epoch in range(EPOCH):
    # 由于分批次學(xué)習(xí),輸出loss為一批平均,需要累積or平均每個(gè)batch的loss,acc
    sum_loss, sum_acc, sum_step = 0., 0., 0.
    for i, (tx, ty) in enumerate(train_loader, 1):
        if gpu_status:
            tx, ty = tx.cuda(), ty.cuda()
        tx = Variable(tx)
        ty = Variable(ty)
        out = net(tx)
        loss = loss_f(out, ty)
        #print(tx.size())
        #print(ty.size())
        #print(out.size())
        sum_loss += loss.item()*len(ty)
        #print(sum_loss)
        pred_tr = torch.max(out,1)[1]
        sum_acc += sum(pred_tr==ty).item()
        sum_step += ty.size(0)
        # 學(xué)習(xí)反饋
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        # 每40個(gè)batch可視化一下數(shù)據(jù)
        if i % 40 == 0:
            if gpu_status:
                test_data = test_data.cuda()
            test_out = net(test_data)
            print(test_out.size())
            # 如果用gpu運(yùn)行out數(shù)據(jù)為cuda格式需要.cpu()轉(zhuǎn)化為cpu數(shù)據(jù) 在進(jìn)行比較
            pred_ts = torch.max(test_out, 1)[1].cpu().data.squeeze()
            print(pred_ts.size())
            rightnum = pred_ts.eq(test_label.view_as(pred_ts)).sum().item()
            #rightnum =sum(pred_tr==ty).item()
            #  sum_acc += sum(pred_tr==ty).item()
            acc =  rightnum/float(test_label.size(0))
            print("epoch: [{}/{}] | Loss: {:.4f} | TR_acc: {:.4f} | TS_acc: {:.4f} | Time: {:.1f}".format(epoch+1, EPOCH,
                                    sum_loss/(sum_step), sum_acc/(sum_step), acc, time.time()-start_time))
            # 可視化部分
            time_p.append(time.time()-start_time)
            tr_acc.append(sum_acc/sum_step)
            ts_acc.append(acc)
            loss_p.append(sum_loss/sum_step)
            viz.line(X=np.column_stack((np.array(time_p), np.array(time_p), np.array(time_p))),
                     Y=np.column_stack((np.array(loss_p), np.array(tr_acc), np.array(ts_acc))),
                     win=line,
                     opts=dict(legend=["Loss", "TRAIN_acc", "TEST_acc"]))
            # visdom text 支持html語(yǔ)句
            viz.text("p style='color:red'>epoch:{}/p>br>p style='color:blue'>Loss:{:.4f}/p>br>"
                     "p style='color:BlueViolet'>TRAIN_acc:{:.4f}/p>br>p style='color:orange'>TEST_acc:{:.4f}/p>br>"
                     "p style='color:green'>Time:{:.2f}/p>".format(epoch, sum_loss/sum_step, sum_acc/sum_step, acc,
                                                                       time.time()-start_time),
                     win=text)
            sum_loss, sum_acc, sum_step = 0., 0., 0.

以上就是pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例的詳細(xì)內(nèi)容,更多關(guān)于pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python深度學(xué)習(xí)pyTorch權(quán)重衰減與L2范數(shù)正則化解析
  • pyTorch深入學(xué)習(xí)梯度和Linear Regression實(shí)現(xiàn)
  • pyTorch深度學(xué)習(xí)多層感知機(jī)的實(shí)現(xiàn)
  • Pytorch深度學(xué)習(xí)gather一些使用問(wèn)題解決方案
  • Python強(qiáng)化練習(xí)之PyTorch opp算法實(shí)現(xiàn)月球登陸器

標(biāo)簽:安康 紹興 懷化 呂梁 吉安 蕪湖 廣西 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例》,本文關(guān)鍵詞  pytorch,教程,網(wǎng)絡(luò),和,損失,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于pytorch教程網(wǎng)絡(luò)和損失函數(shù)的可視化代碼示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 女沟厕偷窥piss小便| 日韩国产欧美| oldman老头毛都白了| 国产精品露脸脏话对白| 久久久久久精品国产观看2010| 国产mv欧美mv日产mv免费| 军婚滴着奶水做着爱| 午夜福利自怕| 男人操女人下载| 入禽太深视频| 加勒比一本大道香蕉大在线| 日韩在线视频一区| 国产情侣激情在线视频免费看| 精品国产一级A片黄毛网站| free性欧美另类hd| 斗破萧炎耕耘若琳导师| YELLOW日本高清免费中文无限看| 荷兰熟女性XXXX另类| 男女床上激情| 把腿放到调教台扩张调教高h| 嗯嗯啊用力| 99久久免费精品色老| 亚洲人做受???高潮| 性∴长腿美女???国产 | 男男憋尿play| www.亚洲免费| 换人妻好紧4P| 亚洲日本va中文字幕线| 花滢滢与镇国公h含苞待放| 91精品久久久久久蜜桃| 被陌生人扣到不停流水| 女s男m文| 亚洲首页| 抖抈app入口免费| 美女黄色大全| 男人激情网| 大学生A片一区二区三区| 啪啪流出乳白色液体代表| 欧美性另类高清| 老师说教室没人时可以c| 吃奶呻吟打开双腿做受试看视频 |