텐서플로우:: 작전:: 고정UnigramCandidateSampler
#include <candidate_sampling_ops.h>
학습된 유니그램 분포를 사용하여 후보 샘플링에 대한 레이블을 생성합니다.
요약
유니그램 샘플러는 데이터에서 즉시 분포를 구축하는 대신 파일에서 읽거나 메모리 내 배열로 전달된 고정 유니그램 분포를 사용할 수 있습니다. 가중치에 왜곡 전력을 적용하여 분포를 왜곡하는 옵션도 있습니다.
어휘 파일은 CSV와 같은 형식이어야 하며 마지막 필드는 단어와 관련된 가중치입니다.
각 배치에 대해 이 작업은 샘플링된 후보 라벨의 단일 세트를 선택합니다.
배치당 후보 샘플링의 장점은 단순성과 효율적인 조밀 행렬 곱셈의 가능성입니다. 단점은 샘플링된 후보를 컨텍스트 및 실제 레이블과 독립적으로 선택해야 한다는 것입니다.
인수:
- 범위: 범위 개체
- true_classes: 각 행에 해당 원본 레이블의 num_true target_classes ID가 포함되어 있는 Batch_size * num_true 행렬.
- num_true: 컨텍스트당 실제 레이블 수입니다.
- num_sampled: 무작위로 샘플링할 후보 수입니다.
- 고유: 고유가 참인 경우 거부를 통해 샘플링하므로 일괄 처리의 샘플링된 모든 후보가 고유합니다. 이를 위해서는 거부 후 샘플링 확률을 추정하기 위한 몇 가지 근사치가 필요합니다.
- range_max: 샘플러는 간격 [0, range_max)의 정수를 샘플링합니다.
선택적 속성( Attrs
참조):
- vocab_file: 이 파일의 각 유효한 줄(CSV 형식이어야 함)은 유효한 단어 ID에 해당합니다. ID는 num_reserved_ids부터 순차적으로 나열됩니다. 각 줄의 마지막 항목은 개수 또는 상대 확률에 해당하는 값이 될 것으로 예상됩니다. vocab_file과 유니그램 중 정확히 하나가 이 작업에 전달되어야 합니다.
- 왜곡: 왜곡은 유니그램 확률 분포를 왜곡하는 데 사용됩니다. 각 가중치는 내부 유니그램 분포에 추가되기 전에 먼저 왜곡의 거듭제곱으로 올라갑니다. 결과적으로 왜곡 = 1.0은 일반 유니그램 샘플링(단어 파일에 정의된 대로)을 제공하고 왜곡 = 0.0은 균일한 분포를 제공합니다.
- num_reserved_ids: 선택적으로 일부 예약된 ID를 사용자가 [0, ..., num_reserved_ids) 범위에 추가할 수 있습니다. 한 가지 사용 사례는 특수한 알려지지 않은 단어 토큰이 ID 0으로 사용되는 것입니다. 이러한 ID의 샘플링 확률은 0입니다.
- num_shards: 병렬 처리를 통해 전체 계산 속도를 높이기 위해 샘플러를 사용하여 원래 범위의 하위 집합에서 샘플링할 수 있습니다. 이 매개변수('shard'와 함께)는 전체 계산에 사용되는 파티션 수를 나타냅니다.
- 샤드: 병렬 처리를 통해 전체 계산 속도를 높이기 위해 샘플러를 사용하여 원래 범위의 하위 집합에서 샘플링할 수 있습니다. 이 매개변수('num_shards'와 함께)는 분할이 사용될 때 샘플러 작업의 특정 파티션 번호를 나타냅니다.
- 유니그램(unigrams): 유니그램 수 또는 확률 목록(ID당 하나씩)이 순차적으로 표시됩니다. vocab_file과 유니그램 중 정확히 하나가 이 작업에 전달되어야 합니다.
- Seed: Seed 또는 Seed2가 0이 아닌 값으로 설정된 경우 난수 생성기는 지정된 시드에 의해 시드됩니다. 그렇지 않으면 무작위 시드에 의해 시드됩니다.
- Seed2: 시드 충돌을 피하기 위한 두 번째 시드입니다.
보고:
-
Output
samplingd_candidates: 길이가 num_sampled인 벡터. 여기서 각 요소는 샘플링된 후보의 ID입니다. -
Output
true_expected_count: 배치_크기 * num_true 행렬은 샘플링된 후보 배치에서 각 후보가 발생할 것으로 예상되는 횟수를 나타냅니다. Unique=true인 경우 이는 확률입니다. -
Output
samplingd_expected_count: 각 샘플링된 후보에 대해 길이가 num_sampled인 벡터는 샘플링된 후보 배치에서 후보가 발생할 것으로 예상되는 횟수를 나타냅니다. Unique=true인 경우 이는 확률입니다.
생성자와 소멸자 | |
---|---|
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) |
공개 속성 | |
---|---|
operation | |
sampled_candidates | |
sampled_expected_count | |
true_expected_count |
공개 정적 함수 | |
---|---|
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) |
구조체 | |
---|---|
tensorflow:: ops:: FixUnigramCandidateSampler:: Attrs | FixUnigramCandidateSampler 에 대한 선택적 속성 설정자입니다. |
공개 속성
작업
Operation operation
샘플링_후보
::tensorflow::Output sampled_candidates
샘플링_예상_횟수
::tensorflow::Output sampled_expected_count
true_expected_count
::tensorflow::Output true_expected_count
공공 기능
고정UnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
고정UnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
공개 정적 함수
왜곡
Attrs Distortion( float x )
예약된 ID 수
Attrs NumReservedIds( int64 x )
샤드 수
Attrs NumShards( int64 x )
씨앗
Attrs Seed( int64 x )
시드2
Attrs Seed2( int64 x )
사금파리
Attrs Shard( int64 x )
유니그램
Attrs Unigrams( const gtl::ArraySlice< float > & x )
어휘파일
Attrs VocabFile( StringPiece x )