Ich versuche, die Transpose-Funktion in Caffe mit einer Python-Ebene zu implementieren. Unten ist der Code für das gleiche.Fehler beim Implementieren von "transpose" Ebene in Caffe
Es wird jedoch den Fehler zu werfen „nach dem Werfen einer Instanz boost::python::error_already_set
bei Reshape()
Methode namens beenden.
Kann jemand etwas Licht werfen auf das, was ich falsch mache?
import caffe
import numpy as np
class transpose(caffe.Layer):
def setup(self, bottom, top):
assert len(bottom) == 1, 'requires a single layer.bottom'
assert bottom[0].data.ndim == 2, 'requires matrix data'
assert len(top) == 1, 'requires a single layer.top'
def reshape(self, bottom, top):
top[0].reshape((bottom[0].data.shape[1], bottom[0].data.shape[0]))
def forward(self, bottom, top):
top[0].data = np.transpose(bottom[0].data)
def backward(self, top, propagate_down, bottom):
pass
Danke, . Vijetha
[This] (https://github.com/BVLC/caffe/issues/3594) ist eine Diskussion über die Permutationsebene. Es kann relevant sein. Der Code für diese Ebene ist verfügbar [hier] (https://github.com/intel/caffe/blob/master/src/caffe/layers/permute_layer.cpp) oder [hier] (https://github.com/ BVLC/caffe/blob/b68695db42aa79e874296071927536363fe1efbf/src/caffe/layers/permute_layer.cpp). –
Was ist mit einem Rückwärtsdurchlauf, der die Gradienten ebenfalls transponiert? – Shai