dòng chảy :: hoạt động :: FractionalMaxPool

#include <nn_ops.h>

Thực hiện tổng hợp tối đa theo phân số trên đầu vào.

Tóm lược

Tổng hợp tối đa theo phân số hơi khác so với tổng hợp tối đa thông thường. Trong tổng hợp tối đa thông thường, bạn giảm kích thước tập hợp đầu vào bằng cách lấy giá trị lớn nhất của N x N phần con nhỏ hơn của tập hợp (thường là 2x2) và cố gắng giảm tập hợp theo hệ số N, trong đó N là số nguyên. Tổng cộng tối đa theo phân số, như bạn có thể mong đợi từ từ "phân số", có nghĩa là tỷ lệ giảm tổng thể N không nhất thiết phải là số nguyên.

Kích thước của các vùng gộp được tạo ngẫu nhiên nhưng khá đồng đều. Ví dụ: hãy xem xét kích thước chiều cao và các ràng buộc trên danh sách các hàng sẽ là ranh giới nhóm.

Đầu tiên, chúng tôi xác định những điều sau:

  1. input_row_length: số hàng từ tập hợp đầu vào
  2. output_row_length: sẽ nhỏ hơn đầu vào
  3. alpha = input_row_length / output_row_length: tỷ lệ giảm của chúng tôi
  4. K = tầng (alpha)
  5. row_pooling_sequence: đây là danh sách kết quả của các hàng ranh giới nhóm

Sau đó, row_pooling_sequence phải thỏa mãn:

  1. a [0] = 0: giá trị đầu tiên của dãy là 0
  2. a [end] = input_row_length: giá trị cuối cùng của chuỗi là kích thước
  3. K <= (a [i + 1] - a [i]) <= K + 1: tất cả các khoảng đều có kích thước K hoặc K + 1
  4. length (row_pooling_sequence) = output_row_length + 1

Để biết thêm chi tiết về tổng hợp tối đa theo phân số, hãy xem bài báo này: Benjamin Graham, Tổng hợp tối đa theo phân số

Tranh luận:

  • phạm vi: Một đối tượng Phạm vi
  • giá trị: 4-D với hình dạng [batch, height, width, channels] .
  • pooling_ratio: Tỷ lệ gộp cho từng thứ nguyên value , hiện chỉ hỗ trợ thứ nguyên hàng và col và phải> = 1,0. Ví dụ: tỷ lệ gộp hợp lệ trông giống như [1,0, 1,44, 1,73, 1,0]. Phần tử đầu tiên và cuối cùng phải là 1,0 vì chúng tôi không cho phép tổng hợp theo thứ nguyên hàng loạt và kênh. 1,44 và 1,73 là tỷ lệ gộp trên kích thước chiều cao và chiều rộng tương ứng.

Các thuộc tính tùy chọn (xem Phần Attrs ):

  • pseudo_random: Khi được đặt thành True, tạo chuỗi tổng hợp theo kiểu giả ngẫu nhiên, nếu không, theo kiểu ngẫu nhiên. Kiểm tra giấy Benjamin Graham, Fractional Max-Pooling để biết sự khác biệt giữa giả ngẫu nhiên và ngẫu nhiên.
  • chồng chéo: Khi được đặt thành True, có nghĩa là khi gộp, các giá trị ở ranh giới của các ô gộp liền kề sẽ được sử dụng bởi cả hai ô. Ví dụ:

index 0 1 2 3 4

value 20 5 16 3 7

Nếu chuỗi gộp là [0, 2, 4] thì 16, ở chỉ mục 2 sẽ được sử dụng hai lần. Kết quả sẽ là [20, 16] cho tổng hợp tối đa theo phân số.

  • xác định: Khi được đặt thành True, một vùng tổng hợp cố định sẽ được sử dụng khi lặp qua nút FractionalMaxPool trong biểu đồ tính toán. Chủ yếu được sử dụng trong bài kiểm tra đơn vị để xác định FractionalMaxPool .
  • hạt giống: Nếu hạt giống hoặc hạt giống2 được đặt là khác 0, trình tạo số ngẫu nhiên được gieo hạt giống đã cho. Nếu không, nó được gieo bởi một hạt ngẫu nhiên.
  • seed2: Hạt giống thứ hai để tránh hạt bị va chạm.

Lợi nhuận:

  • Output đầu ra: đầu ra tensor sau khi gộp tối đa phân số.
  • Output row_pooling_sequence: chuỗi gộp hàng, cần thiết để tính toán gradient.
  • Output col_pooling_sequence: chuỗi gộp cột, cần thiết để tính toán gradient.

Người xây dựng và Người phá hủy

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)

Thuộc tính công khai

col_pooling_sequence
operation
output
row_pooling_sequence

Các chức năng tĩnh công khai

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

Cấu trúc

tensorflow :: ops :: FractionalMaxPool :: Attrs

Bộ thiết lập thuộc tính tùy chọn cho FractionalMaxPool .

Thuộc tính công khai

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

hoạt động

Operation operation

đầu ra

::tensorflow::Output output

row_pooling_sequence

::tensorflow::Output row_pooling_sequence

Chức năng công cộng

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
)

Các chức năng tĩnh công khai

Xác định

Attrs Deterministic(
  bool x
)

Qua nối chồng

Attrs Overlapping(
  bool x
)

PseudoRandom

Attrs PseudoRandom(
  bool x
)

Hạt giống

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)