DataLoader + pin_memory
Aviso: Este post foi traduzido para o português usando um modelo de tradução automática. Por favor, me avise se encontrar algum erro.
Em PyTorch, quando se treinam redes neurais, especialmente em grandes conjuntos de dados, aproveitar o DataLoader
com pin_memory=True
e definir num_workers
em um número positivo aumenta significativamente o desempenho.
pin_memory=True
permite uma transferência mais rápida dos dados para a GPU mantendo-os na memória pinned
(bloqueada por página).
Ao mesmo tempo, num_workers
determina o número de subprocessos utilizados para a carga de dados, o que permite a obtenção assíncrona de dados sem bloquear o cálculo da GPU
Essa combinação minimiza o tempo de inatividade da GPU, garantindo um uso mais eficiente dos recursos de hardware e tempos de treinamento do modelo mais rápidos.
data_loader = DataLoader(dataset, batch_size=32, shuffle=True, num_workers=4, pin_memory=True)