: N x c
(N
및 c
채널의 미니 배치 크기)를, 당신은 차원 N
와 c
모양이 점을 스플 라이스 수 있습니다. 이를 Reduction
레이어에 넣을 수 있습니다.
layer {
name: "pred-slice"
type: "Slice"
bottom: "pred"
{%- for num in range(10) %}
top: "pred-{{ num }}-vector"
{%- endfor %}
slice_param {
slice_dim: 1
{%- for num in range(1, 10) %}
slice_point: {{ num }}
{%- endfor %}
}
include {
phase: TEST
}
}
{%- for num in range(10) %}
layer {
name: "pred-{{num}}"
type: "Reduction"
bottom: "pred-{{ num }}-vector"
top: "pred-{{ num }}"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
{%- endfor %}
에 확장 :
예를 들어, 당신은 A Jinja2 템플릿으로 다음 쓰기 나는 이것에 대해 생각
layer {
name: "pred-slice"
type: "Slice"
bottom: "pred"
top: "pred-0-vector"
top: "pred-1-vector"
top: "pred-2-vector"
top: "pred-3-vector"
top: "pred-4-vector"
top: "pred-5-vector"
top: "pred-6-vector"
top: "pred-7-vector"
top: "pred-8-vector"
top: "pred-9-vector"
slice_param {
slice_dim: 1
slice_point: 1
slice_point: 2
slice_point: 3
slice_point: 4
slice_point: 5
slice_point: 6
slice_point: 7
slice_point: 8
slice_point: 9
}
include {
phase: TEST
}
}
layer {
name: "pred-0"
type: "Reduction"
bottom: "pred-0-vector"
top: "pred-0"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-1"
type: "Reduction"
bottom: "pred-1-vector"
top: "pred-1"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-2"
type: "Reduction"
bottom: "pred-2-vector"
top: "pred-2"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-3"
type: "Reduction"
bottom: "pred-3-vector"
top: "pred-3"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-4"
type: "Reduction"
bottom: "pred-4-vector"
top: "pred-4"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-5"
type: "Reduction"
bottom: "pred-5-vector"
top: "pred-5"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-6"
type: "Reduction"
bottom: "pred-6-vector"
top: "pred-6"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-7"
type: "Reduction"
bottom: "pred-7-vector"
top: "pred-7"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-8"
type: "Reduction"
bottom: "pred-8-vector"
top: "pred-8"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
layer {
name: "pred-9"
type: "Reduction"
bottom: "pred-9-vector"
top: "pred-9"
include {
phase: TEST
}
reduction_param {
operation: MEAN
}
}
하지만 내 경우에는 문제가 SliceLayer''이다 일괄 처리와 같은 상위 블롭을 필요로합니다 (잘못된 것이 아니라면). 10000 개의 톱풀이 필요할 것이므로 다른 솔루션을 찾으려고했습니다. –
.prototxt가 복잡해 지거나 실행 시간이 염려 되니 걱정하지 않으시겠습니까? 그것의 후자 (시간), 그때 당신은 슬라이스 레이어와없이, 그것을 시간 수 있습니다. prototxt 작성과 관련하여 일반적으로 파이썬 코드를 사용하여 prototxt ([this] (https://github.com/XiaozhiChen/resnet-generator/blob/master/resnet_generator.py) 코드에서 영감을 얻음)를 작성합니다. 따라서 100 개의 위쪽 얼룩을 정말 쉽게 쓸 수 있습니다. 그렇지 않으면 기존 레이어를 사용하는 다른 방법이 표시되지 않습니다. 물론 슬라이스와 엘트 와이즈를 조합 한 자신 만의 레이어를 작성할 수 있습니다. –
이 답변을 주셔서 감사합니다. 나는 시간에 대해 더 염려한다. 나는 그것을 시도하고 얼마나 많이 걸리는지 보게 될 것이다. –