dòng chảy căng:: ôi:: Phân sốMaxPool

#include <nn_ops.h>

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

Bản tóm tắt

Tổng hợp tối đa phân số hơi khác so với tổng hợp tối đa thông thường. Trong gộp nhóm 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ị tối đa của các phần con N x N 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 hợp tối đa phân số, như bạn có thể mong đợi từ từ "phân số", có nghĩa là tỷ lệ rút gọn 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ụ: chúng ta hãy xem 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 ta định nghĩa như sau:

  1. input_row_length : số hàng từ tập hợp đầu vào
  2. đầu ra_row_length : sẽ nhỏ hơn đầu vào
  3. alpha = input_row_length/out_row_length : tỷ lệ giảm của chúng tôi
  4. K = sàn(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 sẽ thỏa mãn:

  1. a[0] = 0 : giá trị đầu tiên của chuỗi 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 (row_pooling_sequence) = đầu ra_row_length+1

Để biết thêm chi tiết về tổng hợp tối đa phân đoạn, hãy xem bài viết này: Benjamin Graham, Fractional Max-Pooling

Lập 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 của value , hiện chỉ hỗ trợ thứ nguyên hàng và cột và phải >= 1,0. Ví dụ: tỷ lệ gộp hợp lệ có dạng [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 các thứ nguyên theo lô và kênh. 1,44 và 1,73 lần lượt là tỷ lệ gộp theo kích thước chiều cao và chiều rộng.

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, nếu không thì theo kiểu ngẫu nhiên. Kiểm tra bài viết của 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, điều đó có nghĩa là khi gộp, các giá trị ở ranh giới của các ô gộp liền kề được cả hai ô sử dụng. 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ỉ số 2 sẽ được sử dụng hai lần. Kết quả sẽ là [20, 16] cho phép gộp tối đa theo phân số.

  • xác định: Khi được đặt thành True, vùng gộ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 thử nghiệm đơn vị để xác định FractionalMaxPool .
  • hạt giống: Nếu hạt giống hoặc hạt giống2 được đặt khác 0, bộ tạo số ngẫu nhiên sẽ được gieo hạt giống đã cho. Nếu không, nó sẽ được gieo bởi một hạt giống ngẫu nhiên.
  • Seed2: Hạt giống thứ hai để tránh va chạm hạt giống.

Trả về:

  • Đầu ra Output ra: tenxơ đầu ra sau khi gộp tối đa phân đoạn.
  • Output row_pooling_sequence: chuỗi gộp hàng, cần thiết để tính toán độ dốc.
  • Output col_pooling_sequence: trình tự gộp cột, cần thiết để tính toán độ dốc.

Hàm 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

tenorflow:: ops:: FractionalMaxPool:: Attrs

Trình 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

Phân sốMaxPool

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio
)

Phân sốMaxPool

 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
)

Chồng chéo

Attrs Overlapping(
  bool x
)

giả ngẫu nhiên

Attrs PseudoRandom(
  bool x
)

Hạt giống

Attrs Seed(
  int64 x
)

Hạt giống2

Attrs Seed2(
  int64 x
)