Google I/O에 참여해 주셔서 감사합니다. 주문형 모든 세션 보기 주문형 시청

tensorflow :: ops :: FixedUnigramCandidateSampler

#include <candidate_sampling_ops.h>

학습 된 유니 그램 분포를 사용하여 후보 샘플링에 대한 레이블을 생성합니다.

요약

유니 그램 샘플러는 데이터에서 즉시 배포를 구축하는 대신 파일에서 읽거나 메모리 내 배열로 전달 된 고정 유니 그램 배포를 사용할 수 있습니다. 가중치에 왜곡 력을 적용하여 분포를 왜곡하는 옵션도 있습니다.

어휘 파일은 CSV 형식이어야하며 마지막 필드는 단어와 관련된 가중치입니다.

각 배치에 대해이 작업은 샘플링 된 후보 라벨의 단일 세트를 선택합니다.

배치 당 샘플링 후보의 장점은 단순성과 효율적인 조밀 행렬 곱셈의 가능성입니다. 단점은 샘플 후보가 컨텍스트 및 실제 레이블과 독립적으로 선택되어야한다는 것입니다.

인수 :

  • 범위 : 범위 개체
  • true_classes : batch_size * num_true 행렬. 각 행에는 해당 원래 레이블에있는 num_true target_classes의 ID가 포함됩니다.
  • num_true : 컨텍스트 당 실제 레이블 수.
  • num_sampled : 무작위로 샘플링 할 후보의 수.
  • unique : unique가 true 인 경우 거부로 샘플링하므로 배치의 모든 샘플링 된 후보가 고유합니다. 이를 위해서는 거부 후 샘플링 확률을 추정하기위한 근사치가 필요합니다.
  • range_max : 샘플러는 간격 [0, range_max)에서 정수를 샘플링합니다.

선택적 속성 ( Attrs 참조) :

  • vocab_file :이 파일의 유효한 각 행 (CSV 형식이어야 함)은 유효한 단어 ID에 해당합니다. ID는 num_reserved_ids부터 시작하여 순차적 인 순서입니다. 각 줄의 마지막 항목은 개수 또는 상대 확률에 해당하는 값이 될 것으로 예상됩니다. vocab_file과 unigram 중 정확히 하나가이 작업에 전달되어야합니다.
  • 왜곡 : 왜곡은 유니 그램 확률 분포를 왜곡하는 데 사용됩니다. 각 가중치는 내부 유니 그램 분포에 추가되기 전에 먼저 왜곡의 힘으로 올라갑니다. 결과적으로, 왜곡 = 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과 unigram 중 정확히 하나가이 작업에 전달되어야합니다.
  • seed : seed 또는 seed2가 0이 아닌 값으로 설정된 경우, 난수 생성기는 주어진 seed에 의해 시드됩니다. 그렇지 않으면 임의의 시드로 시드됩니다.
  • seed2 : 시드 충돌을 피하기위한 두 번째 시드.

보고:

  • Output sampled_candidates : 각 요소가 샘플링 된 후보의 ID 인 num_sampled 길이의 벡터입니다.
  • Output true_expected_count : 샘플 된 후보의 배치에서 각 후보가 발생할 것으로 예상되는 횟수를 나타내는 batch_size * num_true 행렬. unique = true이면 확률입니다.
  • Output sampled_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 :: FixedUnigramCandidateSampler :: Attrs

FixedUnigramCandidateSampler의 선택적 속성 설정자입니다.

공용 속성

조작

Operation operation

sampled_candidates

::tensorflow::Output sampled_candidates

sampled_expected_count

::tensorflow::Output sampled_expected_count

true_expected_count

::tensorflow::Output true_expected_count

공공 기능

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
)

공개 정적 함수

왜곡

Attrs Distortion(
  float x
)

NumReservedIds

Attrs NumReservedIds(
  int64 x
)

NumShards

Attrs NumShards(
  int64 x
)

Attrs Seed(
  int64 x
)

Seed2

Attrs Seed2(
  int64 x
)

사금파리

Attrs Shard(
  int64 x
)

유니 그램

Attrs Unigrams(
  const gtl::ArraySlice< float > & x
)

VocabFile

Attrs VocabFile(
  StringPiece x
)