使用Python中NetworkX包繪制深度神經網絡結構圖


 1 """ 使用Python中NetworkX包繪制深度神經網絡結構圖 """
 2 # 導入相應包
 3 import networkx as nx
 4 import matplotlib.pyplot as plt
 5 
 6 # 創建DAG
 7 G = nx.DiGraph()
 8 
 9 # 創建結構圖頂點列表
10 vertex_list = ['v'+str(i) for i in range(1, 22)]
11 
12 # 添加結構圖頂點
13 G.add_nodes_from(vertex_list)
14 
15 # 創建邊列表
16 edge_list = [
17              ('v1', 'v5'), ('v1', 'v6'), ('v1', 'v7'), ('v1', 'v8'), ('v1', 'v9'),
18              ('v2', 'v5'), ('v2', 'v6'), ('v2', 'v7'), ('v2', 'v8'), ('v2', 'v9'),
19              ('v3', 'v5'), ('v3', 'v6'), ('v3', 'v7'), ('v3', 'v8'), ('v3', 'v9'),
20              ('v4', 'v5'), ('v4', 'v6'), ('v4', 'v7'), ('v4', 'v8'), ('v4', 'v9'),
21              ('v5', 'v10'), ('v5', 'v11'), ('v5', 'v12'), ('v5', 'v13'), ('v5', 'v14'), ('v5', 'v15'),
22              ('v6', 'v10'), ('v6', 'v11'), ('v6', 'v12'), ('v6', 'v13'), ('v6', 'v14'), ('v6', 'v15'),
23              ('v7', 'v10'), ('v7', 'v11'), ('v7', 'v12'), ('v7', 'v13'), ('v7', 'v14'), ('v7', 'v15'),
24              ('v8', 'v10'), ('v8', 'v11'), ('v8', 'v12'), ('v8', 'v13'), ('v8', 'v14'), ('v8', 'v15'),
25              ('v9', 'v10'), ('v9', 'v11'), ('v9', 'v12'), ('v9', 'v13'), ('v9', 'v14'), ('v9', 'v15'),
26              ('v10', 'v16'), ('v10', 'v17'), ('v10', 'v18'),
27              ('v11', 'v16'), ('v11', 'v17'), ('v11', 'v18'),
28              ('v12', 'v16'), ('v12', 'v17'), ('v12', 'v18'),
29              ('v13', 'v16'), ('v13', 'v17'), ('v13', 'v18'),
30              ('v14', 'v16'), ('v14', 'v17'), ('v14', 'v18'),
31              ('v15', 'v16'), ('v15', 'v17'), ('v15', 'v18'),
32              ('v16', 'v19'),
33              ('v17', 'v20'),
34              ('v18', 'v21')
35             ]
36 
37 # 通過列表形式來添加邊
38 G.add_edges_from(edge_list)
39 
40 # 指定繪制DAG圖時每個頂點的位置
41 pos = {
42         'v1': (-2, 1.5),
43         'v2': (-2, 0.5),
44         'v3': (-2, -0.5),
45         'v4': (-2, -1.5),
46         'v5': (-1, 2),
47         'v6': (-1, 1),
48         'v7': (-1, 0),
49         'v8': (-1, -1),
50         'v9': (-1, -2),
51         'v10': (0, 2.5),
52         'v11': (0, 1.5),
53         'v12': (0, 0.5),
54         'v13': (0, -0.5),
55         'v14': (0, -1.5),
56         'v15': (0, -2.5),
57         'v16': (1, 1),
58         'v17': (1, 0),
59         'v18': (1, -1),
60         'v19': (2, 1),
61         'v20': (2, 0),
62         'v21': (2, -1)
63        }
64 
65 # 繪制DAG圖
66 plt.title('Deep Neural Network Structure')  # 神經網絡結構圖標題
67 plt.xlim(-2.2, 2.2)  # 設置X軸坐標范圍
68 plt.ylim(-3, 3)  # 設置Y軸坐標范圍
69 nx.draw(
70         G,
71         pos=pos,  # 點的位置
72         node_color='red',  # 頂點顏色
73         edge_color='black',  # 邊的顏色
74         with_labels=False,  # 不顯示頂點標簽
75         font_size=10,  # 文字大小
76         node_size=300,  # 頂點大小
77        )
78 
79 # 保存圖片,圖片大小為640*480
80 plt.savefig('E:/data/DNN_chart.png')
81 
82 # 顯示圖片
83 plt.show()
使用Python中NetworkX包繪制深度神經網絡結構圖

程序效果展示:2019-07-14 17:24:20

 1 """ 利用opencv模塊對DNN框架添加文字注釋 """
 2 import cv2
 3 
 4 # 讀取圖片
 5 imagepath = 'E:/data/DNN_chart.png'
 6 image = cv2.imread(imagepath, 1)
 7 
 8 # 輸入層
 9 cv2.rectangle(image, (85, 130), (120, 360), (255, 0, 0), 2)
10 cv2.putText(image, "Input_Layer", (15, 390), 1, 1.5, (0, 0, 150), 2, 1)
11 
12 # 隱藏層
13 cv2.rectangle(image, (190, 70), (360, 420), (255, 0, 0), 2)
14 cv2.putText(image, "Hidden_Layer", (210, 450), 1, 1.5, (0, 0, 150), 2, 1)
15 
16 # 輸出層
17 cv2.rectangle(image, (420, 150), (460, 330), (255, 0, 0), 2)
18 cv2.putText(image, "Output_Layer", (380, 360), 1, 1.5, (0, 0, 150), 2, 1)
19 
20 # sofrmax層
21 cv2.rectangle(image, (530, 150), (570, 330), (255, 0, 0), 2)
22 cv2.putText(image, "softmax", (500, 130), 1, 1.5, (0, 0, 150), 2, 1)
23 
24 # 保存修改后的圖片
25 cv2.imwrite('E://data/DNN.jpg', image)
26 
27 plt.show()
利用opencv模塊對DNN框架添加文字注釋

程序效果展示:2019-07-14 17:25:52


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM