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] em que cada linha contém o id da invocação, o início e o 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
aula | Batch.Options | Atributos opcionais para Batch |
Métodos Públicos
static Batch.Options | allowedBatchSizes (List <Long> allowedBatchSizes) |
Saída <Long> | batchIndex () |
Listar < Resultado <? >> | |
static Batch.Options | batchingQueue (String batchingQueue) |
static Batch.Options | |
lote estático | 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. |
Saída <Long> | id () |
static Batch.Options | maxEnqueuedBatches (Long maxEnqueuedBatches) |
static 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