Compartir a través de


Cómo probar

Las pruebas unitarias y las pruebas de un extremo a otro proporcionadas en la carpeta \Tests se ejecutan como parte del flujo de trabajo de protección en el servidor de compilación en las plataformas Windows y Linux. Puede ejecutar las pruebas de la plataforma localmente para comprobar que los cambios en el código no interrumpen ninguna prueba.

Pruebas unitarias

Actualmente, las pruebas unitarias solo se admiten (y comprueban) para las compilaciones de GPU.

En Windows

Asegúrese de configurar las bibliotecas boost y las variables de entorno, así como el ejecutor de pruebas boost para Visual Studio. Para obtener instrucciones , consulte aquí.

Reinicie Visual Studio y vaya al menú "Test -- Test --> Test Configuración". Establezca la arquitectura de procesador predeterminada en x64 y desactive la opción "Mantener en ejecución el motor de ejecución de pruebas". En la ventana Explorador de pruebas, seleccione Agrupar por rasgos (junto al campo de búsqueda). Después de una recompilación, debería ver todas las pruebas unitarias en el Explorador de pruebas. Puede ejecutar y depurar mediante el menú contextual.

En Linux

En primer lugar, debe instalar las bibliotecas boost. Para obtener instrucciones , consulte aquí.

A continuación, puede crear archivos binarios de prueba unitaria de la misma manera que el binario CNTK, como se especifica aquí. Los archivos binarios se crean en la misma carpeta que el binario CNTK. Las siguientes pruebas unitarias están disponibles actualmente:

  • mathtests: pruebas unitarias para operaciones matemáticas
  • readertests: pruebas unitarias para lectores
  • networktests: pruebas unitarias para operaciones de red
  • brainscripttests: pruebas unitarias para brainscript
  • evaltests: pruebas unitarias para Eval

Puede iniciar cada prueba unitaria ejecutando el archivo binario correspondiente. También puede usar parámetros de línea de comandos descritos por Boost Unit Test Framework para controlar la ejecución de pruebas y la salida de pruebas.

Prueba integrales

Las pruebas de CNTK de un extremo a otro se pueden ejecutar en Linux y Windows mediante el script de Python "TestDriver.py" ubicado en \Tests\EndToEndTests. Como alternativa, se pueden ejecutar y depurar desde Visual Studio. A continuación se detallan:

  • Cómo usar el script de TestDriver.py.
  • Requisitos previos para usar TestDriver.py en Windows.
  • Ejecución y depuración de pruebas de un extremo a otro desde Visual Studio.

Cómo usar el script de TestDriver.py.

Inicie un shell (shell de CygWin Bash en Windows) y cambie el directorio a la carpeta Tests\EndToEndTests del repositorio de CNTK local (nota: c:\src\CNTK en CygWin es /cygdrive/c/src/CNTK/). Comience con uno de los siguientes comandos para conocer el uso y las opciones de TestDriver:

python TestDriver.py -h

python TestDriver.py run -h

python TestDriver.py list -h

Para enumerar todas las pruebas de un extremo a otro disponibles, ejecute

python TestDriver.py list

Para ejecutar una sola prueba, por ejemplo Image/QuickE2E, ejecute

python TestDriver.py run Image/QuickE2E

Puede agregar por ejemplo "-d gpu" para ejecutar solo la prueba mediante una GPU o "-f debug" para ejecutar solo la prueba mediante la compilación de depuración. Consulte python TestDriver.py run -h para ver todas las opciones.

Para ejecutar todas las pruebas desde las compilaciones nocturnas, ejecute

python TestDriver.py run -t nightly

Requisitos previos para usar TestDriver.py en Windows.

  1. Instale Anaconda Python 2.7 (no 3.5) desde aquí: https://www.continuum.io/downloads que contiene la mayoría de los paquetes de Python más populares. Como alternativa, instale Python 2.7 https://www.python.org/downloads/ e instale los paquetes adicionales necesarios según se le solicite.

  2. Instale CygWin desde Durante la http://cygwin.com/install.html instalación, seleccione "Instalar desde Internet" (selección predeterminada). IMPORTANTE: En la pantalla Seleccionar paquetes, escriba "yaml" en el campo de búsqueda y expanda la sección Python. Seleccione "python2-yaml: Enlaces YAML de Lib de Python" (NO "python3-yaml"). Del mismo modo, escriba "python2-setuptools" en el campo de búsqueda, expanda la sección Python y seleccione "python2-setuptools" para la instalación. A continuación, finalice la instalación.

  3. Asegúrese de que tiene Microsoft MPI instalado (debe haber una variable de entorno denominada MSMPI_BIN. Para esto debe descargar y ejecutar el exe y no el msi)

  4. Inicie un shell de Cygwin Bash.

  5. Ejecute "easy_install-2.7 pip"

  6. Ejecución de "pip install six"

Nota: Algunas pruebas requieren una variable de entorno denominada CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY que apunte a dónde residen los datos. Si los datos externos no están disponibles, se omitirán esas pruebas.

Cómo ejecutar y depurar pruebas de un extremo a otro desde Visual Studio.

Puede generar los argumentos de comando de depuración Visual Studio mediante las -n opciones de TestDriver para una prueba de un extremo a otro específico:

python TestDriver.py run -n Image/QuickE2E

En la salida del comando anterior, basta con copiar los argumentos del comando de depuración de VS en los argumentos de comando del proyecto de CNTK en Visual Studio (haga clic con el botón derecho en CNTK proyecto -> Propiedades de configuración ->> Depuración -> Argumentos de comando). Inicie la depuración del proyecto de CNTK.