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())
実はこれと結果
pycaffe( 'L.Python()')を使ってネットワークを作成して実際に*実行*しても問題ないのですか? – hbaderts
あなたは** WITH_PYTHON_LAYER = 1'を設定した後に**コンパイルしましたか? – Shai