电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python第三方庫visdom的使用入門教程

瀏覽:28日期:2022-06-19 11:11:46
概述

Visdom:一個靈活的可視化工具,可用來對于 實時,富數據的 創建,組織和共享。支持Torch和Numpy還有pytorch。

visdom可以實現遠程數據的可視化,對科學實驗有很大幫助。我們可以遠程的發送圖片和數據,并進行在ui界面顯示出來,檢查實驗結果,或者debug.

要用這個先要安裝,對于python模塊而言,安裝都是蠻簡單的:

pip install visdom

安裝完每次要用直接輸入代碼打開:

python -m visdom.server

然后根據提示在瀏覽器中輸入相應地址即可,默認地址為:http://localhost:8097/

使用示例1. vis.text(), vis.image()

import visdom # 添加visdom庫import numpy as np # 添加numpy庫vis = visdom.Visdom(env=’test’) # 設置環境窗口的名稱,如果不設置名稱就默認為mainvis.text(’test’, win=’main’) # 使用文本輸出vis.image(np.ones((3, 100, 100))) # 繪制一幅尺寸為3 * 100 * 100的圖片,圖片的像素值全部為1

其中:

visdom.Visdom(env=‘命名新環境’)vis.text(‘文本’, win=‘環境名’)vis.image(‘圖片’,win=‘環境名’)

python第三方庫visdom的使用入門教程

2. 畫直線 .line() 一條

import visdomimport numpy as npvis = visdom.Visdom(env=’my_windows’) # 設置環境窗口的名稱,如果不設置名稱就默認為mainx = list(range(10))y = list(range(10))# 使用line函數繪制直線 并選擇顯示坐標軸vis.line(X=np.array(x), Y=np.array(y), opts=dict(showlegend=True))

vis.line([x], [y], opts=dict(showlegend=True)[展示說明])

python第三方庫visdom的使用入門教程

兩條

import visdomimport numpy as npvis = visdom.Visdom(env=’my_windows’)x = list(range(10))y = list(range(10))z = list(range(1,11))vis.line(X=np.array(x), Y=np.column_stack((np.array(y), np.array(z))), opts=dict(showlegend=True))

vis.line([x], [y=np.column_stack((np.array(y),np.array(z),np.array(還可以增加)))])np.column_stack(a,b), 表示兩個矩陣按列合并

python第三方庫visdom的使用入門教程

sin(x)曲線

import visdomimport torchvis = visdom.Visdom(env=’sin’)x = torch.arange(0, 100, 0.1)y = torch.sin(x)vis.line(X=x,Y=y,win=’sin(x)’,opts=dict(showlegend=True))

python第三方庫visdom的使用入門教程

持續更新圖表

import visdomimport numpy as npvis = visdom.Visdom(env=’my_windows’)# 利用update更新圖像x = 0y = 0my_win = vis.line(X=np.array([x]), Y=np.array([y]), opts=dict(title=’Update’))for i in range(10): x += 1 y += i vis.line(X=np.array([x]), Y=np.array([y]), win=my_win, update=’append’)

使用“append”追加數據,“replace”使用新數據,“remove”用于刪除“name”中指定的跟蹤。

python第三方庫visdom的使用入門教程

vis.images()

import visdomimport torch# 新建一個連接客戶端# 指定env = ’test1’,默認是’main’,注意在瀏覽器界面做環境的切換vis = visdom.Visdom(env=’test1’)# 繪制正弦函數x = torch.arange(1, 100, 0.01)y = torch.sin(x)vis.line(X=x,Y=y, win=’sinx’,opts={’title’:’y=sin(x)’})# 繪制36張圖片隨機的彩色圖片vis.images(torch.randn(36,3,64,64).numpy(),nrow=6, win=’imgs’,opts={’title’:’imgs’})

python第三方庫visdom的使用入門教程

python第三方庫visdom的使用入門教程

繪制loss函數的變化趨勢

#繪制loss變化趨勢,參數一為Y軸的值,參數二為X軸的值,參數三為窗體名稱,參數四為表格名稱,參數五為更新選項,從第二個點開始可以更新vis.line(Y=np.array([totalloss.item()]), X=np.array([traintime]),win=(’train_loss’),opts=dict(title=’train_loss’),update=None if traintime == 0 else ’append’)

對于Visdom更詳細的代碼示例詳見 鏈接1

更多介紹詳見 鏈接2

實際代碼

此代碼出自CycleGAN的 utils.py 里一個實現

# 記錄訓練日志,顯示生成圖,畫loss曲線 的類class Logger(): def __init__(self, n_epochs, batches_epoch):’’’:param n_epochs: 跑多少個epochs:param batches_epoch: 一個epoch有幾個batches’’’self.viz = Visdom() # 默認env是main函數self.n_epochs = n_epochsself.batches_epoch = batches_epochself.epoch = 1 # 當前epoch數self.batch = 1 # 當前batch數self.prev_time = time.time()self.mean_period = 0self.losses = {}self.loss_windows = {} # 保存loss圖的字典集合self.image_windows = {} # 保存生成圖的字典集合 def log(self, losses=None, images=None):self.mean_period += (time.time() - self.prev_time)self.prev_time = time.time()sys.stdout.write(’rEpoch %03d/%03d [%04d/%04d] -- ’ % (self.epoch, self.n_epochs, self.batch, self.batches_epoch))for i, loss_name in enumerate(losses.keys()): if loss_name not in self.losses:self.losses[loss_name] = losses[loss_name].data.item() #這里losses[loss_name].data是個tensor(包在值外面的數據結構),要用item方法取值 else:self.losses[loss_name] = losses[loss_name].data.item() if (i + 1) == len(losses.keys()):sys.stdout.write(’%s: %.4f -- ’ % (loss_name, self.losses[loss_name]/self.batch)) else:sys.stdout.write(’%s: %.4f | ’ % (loss_name, self.losses[loss_name]/self.batch))batches_done = self.batches_epoch * (self.epoch - 1) + self.batchbatches_left = self.batches_epoch * (self.n_epochs - self.epoch) + self.batches_epoch - self.batchsys.stdout.write(’ETA: %s’ % (datetime.timedelta(seconds=batches_left*self.mean_period/batches_done)))# 顯示生成圖for image_name, tensor in images.items(): # 字典.items()是以list形式返回鍵值對 if image_name not in self.image_windows:self.image_windows[image_name] = self.viz.image(tensor2image(tensor.data), opts={’title’:image_name}) else:self.viz.image(tensor2image(tensor.data), win=self.image_windows[image_name], opts={’title’:image_name})# End of each epochif (self.batch % self.batches_epoch) == 0: # 一個epoch結束時 # 繪制loss曲線圖 for loss_name, loss in self.losses.items():if loss_name not in self.loss_windows: self.loss_windows[loss_name] = self.viz.line(X=np.array([self.epoch]), Y=np.array([loss/self.batch]), opts={’xlabel’:’epochs’, ’ylabel’:loss_name, ’title’:loss_name})else: self.viz.line(X=np.array([self.epoch]), Y=np.array([loss/self.batch]), win=self.loss_windows[loss_name], update=’append’) #update=’append’可以使loss圖不斷更新# 每個epoch重置一次lossself.losses[loss_name] = 0.0 # 跑完一個epoch,更新一下下面參數 self.epoch += 1 self.batch = 1 sys.stdout.write(’n’)else: self.batch += 1

train.py中調用代碼是

# 繪畫Loss圖logger = Logger(opt.n_epochs, len(dataloader))for epoch in range(opt.epoch, opt.n_epochs): for i, batch in enumerate(dataloader):......# 記錄訓練日志 # Progress report (http://localhost:8097) 顯示visdom畫圖的網址 logger.log({’loss_G’: loss_G, ’loss_G_identity’: (loss_identity_A + loss_identity_B),’loss_G_GAN’: (loss_GAN_A2B + loss_GAN_B2A),’loss_G_cycle’: (loss_cycle_ABA + loss_cycle_BAB), ’loss_D’: (loss_D_A + loss_D_B)}, images={’real_A’: real_A, ’real_B’: real_B, ’fake_A’: fake_A, ’fake_B’: fake_B})

python第三方庫visdom的使用入門教程

到此這篇關于python第三方庫visdom的使用入門教程的文章就介紹到這了,更多相關python visdom使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 高压分散机(高压细胞破碎仪)百科-北京天恩瀚拓 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 线粒体膜电位荧光探针-细胞膜-标记二抗-上海复申生物科技有限公司 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 儿童语言障碍训练-武汉优佳加感统文化发展有限公司 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂] | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 派财经_聚焦数字经济内容服务平台 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 北京百度网站优化|北京网站建设公司-百谷网络科技 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 贵州成人高考网_贵州成考网 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 西安中国国际旅行社(西安国旅) | 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 |