Caffe 中是否有一个层可以获取 blob 中的任意子 block ?
最佳答案
据我所知,caffe 中没有完全通用的切片层。
如果要提取属于 blob 特定 channel 的子 block ,可以使用 "Slice"
层。
根据您的要求,您可能会找到 "Crop"
层足以满足您的需求。
如果您需要更灵活地访问子 block ,您可能需要考虑使用 "Python"
层。
使用“Crop”
图层的示例
正如你pointed out “Crop”
层需要两个“底部”,但由于第二个“底部”仅用于引用形状,因此您可以使用 "DummyData"
生成它。层。
假设您要选择 x[:,:,3:20,5:40]
,这是一个 17x35 裁剪
layer {
name: "ref_shape_17x35"
type: "DummyData"
top: "ref_shape_17x35"
dummy_data_param { shape { dim: 1 dim: 1 dim: 17 dim: 35 } }
}
layer {
name: "crop_x"
type: "Crop"
bottom: "x"
bottom: "ref_shape_17x35"
top: "crop_x"
crop_param {
axis: 2 # do not crop the first two dimensions
offset: 3
offset: 5
}
}
我自己没有尝试过,但它应该可以工作(如果不行,请告诉我)。
关于machine-learning - Caffe 中是否有一个层可以获取 blob 中的任意子 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46139309/