pytorch + visdom 處理簡單分類問題
這篇文章主要介紹了關於pytorch visdom 處理簡單分類問題,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
環境
系統: win 10
顯示卡:gtx965m
cpu :i7-6700HQ
python 3.61
pytorch 0.3
import torch from torch.autograd import Variable import torch.nn.functional as F import numpy as np import visdom import time from torch import nn,optim
use_gpu = True ones = np.ones((500,2)) x1 = torch.normal(6*torch.from_numpy(ones),2) y1 = torch.zeros(500) x2 = torch.normal(6*torch.from_numpy(ones*[-1,1]),2) y2 = y1 +1 x3 = torch.normal(-6*torch.from_numpy(ones),2) y3 = y1 +2 x4 = torch.normal(6*torch.from_numpy(ones*[1,-1]),2) y4 = y1 +3 x = torch.cat((x1, x2, x3 ,x4), 0).float() y = torch.cat((y1, y2, y3, y4), ).long()
visdom視覺化準備
##先建立需要觀察的windows
viz = visdom.Visdom() colors = np.random.randint(0,255,(4,3)) #颜色随机 #线图用来观察loss 和 accuracy line = viz.line(X=np.arange(1,10,1), Y=np.arange(1,10,1)) #散点图用来观察分类变化 scatter = viz.scatter( X=x, Y=y+1, opts=dict( markercolor = colors, marksize = 5, legend=["0","1","2","3"]),) #text 窗口用来显示loss 、accuracy 、时间 text = viz.text("FOR TEST") #散点图做对比 viz.scatter( X=x, Y=y+1, opts=dict( markercolor = colors, marksize = 5, legend=["0","1","2","3"] ), )
##邏輯迴歸處理
輸入2,輸出4
logstic = nn.Sequential( nn.Linear(2,4) )
gpu還是cpu選擇:
if use_gpu: gpu_status = torch.cuda.is_available() if gpu_status: logstic = logstic.cuda() # net = net.cuda() print("###############使用gpu##############") else : print("###############使用cpu##############") else: gpu_status = False print("###############使用cpu##############")
優化器與loss函數:
#
loss_f = nn.CrossEntropyLoss() optimizer_l = optim.SGD(logstic.parameters(), lr=0.001)
訓練2000次:
#
start_time = time.time() time_point, loss_point, accuracy_point = [], [], [] for t in range(2000): if gpu_status: train_x = Variable(x).cuda() train_y = Variable(y).cuda() else: train_x = Variable(x) train_y = Variable(y) # out = net(train_x) out_l = logstic(train_x) loss = loss_f(out_l,train_y) optimizer_l.zero_grad() loss.backward() optimizer_l.step()
訓練過成觀察及視覺化:
if t % 10 == 0: prediction = torch.max(F.softmax(out_l, 1), 1)[1] pred_y = prediction.data accuracy = sum(pred_y ==train_y.data)/float(2000.0) loss_point.append(loss.data[0]) accuracy_point.append(accuracy) time_point.append(time.time()-start_time) print("[{}/{}] | accuracy : {:.3f} | loss : {:.3f} | time : {:.2f} ".format(t + 1, 2000, accuracy, loss.data[0], time.time() - start_time)) viz.line(X=np.column_stack((np.array(time_point),np.array(time_point))), Y=np.column_stack((np.array(loss_point),np.array(accuracy_point))), win=line, opts=dict(legend=["loss", "accuracy"])) #这里的数据如果用gpu跑会出错,要把数据换成cpu的数据 .cpu()即可 viz.scatter(X=train_x.cpu().data, Y=pred_y.cpu()+1, win=scatter,name="add", opts=dict(markercolor=colors,legend=["0", "1", "2", "3"])) viz.text("<h3 align='center' style='color:blue'>accuracy : {}</h3><br><h3 align='center' style='color:pink'>" "loss : {:.4f}</h3><br><h3 align ='center' style='color:green'>time : {:.1f}</h3>" .format(accuracy,loss.data[0],time.time()-start_time),win =text)
#我的理解就是gpu在處理圖片識別大量矩陣運算等方面運算能力遠高於cpu,在處理一些輸入和輸出都很少的,還是cpu更具優勢。
###新增神經層:############net = nn.Sequential( nn.Linear(2, 10), nn.ReLU(), #激活函数 nn.Linear(10, 4) )
以上是pytorch + visdom 處理簡單分類問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

本站10月22日消息,今年第三季度,科大讯飞实现净利润2579万元,同比下降81.86%;前三季度净利润9936万元,同比下降76.36%。科大讯飞副总裁江涛在Q3业绩说明会上透露,讯飞已于2023年初与华为昇腾启动专项攻关,与华为联合研发高性能算子库,合力打造我国通用人工智能新底座,让国产大模型架构在自主创新的软硬件基础之上。他指出,目前华为昇腾910B能力已经基本做到可对标英伟达A100。在即将举行的科大讯飞1024全球开发者节上,讯飞和华为在人工智能算力底座上将有进一步联合发布。他还提到,

PyCharm是一款強大的整合開發環境(IDE),而PyTorch則是深度學習領域備受歡迎的開源架構。在機器學習和深度學習領域,使用PyCharm和PyTorch進行開發可以大大提高開發效率和程式碼品質。本文將詳細介紹如何在PyCharm中安裝設定PyTorch,並附上具體的程式碼範例,幫助讀者更好地利用這兩者的強大功能。第一步:安裝PyCharm和Python

在自然語言生成任務中,取樣方法是從生成模型中獲得文字輸出的一種技術。這篇文章將討論5種常用方法,並使用PyTorch進行實作。 1.GreedyDecoding在貪婪解碼中,生成模型根據輸入序列逐個時間步地預測輸出序列的單字。在每個時間步,模型會計算每個單字的條件機率分佈,然後選擇具有最高條件機率的單字作為當前時間步的輸出。這個單字成為下一個時間步的輸入,生成過程會持續直到滿足某種終止條件,例如產生了指定長度的序列或產生了特殊的結束標記。 GreedyDecoding的特點是每次選擇當前條件機率最

在详细了解去噪扩散概率模型(DDPM)的工作原理之前,我们先来了解一下生成式人工智能的一些发展情况,这也是DDPM的基础研究之一。VAEVAE使用编码器、概率潜在空间和解码器。在训练过程中,编码器预测每个图像的均值和方差,并从高斯分布中对这些值进行采样。采样的结果传递到解码器中,解码器将输入图像转换为与输出图像相似的形式。KL散度用于计算损失。VAE的一个显著优势是其能够生成多样化的图像。在采样阶段,可以直接从高斯分布中采样,并通过解码器生成新的图像。GAN在变分自编码器(VAEs)的短短一年之

PyTorch作為一個功能強大的深度學習框架,被廣泛應用於各類機器學習專案。 PyCharm作為一個強大的Python整合開發環境,在實現深度學習任務時也能提供很好的支援。本文將詳細介紹如何在PyCharm中安裝PyTorch,並提供具體的程式碼範例,幫助讀者快速上手使用PyTorch進行深度學習任務。第一步:安裝PyCharm首先,我們需要確保已經在電腦上

大家好,我是風箏兩年前,將音視頻檔轉換為文字內容的需求難以實現,但是如今只需幾分鐘便可輕鬆解決。據說一些公司為了獲取訓練數據,已經對抖音、快手等短視頻平台上的視頻進行了全面爬取,然後將視頻中的音頻提取出來轉換成文本形式,用作大數據模型的訓練語料。如果您需要將視訊或音訊檔案轉換為文字,可以嘗試今天提供的這個開源解決方案。例如,可以搜尋影視節目的對話出現的具體時間點。話不多說,進入正題。 Whisper這個方案就是OpenAI開源的Whisper,當然是用Python寫的了,只需要簡單安裝幾個套件,然

深度學習是人工智慧領域的一個重要分支,近年來受到了越來越多的關注和重視。為了能夠進行深度學習的研究和應用,往往需要使用一些深度學習框架來幫助實現。在本文中,我們將介紹如何使用PHP和PyTorch進行深度學習。一、什麼是PyTorchPyTorch是一個由Facebook開發的開源機器學習框架,它可以幫助我們快速地創建深度學習模型並進行訓練。 PyTorc

群組查詢注意力(GroupedQueryAttention)是大型語言模型中的多查詢注意力方法,它的目標是在保持MQA速度的同時實現MHA的品質。 GroupedQueryAttention將查詢分組,每個群組內的查詢共享相同的注意力權重,這有助於降低計算複雜度和提高推理速度。在這篇文章中,我們將解釋GQA的想法以及如何將其轉化為程式碼。 GQA是在論文GQA:TrainingGeneralizedMulti-QueryTransformerModelsfromMulti-HeadCheckpoint
