Introducción a Windows Machine Learning

Existen varias maneras de usar Windows Machine Learning en la aplicación. En el núcleo, solo necesita realizar un par de pasos sencillos.

  1. Obtenga un modelo entrenado de Open Neural Network Exchange (ONNX) o convierta modelos entrenados de otras plataformas de aprendizaje automático en ONNX con ONNXMLTools.

  2. Agregue el archivo del modelo de ONNX a la aplicación o haga que esté disponible de alguna otra forma en el dispositivo de destino.

  3. Integre el modelo en el código de la aplicación y, a continuación, compile e implemente la aplicación.

Training environment, add model reference, application, Windows ML

Soluciones de WinML integradas y en NuGet

En la tabla siguiente se resaltan los aspectos de disponibilidad, distribución, compatibilidad con lenguajes, entrega y compatibilidad con versiones posteriores de Windows ML integrado y en paquete de NuGet.

Propiedades Integrado NuGet
Disponibilidad Windows 10 versión 1809 o posterior Windows 8.1 o superior
Distribución Integrado en Windows SDK Paquete distribuido como parte de la aplicación
Mantenimiento Controlado por Microsoft (los clientes se benefician automáticamente) Controlado por el desarrollador
Compatibilidad con versiones posteriores Se pone al día automáticamente con las nuevas características El desarrollador necesita actualizar el paquete manualmente

Cuando se ejecuta la aplicación con la solución integrada, el entorno en tiempo de ejecución de Windows ML (que contiene el motor de inferencias del modelo de ONNX) evalúa el modelo entrenado en el dispositivo con Windows 10 (o Windows Server 2019 si el destino es una implementación de servidores). Windows ML administra la abstracción del hardware, lo que permite a los desarrolladores tener como destino una amplia gama de placas, como CPU, GPU y, próximamente, aceleradores de IA. La aceleración de hardware de Windows ML se realiza sobre DirectML, una API de alto rendimiento y bajo nivel que ejecuta inferencias de aprendizaje automático que forman parte de la familia de DirectX.

windows ml layers

windows ml nuget package

En el caso del paquete de NuGet, estas capas aparecen como los archivos binarios que se muestran en el diagrama siguiente. Windows ML está integrado en Microsoft.ai.machinelearning.dll. No contiene ningún entorno en tiempo de ejecución de ONNX integrado, sino que el entorno en tiempo de ejecución de ONNX se integra en el archivo: onnxruntime.dll. La versión incluida en los paquetes de NuGet de WindowsAI contiene un elemento DirectML EP integrado. El archivo binario final, DirectML.dll, es el código de plataforma real como DirectML y se basa en los controladores de proceso y Direct 3D integrados en Windows. Los tres archivos binarios se incluyen en las versiones de NuGet para que puedas distribuirlos junto con tus aplicaciones.

El acceso directo a onnxruntime.dll también te permite establecer como destino escenarios multiplataforma mientras se obtiene la misma aceleración independiente del hardware que se escala en todos los dispositivos Windows.

Otras soluciones de aprendizaje automático de Microsoft

Microsoft ofrece una variedad de soluciones de aprendizaje automático que se adaptan a sus necesidades. Estas soluciones se ejecutan en la nube, en entorno local y localmente en el dispositivo. Consulte ¿Cuáles son los productos de aprendizaje automático de Microsoft? para más información.

Saber más

Si quiere usar el paquete de NuGet de Windows ML, consulte Tutorial:portabilidad de una aplicación de WinML existente a un paquete de NuGet.

Para conocer las características y correcciones más recientes de Windows ML, consulte nuestras notas de la versión.

Nota:

Use los siguientes recursos para obtener ayuda con Windows ML:

  • Para formular o responder a preguntas técnicas sobre Windows Machine Learning, utilice la etiqueta windows-machine-learning en Stack Overflow.
  • Para notificar un error, registre un problema en GitHub.