텐서플로우:: ops:: FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>학습된 단어 분포를 사용하여 후보 샘플링을 위한 레이블을 생성합니다.
요약
단어 단위 샘플러는 실시간으로 데이터로부터 분포를 구축하는 대신, 파일에서 읽어오거나 메모리 배열로 전달받은 고정된 단어 단위 분포를 사용할 수 있습니다. 또한 가중치에 왜곡 지수를 적용하여 분포를 왜곡하는 옵션도 있습니다.
어휘 파일은 CSV 형식과 유사해야 하며, 마지막 필드는 단어에 할당된 가중치여야 합니다.
이 연산은 각 배치에 대해 샘플링된 후보 레이블 세트 하나를 선택합니다.
배치 단위로 후보를 샘플링하는 방식의 장점은 단순성과 효율적인 밀집 행렬 곱셈이 가능하다는 점입니다. 단점은 샘플링된 후보를 컨텍스트 및 실제 레이블과 독립적으로 선택해야 한다는 것입니다.
논거:
- 범위: Scope 객체
- true_classes: batch_size * num_true 크기의 행렬로, 각 행에는 해당 원본 레이블에 있는 num_true개의 target_classes의 ID가 포함됩니다.
- num_true: 컨텍스트별 참 레이블의 개수입니다.
- num_sampled: 무작위로 샘플링할 후보의 수입니다.
- 고유성: 고유성이 참인 경우, 모든 샘플링된 후보가 배치에서 고유하도록 거부 샘플링을 수행합니다. 이를 위해서는 거부 후 샘플링 확률을 추정하기 위한 근사치가 필요합니다.
- range_max: 샘플러는 [0, range_max) 범위의 정수를 샘플링합니다.
선택적 속성( Attrs 참조):
- vocab_file: 이 파일(CSV 형식이어야 함)의 각 유효한 행은 유효한 단어 ID에 해당합니다. ID는 num_reserved_ids부터 순차적으로 정렬됩니다. 각 행의 마지막 항목은 개수 또는 상대 확률에 해당하는 값이어야 합니다. 이 연산에는 vocab_file과 unigrams 중 하나만 전달해야 합니다.
- 왜곡: 왜곡은 단어 확률 분포를 왜곡하는 데 사용됩니다. 각 가중치는 내부 단어 분포에 더해지기 전에 먼저 왜곡 지수만큼 제곱됩니다. 결과적으로 왜곡 = 1.0은 규칙적인 단어 샘플링(어휘 파일에 정의된 대로)을 제공하고, 왜곡 = 0.0은 균일 분포를 제공합니다.
- num_reserved_ids: 선택적으로 사용자는 [0, ..., num_reserved_ids) 범위 내에 예약된 ID를 추가할 수 있습니다. 예를 들어, 알 수 없는 특수 단어 토큰을 ID 0으로 사용할 수 있습니다. 이러한 ID는 샘플링 확률이 0입니다.
- num_shards: 샘플러는 병렬 처리를 통해 전체 계산 속도를 높이기 위해 원래 범위의 부분 집합에서 샘플링하는 데 사용할 수 있습니다. 이 매개변수는 ('shard'와 함께) 전체 계산에 사용되는 파티션 수를 나타냅니다.
- 샤드(shard): 샘플러는 병렬 처리를 통해 전체 계산 속도를 높이기 위해 원래 범위의 하위 집합에서 샘플링하는 데 사용할 수 있습니다. 이 매개변수는 ('num_shards'와 함께) 파티셔닝을 사용하는 경우 샘플러 연산의 특정 파티션 번호를 나타냅니다.
- unigrams: 각 ID별로 순차적으로 나열된 unigram 개수 또는 확률 목록입니다. vocab_file과 unigrams 중 정확히 하나만 이 연산에 전달해야 합니다.
- seed: seed 또는 seed2 중 하나라도 0이 아닌 값으로 설정되면, 지정된 시드를 사용하여 난수 생성기를 초기화합니다. 그렇지 않으면 임의의 시드를 사용합니다.
- seed2: 시드 충돌을 방지하기 위한 두 번째 시드입니다.
보고:
-
Outputsampled_candidates: num_sampled 길이의 벡터이며, 각 요소는 샘플링된 후보의 ID입니다. -
Outputtrue_expected_count: batch_size * num_true 행렬로, 샘플링된 후보들의 배치에서 각 후보가 나타날 것으로 예상되는 횟수를 나타냅니다. unique=true인 경우, 이는 확률입니다. -
Outputsampled_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) | |
구조 | |
|---|---|
| 텐서플로우:: ops:: FixedUnigramCandidateSampler:: Attrs | FixedUnigramCandidateSampler 에 대한 선택적 속성 설정기입니다. |
공개 속성
작업
Operation operation
샘플링된 후보자
::tensorflow::Output sampled_candidates
샘플링된 예상 개수
::tensorflow::Output sampled_expected_count
실제_예상_수
::tensorflow::Output true_expected_count
공공 기능
고정된 단일어 후보 샘플러
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 )
공개 정적 함수
왜곡
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 )