tensorflow::ops::FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>Tạo nhãn cho việc lấy mẫu ứng viên bằng cách sử dụng 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ừ 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 tức thời. Ngoài ra còn có tùy chọn làm lệch phân phối bằng cách áp dụng lũy thừa biến dạng cho các trọng số.
Tệp từ vựng nên ở định dạng tương tự CSV, với trường cuối cùng là trọng số được gán cho từ đó.
Với mỗi lô, thao tác 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 lô là sự đơn giản và khả năng nhân ma trận dày đặc hiệu quả. Nhược điểm là các ứng viên được lấy mẫu phải được chọn độc lập với ngữ cảnh và nhãn thực.
Luận điểm:
- phạm vi: Một đối tượng Phạm vi
- true_classes: Một ma trận có kích thước 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 đúng cho mỗi ngữ cảnh.
- num_sampled: Số lượng ứng viên được chọn ngẫu nhiên.
- unique: Nếu unique là đúng, chúng ta lấy mẫu có loại bỏ, sao cho tất cả các ứng viên được lấy mẫu trong một lô đều là duy nhất. Điều này đòi hỏi một số phép xấp xỉ để ước tính xác suất lấy mẫu sau khi 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).
Các 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ệ. Các ID được sắp xếp theo thứ tự tuần tự, bắt đầu từ num_reserved_ids. Mục cuối cùng trong mỗi dòng được mong đợi là một giá trị tương ứng với số lần xuất hiện hoặc xác suất tương đối. Chỉ cần truyền chính xác một trong hai tham số vocab_file và unigrams cho toán tử 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 của unigram. Mỗi trọng số trước tiên được nâng lên lũy thừa của biến dạng trước khi được cộng vào phân bố unigram nội bộ. Kết quả là, biến dạng = 1.0 cho ra lấy mẫu unigram thông thường (như được định nghĩa bởi tệp từ vựng), và biến dạng = 0.0 cho ra phân bố đồng đều.
- num_reserved_ids: Người dùng có thể tùy chọn 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ột từ khóa đặc biệt chưa biết được 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: Bộ lấy mẫu có thể được sử dụng để lấy mẫu từ một tậ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 song song hóa. Tham số này (cùng với 'shard') cho biết số lượng phân vùng được sử dụng trong toàn bộ quá trình tính toán.
- shard: Bộ lấy mẫu có thể được sử dụng để lấy mẫu từ một tậ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 song song hóa. Tham số này (cùng với 'num_shards') chỉ ra số phân vùng cụ thể của một thao tác lấy mẫu khi sử dụng phân vùng.
- unigrams: Một danh sách các số lần xuất hiện hoặc xác suất của unigram, mỗi số một cho một ID theo thứ tự tuần tự. Chỉ được truyền chính xác một trong hai tham số vocab_file và unigrams cho toán tử này.
- 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ề:
-
Outputsampled_candidates: Một vectơ có độ dài num_sampled, trong đó mỗi phần tử là ID của một ứng viên được chọn mẫu. -
Outputtrue_expected_count: Một ma trận batch_size * num_true, biểu thị số lần dự kiến mỗi ứng viên xuất hiện trong một lô ứng viên được lấy mẫu. Nếu unique=true, thì đây là xác suất. -
Outputsampled_expected_count: Một vectơ có độ dài num_sampled, đại diện cho số lần dự kiến xuất hiện của ứng viên trong một nhóm các ứng viên được lấy mẫu. Nếu unique=true, thì đây là một xác suất.
Hàm khởi 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::FixedUnigramCandidateSampler::Attrs | Các thiết lập thuộc tính tùy chọn cho FixedUnigramCandidateSampler . |
Thuộc tính công khai
hoạt động
Operation operation
ứng viên được chọn mẫu
::tensorflow::Output sampled_candidates
số lượng dự kiến được lấy mẫu
::tensorflow::Output sampled_expected_count
số_lượng_dự_vọng_thực_sự
::tensorflow::Output true_expected_count
Chức năng công cộng
FixedUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
FixedUnigramCandidateSampler
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
Sự biến dạng
Attrs Distortion( float x )
Số lượng ID được đặt trước
Attrs NumReservedIds( int64 x )
NumShards
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 )
Unigrams
Attrs Unigrams( const gtl::ArraySlice< float > & x )
Tệp từ vựng
Attrs VocabFile( StringPiece x )