亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

深度神經網絡課程Python與Matlab實現的差異

系統 1595 0

網絡結構定義的差異:

在Python中(network3.py),網絡定義時,不但定義了結構參數 layers,還定義了對應的 mini_batch_size。也就是說在 network3.py中定義的網絡,是與mini_batch_size有相關性的。如果計算過程中要進行 mini_batch_size的調整,直接更改 mini_batch_size然后重新計算是不可行的。
因此,需要對已有的網絡結構進行重新生成。

#網絡結構定義
class Network(object):
def init (self, layers, mini_batch_size):
self.layers = layers
self.mini_batch_size = mini_batch_size
self.params = [param for layer in self.layers for param in layer.params]
self.x = T.matrix(“x”)
self.y = T.ivector(“y”)
init_layer = self.layers[0]
init_layer.set_inpt(self.x, self.x, self.mini_batch_size)
for j in range(1, len(self.layers)):
prev_layer, layer = self.layers[j-1], self.layers[j]
layer.set_inpt(
prev_layer.output, prev_layer.output_dropout, self.mini_batch_size)
self.output = self.layers[-1].output
self.output_dropout = self.layers[-1].output_dropout

根據上述的 網絡結構參數定義的代碼,可以推斷出,如果想更改 mini_batch_size的大小,應該需要把原來(已有)的網絡參數 net.layers,net.params重新賦值到一個網絡中去。

載入已有的數據

step 1:
查找網絡的層級結構,

net.layers
[ , ]

step 2:
查找各層的輸入與輸出參數 n_in, n_out的數值

net.layers[0].n_in
784
net.layers[1].n_in
100
net.layers[0].n_out
100
net.layers[1].n_out
10

step 3:
仔細的推敲了原來的結構,使用如下代碼,可以更新mini_batch_size后重新計算。

net = Network(net.layers, NEW_mini_batch_size)
net2.SGD(training_data, epochs, NEW_mini_batch_size, eta,
validation_data, test_data)

看起來還不錯。

the old mini_batch_size is: 50
the new mini_batch_size is: 100
Training mini-batch number 0
Epoch 0: validation accuracy 90.53%
This is the best validation accuracy to date.
The corresponding test accuracy is 90.43%
Finished training network.
Best validation accuracy of 90.53% obtained at iteration 499
Corresponding test accuracy of 90.43%

step 4: 實現思路與代碼
每次計算完畢后,把網絡學習后的參數保存到磁盤。需要使用的時候,再讀取到內存,調整mini_batch_size(批處理大小), eta(學習率), epochs(迭代次數)后再進行計算。

實現代碼

#讀取網絡參數
rst_path = “rst/conv_net3.json”
pfile = open(rst_path, ‘rb’) # read current contents
net = pickle.load(pfile)
pfile.close()

#設置 批處理、學習率、迭代數等參數
mini_batch_size = 60
epochs = 5
eta = 0.1

#更新mini_batch_size和網絡參數!
#使用已有的 layers 結構和參數。
net = Network(net.layers, mini_batch_size);

#載入訓練和測試數據
training_data, validation_data, test_data = network3.load_data_shared()
net.SGD(training_data, epochs, mini_batch_size, eta,
validation_data, test_data)

#保存數據
with open(rst_path, ‘wb’) as save_file:
pickle.dump(net, save_file)
save_file.close()


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品国产一区二区在线 | 日韩欧美一二区 | 国产综合精品久久亚洲 | 欧美一级艳片爽快片 | 91手机视频在线观看 | 久久亚洲免费视频 | 青青久草| 曰本女人一级毛片看一级毛 | 一级毛片美国一级j毛片不卡 | 99热久久国产这里是精品 | 伊人影院在线视频 | 99re久久在热线播放最新地址 | 久久久久综合精品福利啪啪 | 日韩欧美在线播放视频 | 成人做爰小视频 | 久久夜色视频 | 国产精品毛片久久久久久久 | 99视频精品全部国产盗摄视频 | 久久e| 色综合天天综合网国产成人网 | 性做久久久久免费看 | 欧美成人在线免费观看 | 99视频精品全部国产盗摄视频 | 国产成人在线视频播放 | 国产美女精品视频 | 国产精品欧美久久久久天天影视 | 五月激情六月婷婷 | 亚洲精品伊人久久久久 | 精品一区二区在线观看 | 久久久精品免费热线观看 | 狠狠狠地啪香蕉 | 人与拘一级a毛片 | 婷婷 色天使 | 美女久久久久久久久久久 | 中文字幕精品一区二区精品 | 国产成人精品一区二区免费 | 不卡国产在线 | 最新国产网站 | 久久777国产线看观看精品卜 | 五月天婷婷在线视频 | 成人欧美一区二区三区视频xxx |