切片层:如何丢弃一个不会在其他层中使用的切片输出?
Slice layer : how to discard one sliced output that will not be used in further layers?
我的网络有多个损失。我只想测试某个loss。
我把softmax分成了softmax_1和softmax_2,只有softmax_1用于这个损失。
### slice softmax into softmax_1: Nx6xHxW, softmax_2: Nx1xHxW
layer {
name: "slice_conv1_1_D"
type: "Slice"
bottom: "softmax"
top: "softmax_1"
top: "softmax_2"
slice_param
{
slice_dim: 1
slice_point: 6
}
}
但是,运行 上面有切片层的网络使网络产生了大量的 softmax_2 值,因为它们没有被其他层使用。
有什么方法可以将我的数据 "softmax" 切片并仅保留 "softmax_1" 并完全丢弃 "softmax_2"?
非常感谢您的帮助。
添加:
我知道我可能会将 loss_weight 的其他损失设置为 0。但是,由于计算资源的原因,我不想考虑该选项。
SilenceLayer 正是您要找的东西 - 它是一个特殊的 "do nothing" 层,它只接受输入但不产生任何输出,保持您的日志干净:
layer {
name: "silence"
type: "Silence"
bottom: "softmax_2"
}
我的网络有多个损失。我只想测试某个loss。
我把softmax分成了softmax_1和softmax_2,只有softmax_1用于这个损失。
### slice softmax into softmax_1: Nx6xHxW, softmax_2: Nx1xHxW
layer {
name: "slice_conv1_1_D"
type: "Slice"
bottom: "softmax"
top: "softmax_1"
top: "softmax_2"
slice_param
{
slice_dim: 1
slice_point: 6
}
}
但是,运行 上面有切片层的网络使网络产生了大量的 softmax_2 值,因为它们没有被其他层使用。
有什么方法可以将我的数据 "softmax" 切片并仅保留 "softmax_1" 并完全丢弃 "softmax_2"?
非常感谢您的帮助。
添加: 我知道我可能会将 loss_weight 的其他损失设置为 0。但是,由于计算资源的原因,我不想考虑该选项。
SilenceLayer 正是您要找的东西 - 它是一个特殊的 "do nothing" 层,它只接受输入但不产生任何输出,保持您的日志干净:
layer {
name: "silence"
type: "Silence"
bottom: "softmax_2"
}