tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

Thực hiện phép gộp tối đa phân số trên dữ liệu đầu vào.

Bản tóm tắt

Gộp tối đa phân số (Fractional max pooling) hơi khác so với gộp tối đa thông thường (Regular max pooling). Trong gộp tối đa thông thường, bạn thu nhỏ tập dữ liệu đầu vào bằng cách lấy giá trị lớn nhất của các phần con nhỏ hơn N x N (thường là 2x2) của tập dữ liệu, và cố gắng giảm tập dữ liệu xuống một hệ số N, trong đó N là một số nguyên. Gộp tối đa phân số, như bạn có thể đoán được 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à một 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 chiều cao và các ràng buộc đối với danh sách các hàng sẽ là ranh giới của vùng gộp.

Trước tiên, chúng ta định nghĩa các khái niệm sau:

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

Khi đó, row_pooling_sequence phải thỏa mãn điều kiện sau:

  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. độ dài(chuỗi hàng gộp) = độ dài hàng đầu ra + 1

Để biết thêm chi tiết về gộp tối đa phân số (fractional max pooling), hãy xem bài báo này: Benjamin Graham, Fractional Max-Pooling

Luận điểm:

  • phạm vi: Một đối tượng Phạm vi
  • Giá trị: 4 chiều với hình dạng [batch, height, width, channels] .
  • pooling_ratio: Tỷ lệ gộp cho mỗi chiều của value , hiện chỉ hỗ trợ chiều hàng và cột và phải lớn hơn hoặc bằng 1.0. Ví dụ, tỷ lệ gộp hợp lệ trô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 gộp trên chiều lô và kênh. 1.44 và 1.73 là tỷ lệ gộp trên chiều chiều cao và chiều rộng tương ứng.

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

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

index 0 1 2 3 4

value 20 5 16 3 7

Nếu dãy gộp là [0, 2, 4], thì phần tử 16 ở chỉ số 2 sẽ được sử dụng hai lần. Kết quả sẽ là [20, 16] đối với phép gộp tối đa phân số.

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

Trả về:

  • Kết quả Output : tensor đầu ra sau khi thực hiện phép 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 độ dốc.
  • Output col_pooling_sequence: chuỗi gộp cột, cần thiết để tính toán độ dốc.

Hàm khởi tạo và hàm 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 hàm 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

Các 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

trình tự gộp hàng

::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 hàm tĩnh công khai

Xác định

Attrs Deterministic(
  bool x
)

Sự chồng chéo

Attrs Overlapping(
  bool x
)

Ngẫu nhiên giả

Attrs PseudoRandom(
  bool x
)

Hạt giống

Attrs Seed(
  int64 x
)

Hạt giống2

Attrs Seed2(
  int64 x
)