配置pytorch的網(wǎng)絡(luò)結(jié)果可視化工具

可視化工具Graphviz

一.安裝
Graphviz http://www.graphviz.org/
mac用戶建議直接用homebrew來安裝骡澈,官網(wǎng)上版本比較舊

1.安裝homebrew
打開終端復(fù)制、粘貼以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安裝Graphviz
homebrew安裝完畢后運行 brew install graphviz即可

安裝完后事例代碼:

import torchvision.models as models
import torch
from torchsummary import summary
from torch.autograd import Variable
import torch
from torch.autograd import Variable
from graphviz import Digraph
import os

def make_dot(var, params=None):
    if params is not None:
        assert all(isinstance(p, Variable) for p in params.values())
        param_map = {id(v): k for k, v in params.items()}

    node_attr = dict(style='filled', shape='box', align='left',
                              fontsize='12', ranksep='0.1', height='0.2')
    dot = Digraph(node_attr=node_attr, graph_attr=dict(size="12,12"))
    seen = set()

    def size_to_str(size):
        return '(' + (', ').join(['%d' % v for v in size]) + ')'

    output_nodes = (var.grad_fn,) if not isinstance(var, tuple) else tuple(v.grad_fn for v in var)

    def add_nodes(var):
        if var not in seen:
            if torch.is_tensor(var):
                # note: this used to show .saved_tensors in pytorch0.2, but stopped
                # working as it was moved to ATen and Variable-Tensor merged
                dot.node(str(id(var)), size_to_str(var.size()), fillcolor='orange')
            elif hasattr(var, 'variable'):
                u = var.variable
                name = param_map[id(u)] if params is not None else ''
                node_name = '%s\n %s' % (name, size_to_str(u.size()))
                dot.node(str(id(var)), node_name, fillcolor='lightblue')
            elif var in output_nodes:
                dot.node(str(id(var)), str(type(var).__name__), fillcolor='darkolivegreen1')
            else:
                dot.node(str(id(var)), str(type(var).__name__))
            seen.add(var)
            if hasattr(var, 'next_functions'):
                for u in var.next_functions:
                    if u[0] is not None:
                        dot.edge(str(id(u[0])), str(id(var)))
                        add_nodes(u[0])
            if hasattr(var, 'saved_tensors'):
                for t in var.saved_tensors:
                    dot.edge(str(id(t)), str(id(var)))
                    add_nodes(t)

    if isinstance(var, tuple):
        for v in var:
            add_nodes(v.grad_fn)
    else:
        add_nodes(var.grad_fn)
    return dot

if __name__=="__main__":

    os.environ["PATH"] += os.pathsep + '/Library/Python/2.7/site-packages'

    ## visual model
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model = models.vgg()
    model =model.to(device)

    x = Variable(torch.randn(1, 3, 224,224))
    vis_graph = make_dot(model(x), params=dict(model.named_parameters()))
    vis_graph.view()

3储狭、安裝python的對應(yīng)的包 sudo pip install graphviz
用pip安裝的Graphviz,但是Graphviz不是一個python tool,你仍然需要安裝GraphViz‘s executables. 查閱資料后發(fā)現(xiàn),原來我沒有安裝GraphViz‘s executables

顯示網(wǎng)絡(luò)結(jié)構(gòu)的工具torchsummary

sudo pip install torchsummary 進行安裝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末析藕,一起剝皮案震驚了整個濱河市冀膝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矿卑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贴铜,死亡現(xiàn)場離奇詭異粪摘,居然都是意外死亡,警方通過查閱死者的電腦和手機绍坝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門徘意,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人轩褐,你說我怎么就攤上這事椎咧。” “怎么了把介?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵勤讽,是天一觀的道長。 經(jīng)常有香客問我拗踢,道長脚牍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任巢墅,我火速辦了婚禮诸狭,結(jié)果婚禮上券膀,老公的妹妹穿的比我還像新娘。我一直安慰自己驯遇,他們只是感情好芹彬,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叉庐,像睡著了一般舒帮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陡叠,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天玩郊,我揣著相機與錄音,去河邊找鬼匾竿。 笑死瓦宜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岭妖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼反璃,長吁一口氣:“原來是場噩夢啊……” “哼昵慌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起淮蜈,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤斋攀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后梧田,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淳蔼,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年裁眯,在試婚紗的時候發(fā)現(xiàn)自己被綠了鹉梨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡穿稳,死狀恐怖存皂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逢艘,我是刑警寧澤旦袋,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站它改,受9級特大地震影響疤孕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜央拖,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一祭阀、第九天 我趴在偏房一處隱蔽的房頂上張望鹉戚。 院中可真熱鬧,春花似錦柬讨、人聲如沸崩瓤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽却桶。三九已至,卻和暖如春蔗牡,著一層夾襖步出監(jiān)牢的瞬間颖系,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工辩越, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嘁扼,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓黔攒,卻偏偏與公主長得像趁啸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子督惰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容