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 )