<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【深度學(xué)習(xí)系列】PaddlePaddle可視化之VisualDL

        上篇文章我們講了如何對(duì)模型進(jìn)行可視化,用的keras手動(dòng)繪圖輸出CNN訓(xùn)練的中途結(jié)果,本篇文章將講述如何用PaddlePaddle新開源的VisualDL來(lái)進(jìn)行可視化。在講VisualDL之前,我們先了解一下常用的Tensorflow的可視化工具---Tensorboard。


      Tensorflow的可視化

        Tensorboard是Tensorflow自帶的可視化模塊,我們可以通過(guò)Tensorboard直觀的查看神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),訓(xùn)練的收斂情況等。要想掌握Tensorboard,我們需要知道一下幾點(diǎn):

      • 支持的數(shù)據(jù)形式
      • 具體的可視化過(guò)程
      • 如何對(duì)一個(gè)實(shí)例使用Tensorboard

        數(shù)據(jù)形式 

      (1)標(biāo)量Scalars 
      (2)圖片Images 
      (3)音頻Audio 
      (4)計(jì)算圖Graph 
      (5)數(shù)據(jù)分布Distribution 
      (6)直方圖Histograms 
      (7)嵌入向量Embeddings

         可視化過(guò)程

      (1)建立一個(gè)graph。
      (2)確定在graph中的不同節(jié)點(diǎn)設(shè)置summary operations。
      (3)將(2)中的所有summary operations合并成一個(gè)節(jié)點(diǎn),運(yùn)行合并后的節(jié)點(diǎn)。
      (4)使用tf.summary.FileWriter將運(yùn)行后輸出的數(shù)據(jù)都保存到本地磁盤中。
      (5)運(yùn)行整個(gè)程序,并在命令行輸入運(yùn)行tensorboard的指令,打開web端可查看可視化的結(jié)果

         使用Tensorborad的實(shí)例

        這里我就不講的特別詳細(xì)啦,如果用過(guò)Tensorflow的同學(xué)其實(shí)很好理解,只需要在平時(shí)寫的程序后面設(shè)置summary,tf.summary.scalar記錄標(biāo)量,tf.summary.histogram記錄數(shù)據(jù)的直方圖等等,然后正常訓(xùn)練,最后把所有的summary合并成一個(gè)節(jié)點(diǎn),存放到一個(gè)地址下面,在linux界面輸入一下代碼:

      tensorboard --logdir=‘存放的總summary節(jié)點(diǎn)的地址’

        然后會(huì)出現(xiàn)以下信息:

      1 Starting TensorBoard 41 on port 6006
      2 (You can navigate to http://127.0.1.1:6006)

        將http://127.0.1.1:6006在瀏覽器中打開,就可以看到web端的可視化了

       

        具體的參數(shù)表示的含義可以參照官網(wǎng)的解釋

       


      MXNet的可視化

        MXNet的可視化之前一直使用mx.viz.plot_network來(lái)構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)圖,但是后來(lái)有一位阿里的同學(xué)把tensorboard封裝在了mxnet里,具體可以參照https://github.com/dmlc/tensorboard,可以對(duì)照他寫的這篇文章來(lái)看Bring TensorBoard to MXNet

        ps:這個(gè)功能好像去年年初他們就開始搞了,看到他發(fā)的朋友圈才知道沒(méi)過(guò)幾個(gè)月就上線了,真效率,喜歡mxnet的同學(xué)可以嘗試一下。

       


      PaddlePaddle的可視化--EventHandler 

        在PaddlePaddle發(fā)布VisualDL之前,我一直是用event_handler來(lái)可視化訓(xùn)練的收斂情況。我找了一段之前寫的一個(gè)類里的小代碼來(lái)展示如何使用event_handler

       1 def start_trainer(self,X_train,Y_train,X_val,Y_val):
       2         #獲得訓(xùn)練器
       3         trainer = self.get_trainer()
       4 
       5         result_lists = []
       6         def event_handler(event):
       7             if isinstance(event, paddle.event.EndIteration):
       8                 if event.batch_id % 10 == 0:
       9                     print "\nPass %d, Batch %d, Cost %f, %s" % (
      10                         event.pass_id, event.batch_id, event.cost, event.metrics)
      11             if isinstance(event, paddle.event.EndPass):
      12                     # 保存訓(xùn)練好的參數(shù)
      13                 with open('params_pass_%d.tar' % event.pass_id, 'w') as f:
      14                     parameters.to_tar(f)
      15                 # feeding = ['x','y']
      16                 result = trainer.test(
      17                         reader=val_reader)
      18                             # feeding=feeding)
      19                 print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
      20 
      21                 result_lists.append((event.pass_id, result.cost,
      22                         result.metrics['classification_error_evaluator']))
      23 
      24         # 開始訓(xùn)練
      25         train_reader = paddle.batch(paddle.reader.shuffle(
      26                 reador.reader_creator(X_train,Y_train),buf_size=200),
      27                 batch_size=16)
      28 
      29         val_reader = paddle.batch(paddle.reader.shuffle(
      30                 reador.reader_creator(X_val,Y_val),buf_size=200),
      31                 batch_size=16)
      32 
      33         trainer.train(reader=train_reader,num_passes=20,event_handler=event_handler)
      34 
      35     #找到訓(xùn)練誤差最小的一次結(jié)果
      36     best = sorted(result_lists, key=lambda list: float(list[1]))[0]
      37         print 'Best pass is %s, testing Avgcost is %s' % (best[0], best[1])
      38         print 'The classification accuracy is %.2f%%' % (100 - float(best[2]) * 100)

        trainer = self.get_trainer()不用管,因?yàn)橹皩懙囊粋€(gè)函數(shù)叫g(shù)et_trainer,你可以先定義trainer,然后放在這里,后面設(shè)一個(gè)空列表存放每次訓(xùn)練的結(jié)果,我這個(gè)代碼里叫result_lists,然后定義event_handler函數(shù),在開始訓(xùn)練,這樣每次訓(xùn)練的結(jié)果都會(huì)傳入result_lists這個(gè)列表里面,最后進(jìn)行排序,把最優(yōu)結(jié)果放到best里,輸出就可以。最后用event_handler_plot畫圖,輸出如下收斂的圖:

        但是這樣不能觀察到神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過(guò)程中的每個(gè)神經(jīng)元的具體變化情況,不如tensorboard的功能多,只能看到我們?cè)谟?xùn)練過(guò)程中的loss下降的情況,訓(xùn)練是否收斂等。


      PaddlePaddle的新版可視化工具--VisualDL

        大概就在上周,1.16日,PaddlePaddle和Echarts團(tuán)隊(duì)練手打造了VisualDL可視化工具 ,我試用了以后發(fā)現(xiàn)和tensorborad的功能好像!簡(jiǎn)單說(shuō)說(shuō)特性:

      • 支持Scaler打點(diǎn)數(shù)據(jù)展示,可將訓(xùn)練信息以折線圖的形式展現(xiàn)出來(lái),方便觀察整體趨勢(shì),還能在同一個(gè)可視化視圖中呈現(xiàn)多條折線,方便用戶對(duì)比分析。
      • 支持Image圖片展示可輕松查看數(shù)據(jù)樣本的質(zhì)量,也可以方便地查看訓(xùn)練的中間結(jié)果,例如卷積層的輸出或者GAN生成的圖片。
      • 支持Histogram參數(shù)分布展示功能,方便用戶查看參數(shù)矩陣中數(shù)值的分布曲線,并隨時(shí)觀察參數(shù)數(shù)值分布的變化趨勢(shì)。
      • 支持Graph查看深度神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)。

        這樣一看,其實(shí)基本上實(shí)現(xiàn)了tensorboard的功能,或者應(yīng)該簡(jiǎn)稱“Bring TensorBorad To PaddlePaddle”。不知道博客園怎么放gif,具體的圖片展示就直接看官網(wǎng)吧

      深度學(xué)習(xí)可視化工具Visual DL——“所見即所得”

       


      總結(jié)

        總的來(lái)說(shuō),Tensorboard是一個(gè)非常好的可視化工具,mxnet原來(lái)只能可視化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖,paddlepaddle原來(lái)只能看loss下降的訓(xùn)練收斂圖,但是后來(lái)mxnet把tensorborad搞進(jìn)去了,paddlepaddle發(fā)布了一個(gè)新的工具VisualDL,實(shí)現(xiàn)了Tensorborad的功能,還是非常厲害的!大家可以多體驗(yàn)體驗(yàn),這樣就不用像上篇文章手動(dòng)的去畫每個(gè)網(wǎng)絡(luò)結(jié)果中間的輸出結(jié)果圖,直接用VisualDL的Image展示就可以了,更加方便我們理解模型,觀察模型訓(xùn)練的過(guò)程,簡(jiǎn)單來(lái)說(shuō),讓我們不透明的“煉丹術(shù)”變得更加透明清楚了~

       

      posted @ 2018-01-26 11:09  Charlotte77  閱讀(9531)  評(píng)論(8)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产精品区视频中文字幕| 熟女蜜臀av麻豆一区二区| 欧美成人黄在线观看| 丰满人妻被黑人连续中出| 国产口爆吞精在线视频2020版| 蜜臀av一区二区三区精品 | 好男人官网资源在线观看| 免费国产女王调教在线视频| 国产边打电话边被躁视频| 亚洲综合小综合中文字幕| 人妻少妇久久中文字幕| 亚洲 成人 无码 在线观看| 九九热精品免费在线视频| 自拍亚洲一区欧美另类| 国产精品粉嫩嫩在线观看| 亚洲性日韩精品一区二区三区| 九九久久人妻一区精品色| 麻豆精产国品一二三产| 国产久免费热视频在线观看| 国产精品一区二区三区蜜臀| a级免费视频| 最近中文字幕完整版2019| 国产亚洲精品综合一区二区| 91久久国产成人免费观看| 曝光无码有码视频专区| 中国女人熟毛茸茸A毛片| 无码日韩精品一区二区三区免费| 免费无码va一区二区三区| 日本国产一区二区三区在线观看 | 中文字幕av一区二区三区人妻少妇| 麻豆精产国品一二三区区| 国产永久免费高清在线| 欧美性猛交xxxx免费看| 精品国产中文字幕在线看| 精品999日本久久久影院| 靖州| 柠檬福利第一导航在线| 久久综合综合久久综合| 亚洲av男人电影天堂热app| 国产精品女同性一区二区| 欧美高清一区三区在线专区 |