텐서플로우:: 작전:: FractionalMaxPool

#include <nn_ops.h>

입력에 대해 분수 최대 풀링을 수행합니다.

요약

부분 최대 풀링은 일반 최대 풀링과 약간 다릅니다. 일반 최대 풀링에서는 세트의 더 작은 N x N 하위 섹션(종종 2x2)의 최대값을 취하여 입력 세트의 크기를 줄이고 N배(여기서 N은 정수)만큼 세트를 줄이려고 합니다. "분수"라는 단어에서 예상할 수 있듯이 분수 최대 풀링은 전체 감소 비율 N이 정수일 필요가 없음을 의미합니다.

풀링 영역의 크기는 무작위로 생성되지만 상당히 균일합니다. 예를 들어 높이 차원과 풀 경계가 될 행 목록에 대한 제약 조건을 살펴보겠습니다.

먼저 다음을 정의합니다.

  1. input_row_length : 입력 세트의 행 수
  2. output_row_length : 입력보다 작습니다.
  3. alpha = input_row_length / output_row_length : 축소 비율
  4. K = 바닥(알파)
  5. row_pooling_sequence : 풀 경계 행의 결과 목록입니다.

그런 다음 row_pooling_sequence는 다음을 충족해야 합니다.

  1. a[0] = 0 : 시퀀스의 첫 번째 값은 0입니다.
  2. a[end] = input_row_length : 시퀀스의 마지막 값은 크기입니다.
  3. K <= (a[i+1] - a[i]) <= K+1 : 모든 간격은 K 또는 K+1 크기입니다.
  4. 길이(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
)