텐서플로우:: 작전:: FractionalMaxPool
#include <nn_ops.h>
입력에 대해 분수 최대 풀링을 수행합니다.
요약
부분 최대 풀링은 일반 최대 풀링과 약간 다릅니다. 일반 최대 풀링에서는 세트의 더 작은 N x N 하위 섹션(종종 2x2)의 최대값을 취하여 입력 세트의 크기를 줄이고 N배(여기서 N은 정수)만큼 세트를 줄이려고 합니다. "분수"라는 단어에서 예상할 수 있듯이 분수 최대 풀링은 전체 감소율 N이 정수일 필요가 없음을 의미합니다.
풀링 영역의 크기는 무작위로 생성되지만 상당히 균일합니다. 예를 들어 높이 차원과 풀 경계가 될 행 목록에 대한 제약 조건을 살펴보겠습니다.
먼저 다음을 정의합니다.
- input_row_length : 입력 세트의 행 수
- output_row_length : 입력보다 작습니다.
- alpha = input_row_length / output_row_length : 축소 비율
- K = 바닥(알파)
- row_pooling_sequence : 풀 경계 행의 결과 목록입니다.
그런 다음 row_pooling_sequence는 다음을 충족해야 합니다.
- a[0] = 0 : 시퀀스의 첫 번째 값은 0입니다.
- a[end] = input_row_length : 시퀀스의 마지막 값은 크기입니다.
- K <= (a[i+1] - a[i]) <= K+1 : 모든 간격은 K 또는 K+1 크기입니다.
- 길이(row_pooling_sequence) = 출력_행_길이+1
부분 최대 풀링에 대한 자세한 내용은 다음 문서를 참조하세요. Benjamin Graham, Fractional Max-Pooling
인수:
- 범위: 범위 개체
- 값:
[batch, height, width, channels]
모양의 4차원. - pooling_ratio:
value
의 각 차원에 대한 풀링 비율. 현재 행 및 열 차원만 지원하며 1.0보다 커야 합니다. 예를 들어 유효한 풀링 비율은 [1.0, 1.44, 1.73, 1.0]과 같습니다. 배치 및 채널 차원에서 풀링을 허용하지 않으므로 첫 번째 요소와 마지막 요소는 1.0이어야 합니다. 1.44와 1.73은 각각 높이와 너비 차원의 풀링 비율입니다.
선택적 속성( Attrs
참조):
- pseudo_random: True로 설정하면 의사 무작위 방식으로 풀링 시퀀스를 생성하고, 그렇지 않으면 무작위 방식으로 생성합니다. 의사 난수와 무작위의 차이에 대해서는 Benjamin Graham의 Fractional Max-Pooling 논문을 확인하세요.
- Overlapping: True로 설정하면 풀링할 때 인접한 풀링 셀 경계의 값이 두 셀 모두에서 사용된다는 의미입니다. 예를 들어:
index 0 1 2 3 4
value 20 5 16 3 7
풀링 시퀀스가 [0, 2, 4]이면 인덱스 2의 16이 두 번 사용됩니다. 분수 최대 풀링의 경우 결과는 [20, 16]입니다.
- 결정론적: True로 설정하면 계산 그래프에서 FractionalMaxPool 노드를 반복할 때 고정 풀링 영역이 사용됩니다. FractionalMaxPool을 결정적으로 만들기 위해 단위 테스트에 주로 사용됩니다.
- Seed: Seed 또는 Seed2가 0이 아닌 값으로 설정된 경우 난수 생성기는 지정된 시드에 의해 시드됩니다. 그렇지 않으면 무작위 시드에 의해 시드됩니다.
- Seed2: 시드 충돌을 피하기 위한 두 번째 시드입니다.
보고:
-
Output
출력: 부분 최대 풀링 후 출력 텐서. -
Output
row_pooling_sequence: 행 풀링 시퀀스, 기울기를 계산하는 데 필요합니다. -
Output
col_pooling_sequence: 기울기를 계산하는 데 필요한 열 풀링 시퀀스입니다.
생성자와 소멸자 | |
---|---|
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio) | |
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs) |
공개 속성 | |
---|---|
col_pooling_sequence | |
operation | |
output | |
row_pooling_sequence |
공개 정적 함수 | |
---|---|
Deterministic (bool x) | |
Overlapping (bool x) | |
PseudoRandom (bool x) | |
Seed (int64 x) | |
Seed2 (int64 x) |
구조체 | |
---|---|
텐서플로우:: ops:: FractionalMaxPool:: Attrs | FractionalMaxPool 에 대한 선택적 속성 설정자입니다. |
공개 속성
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
작업
Operation operation
산출
::tensorflow::Output output
row_pooling_sequence
::tensorflow::Output row_pooling_sequence
공공 기능
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio )
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs )
공개 정적 함수
결정론적
Attrs Deterministic( bool x )
겹치는
Attrs Overlapping( bool x )
의사랜덤
Attrs PseudoRandom( bool x )
씨앗
Attrs Seed( int64 x )
시드2
Attrs Seed2( int64 x )