2017-02-07 7 views
1

私は私net.prototxtでPythonのデータ層を使用する場合'Makefile.config'caffe `` Python '`のレイヤーが見つかりません?

WITH_PYTHON_LAYER=1 

のコメントを外すことは、それがクロスチェックするために

Unknown layer type: Python 

言い、カフェがインストールされていますそれは、Pythonのインターフェイスで 私は試しました

import caffe 
from caffe import layers as L 
L.Python() 

これは動作しているようですが、エラーはありません。 どこに問題がありますか?

+0

pycaffe( 'L.Python()')を使ってネットワークを作成して実際に*実行*しても問題ないのですか? – hbaderts

+0

あなたは** WITH_PYTHON_LAYER = 1'を設定した後に**コンパイルしましたか? – Shai

答えて

1

caffeがPythonで持っているレイヤータイプを調べるには、単にcaffe.layer_types_list()を調べます。たとえば、あなたが実際には、実際のレイヤタイプのリストにその名前のためのインデックスを返す必要があり、その後

list(caffe.layer_type_list()).index('Python') 

"Python"層を持っている場合。

L.Python()については、このcaffe.NetSpec()インターフェイスは、ネットプロトタイプをプログラム的に書き込むために使用され、書き込み段階ではレイヤタイプはチェックされません。あなたは実際にあなたが望むレイヤーを書くことができます:

L.YouDontThinkTheyNameALayerLikeThis() 

完全にクールです。でもそれはprototxtに変換する:あなたがカフェを使用して、この「ネット」を実行しようとしたら、あなたは、エラーメッセージが表示されます

layer { 
    name: "YouDontThinkTheyNameALayerLikeThis1" 
    type: "YouDontThinkTheyNameALayerLikeThis" 
    top: "YouDontThinkTheyNameALayerLikeThis1" 
} 

...:

print "{}".format(L.YouDontThinkTheyNameALayerLikeThis().to_proto()) 

実はこれと結果

関連する問題