dòng chảy căng:: ôi:: Đã sửa lỗiUnigramỨng cử viênSampler

#include <candidate_sampling_ops.h>

Tạo nhãn để lấy mẫu ứng viên bằng cách phân phối unigram đã học.

Bản tóm tắt

Bộ lấy mẫu unigram có thể sử dụng phân phối unigram cố định được đọc từ một tệp hoặc được truyền vào dưới dạng mảng trong bộ nhớ thay vì xây dựng phân phối từ dữ liệu một cách nhanh chóng. Ngoài ra còn có một tùy chọn để làm lệch sự phân bố bằng cách áp dụng công suất biến dạng cho các trọng số.

Tệp từ vựng phải ở định dạng giống như CSV, với trường cuối cùng là trọng số liên quan đến từ.

Đối với mỗi lô, hoạt động này chọn một tập hợp các nhãn ứng cử viên được lấy mẫu.

Ưu điểm của việc lấy mẫu ứng viên theo từng đợt là tính đơn giản và khả năng nhân ma trận dày đặc hiệu quả. Điểm bất lợi là các ứng cử viên được lấy mẫu phải được chọn độc lập với bối cảnh và nhãn thực sự.

Lập luận:

  • phạm vi: Một đối tượng Phạm vi
  • true_classes: Ma trận batch_size * num_true, trong đó mỗi hàng chứa ID của num_true target_classes trong nhãn gốc tương ứng.
  • num_true: Số lượng nhãn thực cho mỗi ngữ cảnh.
  • num_sampled: Số lượng ứng viên được lấy mẫu ngẫu nhiên.
  • duy nhất: Nếu duy nhất là đúng, chúng tôi lấy mẫu với sự từ chối, sao cho tất cả các ứng cử viên được lấy mẫu trong một đợt là duy nhất. Điều này đòi hỏi một số phép tính gần đúng để ước tính xác suất lấy mẫu sau loại bỏ.
  • range_max: Bộ lấy mẫu sẽ lấy mẫu các số nguyên trong khoảng [0, range_max).

Thuộc tính tùy chọn (xem Attrs ):

  • vocab_file: Mỗi dòng hợp lệ trong tệp này (phải có định dạng giống CSV) tương ứng với một ID từ hợp lệ. ID được sắp xếp theo thứ tự, bắt đầu từ num_reserved_ids. Mục cuối cùng trong mỗi dòng dự kiến ​​​​sẽ là một giá trị tương ứng với số lượng hoặc xác suất tương đối. Chính xác một trong số vocab_file và unigram cần được chuyển tới op này.
  • biến dạng: Biến dạng được sử dụng để làm lệch phân bố xác suất unigram. Mỗi trọng số trước tiên được nâng lên tới mức độ biến dạng trước khi thêm vào phân phối unigram bên trong. Kết quả là, độ méo = 1,0 cho phép lấy mẫu unigram thông thường (như được xác định bởi tệp từ vựng) và độ méo = 0,0 mang lại sự phân bố đồng đều.
  • num_reserved_ids: Người dùng có thể thêm một số ID dành riêng trong phạm vi [0, ..., num_reserved_ids). Một trường hợp sử dụng là mã thông báo từ đặc biệt không xác định được sử dụng làm ID 0. Các ID này sẽ có xác suất lấy mẫu là 0.
  • num_shards: Có thể sử dụng bộ lấy mẫu để lấy mẫu từ một tập hợp con của phạm vi ban đầu nhằm tăng tốc toàn bộ quá trình tính toán thông qua tính song song. Tham số này (cùng với 'phân đoạn') cho biết số lượng phân vùng đang được sử dụng trong quá trình tính toán tổng thể.
  • phân đoạn: Bộ lấy mẫu có thể được sử dụng để lấy mẫu từ một tập hợp con của phạm vi ban đầu nhằm tăng tốc toàn bộ quá trình tính toán thông qua tính song song. Tham số này (cùng với 'num_shards') cho biết số phân vùng cụ thể của hoạt động lấy mẫu khi phân vùng đang được sử dụng.
  • unigram: Danh sách số lượng hoặc xác suất unigram, mỗi số một ID theo thứ tự tuần tự. Chính xác một trong số vocab_file và unigram sẽ được chuyển cho op này.
  • 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ề:

  • Output sampled_candidates: Một vectơ có độ dài bằng số_sampled, trong đó mỗi phần tử là ID của một ứng cử viên được lấy mẫu.
  • Output true_expected_count: Ma trận batch_size * num_true, biểu thị số lần mỗi ứng viên dự kiến ​​xuất hiện trong một loạt ứng viên được lấy mẫu. Nếu duy nhất=true thì đây là một xác suất.
  • Output sampled_expected_count: Một vectơ có độ dài bằng num_sampled, cho mỗi ứng viên được lấy mẫu biểu thị số lần ứng viên dự kiến ​​xuất hiện trong một loạt ứng viên được lấy mẫu. Nếu duy nhất=true thì đây là một xác suất.

Hàm tạo và hàm hủy

FixedUnigramCandidateSampler (const :: tensorflow::Scope & scope, :: tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max)
FixedUnigramCandidateSampler (const :: tensorflow::Scope & scope, :: tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs)

Thuộc tính công khai

operation
sampled_candidates
sampled_expected_count
true_expected_count

Các hàm tĩnh công khai

Distortion (float x)
NumReservedIds (int64 x)
NumShards (int64 x)
Seed (int64 x)
Seed2 (int64 x)
Shard (int64 x)
Unigrams (const gtl::ArraySlice< float > & x)
VocabFile (StringPiece x)

Cấu trúc

tensorflow:: ops:: Đã sửa lỗiUnigramCandidateSampler:: Attrs

Trình thiết lập thuộc tính tùy chọn cho FixUnigramCandidateSampler .

Thuộc tính công khai

hoạt động

Operation operation

sampled_candidates

::tensorflow::Output sampled_candidates

sampled_expected_count

::tensorflow::Output sampled_expected_count

true_expected_count

::tensorflow::Output true_expected_count

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

Đã sửa lỗiUnigramỨng cử viênSampler

 FixedUnigramCandidateSampler(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input true_classes,
  int64 num_true,
  int64 num_sampled,
  bool unique,
  int64 range_max
)

Đã sửa lỗiUnigramỨng cử viênSampler

 FixedUnigramCandidateSampler(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input true_classes,
  int64 num_true,
  int64 num_sampled,
  bool unique,
  int64 range_max,
  const FixedUnigramCandidateSampler::Attrs & attrs
)

Các hàm tĩnh công khai

Biến dạng

Attrs Distortion(
  float x
)

SốId dành riêng

Attrs NumReservedIds(
  int64 x
)

số mảnh vỡ

Attrs NumShards(
  int64 x
)

Hạt giống

Attrs Seed(
  int64 x
)

Hạt giống2

Attrs Seed2(
  int64 x
)

Mảnh vỡ

Attrs Shard(
  int64 x
)

Unigram

Attrs Unigrams(
  const gtl::ArraySlice< float > & x
)

Tập tin từ vựng

Attrs VocabFile(
  StringPiece x
)