텐서플로우:: 작전:: 고정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
)