国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

使用python,繪制美觀的神經(jīng)網(wǎng)絡(luò)圖像

2023-10-15 17:44 作者:小黑黑講AI  | 我要投稿

大家好,今天要講的內(nèi)容是使用python,繪制美觀的神經(jīng)網(wǎng)絡(luò)。

在這篇文章中,會(huì)討論如何使用python中的networkx庫,繪制美觀且標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)。

具體來說,會(huì)根據(jù)指定的層和節(jié)點(diǎn)數(shù)量,繪制不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。

networkx庫可以用來創(chuàng)建和操作圖類型的數(shù)據(jù)結(jié)構(gòu),其中包括無向圖、有向圖、帶權(quán)圖等等。

神經(jīng)網(wǎng)絡(luò)可以看做是一種圖數(shù)據(jù)結(jié)構(gòu),因此可以使用networkx庫創(chuàng)建,并進(jìn)行可視化的操作。


繪制一個(gè)2層網(wǎng)絡(luò)

來看下面這個(gè)例子:

我們希望畫出一個(gè)2層網(wǎng)絡(luò),輸入層有2個(gè)節(jié)點(diǎn),輸出層有3個(gè)節(jié)點(diǎn)。前面一層的節(jié)點(diǎn)會(huì)向后面一層的節(jié)點(diǎn),連接一條邊。

代碼如下:

首先,需提前安裝好networkx庫,然后在代碼中導(dǎo)入networkx和matplotlib。

然后使用DiGraph創(chuàng)建一個(gè)有向圖G。

我們要繪制的網(wǎng)絡(luò),包括了5個(gè)節(jié)點(diǎn),第1層的節(jié)點(diǎn)編號(hào)為1、2,第2層的是3、4、5,我們使用add_edge,從1向3、4、5,從2向3、4、5,連接一條邊。

為了讓繪制的圖像看起來像一個(gè)神經(jīng)網(wǎng)絡(luò),我們需要為這5個(gè)節(jié)點(diǎn)設(shè)置坐標(biāo)。創(chuàng)建字典pos,字典的key是節(jié)點(diǎn)的名稱,字典的value,是節(jié)點(diǎn)所在位置。

例如,我們希望1號(hào)和2號(hào)節(jié)點(diǎn)在一列,3、4、5在一列,因此設(shè)置1和2的x坐標(biāo)為0,3、4、5的x坐標(biāo)為1。

另外,我們希望同一組中的節(jié)點(diǎn),可以均勻的分布在同一列上,所以我們將1和2的y坐標(biāo),設(shè)置為0.25與0.75,3、4、5的y坐標(biāo)設(shè)置為0.2、0.5和0.8。

按照這樣的方式,設(shè)置神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)的擺放位置,再將它們畫在畫板上,就可以展現(xiàn)美觀的神經(jīng)網(wǎng)絡(luò)了。

最后使用nx.draw函數(shù)進(jìn)行繪制。

其中G是要繪制的圖,pos是圖中節(jié)點(diǎn)的坐標(biāo),with_labels = True,代表繪制節(jié)點(diǎn)的名稱。

node_color和edgecolor是節(jié)點(diǎn)和邊的顏色。

linewidths和width是節(jié)點(diǎn)和邊的粗細(xì)。node_size是節(jié)點(diǎn)的大小。

運(yùn)行程序,就得到了一個(gè)2層神經(jīng)網(wǎng)絡(luò)。


根據(jù)參數(shù),繪制三層神經(jīng)網(wǎng)絡(luò)

接著,我們實(shí)現(xiàn)一個(gè)更加通用的繪制神經(jīng)網(wǎng)絡(luò)的代碼:

設(shè)置函數(shù)draw_network_digraph,它可以根據(jù)傳入的輸入層、隱藏層、輸出層的神經(jīng)元數(shù)量,繪制對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)。

在函數(shù)中,首先創(chuàng)建一個(gè)圖G。

然后使用循環(huán)連接,輸入層和隱藏層之間的邊,隱藏層和輸出層之間的邊。

接著計(jì)算每個(gè)節(jié)點(diǎn)的坐標(biāo)pos:

在計(jì)算時(shí),三層節(jié)點(diǎn)的橫坐標(biāo)x,直接設(shè)置為0、1、2就可以了。

節(jié)點(diǎn)的縱坐標(biāo),需要分別設(shè)置為i - input_num / 2、i - hidden_num / 2、i - output_num / 2。

這樣做的目的是,根據(jù)每一層的節(jié)點(diǎn)數(shù)量,將節(jié)點(diǎn)從中間,向兩邊分布。

例如,第1層有3個(gè)節(jié)點(diǎn),橫坐標(biāo)是0,縱坐標(biāo)是-1.5、-0.5和0.5。

最后調(diào)用nx.draw,繪制神經(jīng)網(wǎng)絡(luò)。

在main函數(shù)中,我們可以多嘗試幾組參數(shù),繪制不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。

那么到這里,使用python,繪制美觀的神經(jīng)網(wǎng)絡(luò)就講完了,感謝大家的觀看,我們下節(jié)課再會(huì)。


使用python,繪制美觀的神經(jīng)網(wǎng)絡(luò)圖像的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
五原县| 合水县| 红原县| 垣曲县| 内丘县| 泰顺县| 陇西县| 衡南县| 普格县| 湄潭县| 双桥区| 双峰县| 云梦县| 民丰县| 高碑店市| 雅安市| 铁岭市| 汉川市| 广水市| 广东省| 崇左市| 嘉义县| 牙克石市| 特克斯县| 仙居县| 明溪县| 靖宇县| 丽水市| 湘西| 交城县| 会昌县| 垫江县| 岳西县| 崇文区| 衡东县| 通渭县| 瑞安市| 呼图壁县| 榆树市| 绩溪县| 澄城县|