Compartilhar via


Visão geral da avaliação de EvalDLL

A biblioteca EvalDLL fornece métodos para avaliar modelos de CNTK pré-treinados que são salvos no formato CNTK model-v1. Ele está disponível em C++ (em Windows e Linux) e C# (somente em Windows).

Avaliando diferentes tipos de dados e camadas

Atualmente, a biblioteca Eval dá suporte a vetores para entrada e saída. Isso significa que o vetor de entrada deve corresponder aos nós de entrada no modelo (recursos). Alguns modelos são treinados com imagens (por exemplo, CIFAR-10), no entanto, essas imagens são vetorizadas primeiro e depois alimentadas na rede. Por exemplo, o conjunto de dados CIFAR-10 é composto por imagens pequenas (32 pixels por 32 pixels) ou valores RGB. Embora cada uma seja uma coordenada tridimensional (largura, altura, cor), os dados são vetorizados em um vetor unidimensional. Portanto, é importante converter os dados brutos no formato de vetor antes da avaliação. Essa conversão deve ser feita da mesma maneira que quando fornecida à rede para treinamento.

Consulte a página Avaliar Transformações de Imagem para obter mais informações, especialmente ao lidar com imagens.

Embora um modelo já treinado tenha um conjunto específico de nós de saída, às vezes é desejável obter os valores de outros nós durante a avaliação (por exemplo, camadas ocultas). Isso é possível usando a interface programática, consulte a página Avaliar Camadas Ocultas para obter mais informações.

Limitações atuais

  • Avaliação de thread único. A biblioteca EvalDll de avaliação de CNTK e, por extensão, a biblioteca EvalWrapper gerenciada, são threaded único e uma única reentrada. Não há suporte para avaliações simultâneas de uma única instância de modelo. No entanto, é possível carregar várias instâncias de um modelo e avaliar cada modelo com um único thread. Isso permite que vários modelos sejam avaliados em paralelo, mas cada modelo com um único thread.
  • Qualquer programa que vincule as bibliotecas de avaliação pré-criadas (Cntk.Eval e Cntk.Eval.Wrapper DLLs em Windows e libCntk.Eval no Linux) do pacote binário CNTK deve usar a mesma versão do compilador usada para criar as bibliotecas pré-criadas.