2017-01-24 3 views
1

私はトラブルこれらの寸法を操作することを有する形状(2048, 14, 14)ResNet(3Dから2D)のres5cレイヤーを再形成する方法は?

のnumpyのアレイから得られた、'res5c'層のResNetた画像の特徴を抽出します。 2048の14 * 14の機能があることを理解しています。一度にすべての機能にアクセスするために繰り返したいと思います。

したがって、私はこれを(14 * 14、2048)の配列に間違いなく再形成し、forループを使って簡単に繰り返すことができますか?

+2

は、スタックオーバーフローへようこそ!最初に[ツアー](http://stackoverflow.com/tour)にアクセスし、[よくある質問をする方法](http://stackoverflow.com/help/how-to-ask)を学んで[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例を参照してください。私たちがあなたを助けてくれるのは簡単です。あなたがこれまでに試したことを教えてください。 – MrLeeh

答えて

0

あなたはnet.forward()後に機能を読むことができます:あなたが記述したよう

feat = net.blobs['res5c'].data.cop() # copy to be on the safe side. 

は、featshape = (2048, 14, 14)np.arrayです。あなたはreshapeことができ

feat.reshape((2048,-1)) # fix the first dimension to 2048, -1 set the number of features to match that of `feat`. 

今、あなたは機能を反復処理することができます

for fi in xrange(feat.shape[1]): 
    f = feat[:,fi] # get the fi-th feature 
    # do somethinf to the feature f 
+0

素晴らしいです。もし私が完全に理解すれば、これは '(14、14、2048)'を得るでしょう: 'x = x.reshape((2048、-1))' then 'x = np.swapaxes(x、0、 1) ' ' x = x.reshape((14,14,2048)) ' – Mickey

+0

@Mickey [' numpy.transpose'](https://docs.scipy.org/doc/numpy/reference/generated)を見てください。 /numpy.transpose.html)。しかし、あなたはそれをしたいですか? 'feat [:、fi]の何が間違っていますか? Matlabにデータをエクスポートしようとしていますか? – Shai

+0

私はpythonで作業していますが、その愚かな、私はちょうど入力テンソルの形状(W、H、機能)として受け入れる関数を使用したいと思います。私は再構成について知識がありません:-)これを行うには、 – Mickey

関連する問題