私はC++
で私の機械学習にcaffeを使用しました。caffeでレイヤーのブロブ情報を抽出するには?
net_->Forward();
という名前のネットワークを通過した後、私は個々の層の情報を抽出するのが好きです。私が何をしたか
net_->Forward();
//Extract layer information
cout << "Num layers:" << "'" << net_->layer_names().size() << "'"<< endl;
for (int layer_index = 0; layer_index < net_->layer_names().size(); ++layer_index)
{
// get that layer blob and its dimension
const boost::shared_ptr<Blob<float> > blob = net_->blob_by_name(net_->blob_names()[layer_index]);
int batch_size = blob->num();
int dim_features = blob->count()/batch_size;
std::cout << "Layer name:" << "'" << net_->layer_names()[layer_index] << "'" << " Blob name:" << "'" <<net_->blob_names()[layer_index] << "'" << " batch size " << "'" << batch_size << "'" << " dim_features:" << "'" << dim_features << "'" << std::endl;
}
は、私はすべてのレイヤ名と寸法を見ることができました。
Layer name'image' Blob name'image' batch_size'1' dim_features'921600'
Layer name'conv1/7x7_s2' Blob name'conv1/7x7_s2' batch_size'1' dim_features'4915200'
Layer name'conv1/relu_7x7' Blob name'pool1/3x3_s2' batch_size'1' dim_features'1228800'
Layer name'pool1/3x3_s2' Blob name'pool1/norm1' batch_size'1' dim_features'1228800'
Layer name'pool1/norm1' Blob name'conv2/3x3_reduce' batch_size'1' dim_features'1228800'
Layer name'conv2/3x3_reduce' Blob name'conv2/3x3' batch_size'1' dim_features'3686400'
Layer name'conv2/relu_3x3_reduce' Blob name'conv2/norm2' batch_size'1' dim_features'3686400'
しかし、ここではさらに深い情報が必要です。現在の寸法は921600です
、それはバッチサイズxチャンネル×高さ×幅で構成されている= 921600.
(1)だから私の最初のクエリが情報を分割する方法ですか?
(2)私は、この情報バッチサイズxチャネル×高さ×幅を有していると言う= X 480 X 640 1×3そして
1×1×480×640のようなBLOBの各レイヤを抽出する方法、私は印刷するか、プロットすることができます。
私は
for layer_name, blob in net.blobs.iteritems():
print layer_name + '\t' + str(blob.data.shape)
mydata = net.blobs[layer_name].data[0,0,:,:]
#cv2.imshow("mydata",mydata);
#cv2.waitKey(1)
layer_name = layer_name.replace('/', '_')
np.savetxt("printdata/"+layer_name+".csv", mydata, delimiter=",")
のように、Pythonで行うことができます。しかし、今のところ、私はC++
でやりたいそういったこと。質問1については
I同じことをしました。しかし、私はcv :: Mat a(blob-> height()、blob-> width()、CV_32FC1、blob-> data_at(0,1,0,0))のように黒い画像を取得します。何か問題でも? – batuman
私はここでの質問を理解していません。私はあなたがブロブの次元情報だけを望むと思った。ブロブから画像を見せたいですか? – lnman
私の2番目の質問にY – batuman