是否有可能获得CNN中Caffe中每一层的渐变,编辑它们并在训练过程中再次应用新的渐变?如果可能,使用pycaffe接口。
例如在TensorFlow中,它可以通过函数来完成:
<PropertyGroup>
<fileName>$(FilePath.Substring($(FilePath.LastIndexOf('\'))))</fileName>
</PropertyGroup>
答案 0 :(得分:1)
我不确定你的意思&#34;在训练过程中应用新的渐变&#34;,但你可以访问pycaffe界面中的渐变:
import caffe
net = caffe.Net('/path/to/net.prototxt', '/path/to/weights.caffemodel', caffe.TEST)
# provide inputs to the net, do a pass so that meaningful data/gradients propagate to all the layers
net.forward_backward_all()
# once data/gradients are updated, you can access them
net.blobs['blob_name'].diff # access the gradient of blob 'blob_name'
net.layers[5].blobs[0].diff # access the gradient of the first parameter blob of the 6th layer
要在图层名称和图层索引之间进行映射,您可以使用以下代码:
list(net._layer_names).index('layer_name')
这将返回图层'layer_name'
的索引。