Coloca em lote todos os tensores de entrada de forma não determinística.
Quando muitas instâncias deste Op estão sendo executadas simultaneamente com o mesmo container / shared_name no mesmo dispositivo, alguns geram tensores em forma de zero e outros geram tensores de tamanho até max_batch_size.
Todos os tensores em in_tensors são agrupados (então, por exemplo, rótulos e recursos devem ser agrupados com uma única instância desta operação.
Cada invocação de lote emite um escalar `id` que será usado para identificar esta invocação particular ao fazer o desbloqueio ou seu gradiente.
Cada op que emite um lote não vazio também emitirá um Tensor batch_index não vazio, que é uma matriz [K, 3] onde cada linha contém o id da invocação, início e comprimento dos elementos de cada conjunto de Tensores presentes em batched_tensors.
Os tensores em lote são concatenados ao longo da primeira dimensão e todos os tensores em in_tensors devem ter a primeira dimensão do mesmo tamanho.
in_tensors: os tensores a serem agrupados. num_batch_threads: Número de threads de agendamento para processamento de lotes de trabalho. Determina o número de lotes processados em paralelo. max_batch_size: os tamanhos de lote nunca serão maiores do que isso. batch_timeout_micros: número máximo de microssegundos a aguardar antes de gerar um lote incompleto. allowed_batch_sizes: lista opcional de tamanhos de lote permitidos. Se deixado vazio, não faz nada. Caso contrário, fornece uma lista de tamanhos de lote, fazendo com que a opção preencha lotes de até um desses tamanhos. As entradas devem aumentar monotonicamente e a entrada final deve ser igual a max_batch_size. grad_timeout_micros: o tempo limite a ser usado para o gradiente. Veja Unbatch. batched_tensors: tensores vazios ou um lote de tensores concatenados. batch_index: Se out_tensors não estiver vazio, possui informações para invertê-lo. container: controla o escopo de compartilhamento deste lote. id: sempre contém um escalar com um ID exclusivo para esta invocação de Lote. shared_name: A execução simultânea de instâncias de lote no mesmo dispositivo com o mesmo contêiner e shared_name irá agrupar seus elementos em lote. Se deixado em branco, o nome da operação será usado como o nome compartilhado. T: os tipos de tensores a serem agrupados.
Classes aninhadas
classe | Batch.Options | Atributos opcionais para Batch |
Métodos Públicos
estáticos Batch.Options | allowedBatchSizes (List <longo> allowedBatchSizes) |
Output <longo> | batchIndex () |
List < Output <? >> | |
estáticos Batch.Options | batchingQueue (String batchingQueue) |
estáticos Batch.Options | recipiente (recipiente String) |
estática Batch | criar ( Scope escopo, Iterable < Operando <? >> inTensors, numBatchThreads longo, longo maxBatchSize, Long batchTimeoutMicros, Long gradTimeoutMicros, Options ... Opções) Método de fábrica para criar uma classe envolvendo uma nova operação em lote. |
Output <longo> | id () |
estáticos Batch.Options | maxEnqueuedBatches (maxEnqueuedBatches Long) |
estáticos Batch.Options | sharedName (String sharedName) |
Métodos herdados
Métodos Públicos
public static Batch criar ( Scope escopo, Iterable < Operando <? >> inTensors, numBatchThreads longo, longo maxBatchSize, Long batchTimeoutMicros, Long gradTimeoutMicros, Opções ... Opções)
Método de fábrica para criar uma classe envolvendo uma nova operação em lote.
Parâmetros
alcance | escopo atual |
---|---|
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de Batch