2017-09-01 44 views
0

比方說,我在下面使用caffe.Netspec()設計網絡(例如,在盜夢空間)。當設計網絡`caffe.NetSpec()',怎麼知道某個斑點形狀?

import caffe 
from caffe import layers as L 

net   = caffe.NetSpec() 
net.data  = ... 
net.label = ... 
net["conv1"] = L.convolution(...) 
# ... concatenations ... and so on. 
net["here"] = ... 

有沒有辦法知道任何特定層(例如,層here)等7x7x128的團塊形狀? 我想打它,直到1x1形狀,所以我需要知道哪些形狀爲止。

回答

0

caffe.NetSpec()用來初始化一個網這樣就意味着要定義你自己的網絡,包括內核的大小和其它參數,如步幅,填充。這些參數可根據特定層的輸出大小進行調整。 因此,知道這裏的blob大小不會出現,因爲你正在自定義所有的東西。

如果使用caffe.Net()或caffe.SGDSolver()加載預定義的網絡,則可以通過net.blobs.items()訪問blob。 你可以嘗試這樣的事情: [爲K(K,v.data.shape),V IN solver.net.blobs.items()]

爲了讓習慣了CAFFE網狀結構,可以有一看下面的例子: https://github.com/BVLC/caffe/blob/master/examples/01-learning-lenet.ipynb

這包括淨是如何定義的,以及一個網是如何裝載。

相關問題