Editar

Compartir a través de


Preguntas más frecuentes (Preguntas más frecuentes)

Esta página contiene respuestas a las preguntas más populares de la comunidad sobre Windows ML.

¿Cómo sé si el modelo ONNX que tengo se ejecutará con Windows ML?

La manera más fácil de comprobar si el modelo se ejecutará con Windows ML es mediante la herramienta Ejecutor de modelos winML. Como alternativa, puedes comprobar versiones de ONNX y compilaciones de Windows para obtener más información sobre todas las versiones de ONNX compatibles para una versión de Windows determinada.

¿Cómo puedo convertir un modelo de un formato diferente a ONNX?

Puede usar WinMLTools para convertir modelos de varios formatos diferentes, como Apple CoreML y scikit-learn, a ONNX.

Recibo errores al intentar exportar o convertir mi modelo en ONNX que dicen que mi modelo tiene "operadores no admitidos". ¿Qué debo hacer?

Es posible que algunos operadores del marco de entrenamiento nativo no sean compatibles actualmente con una versión de ONNX. En primer lugar, se recomienda comprobar las versiones de ONNX admitidas para la compilación de Windows de destinoe intentar convertir el modelo a la versión máxima admitida. Las versiones posteriores de ONNX incluyen compatibilidad con un conjunto mayor de operadores en comparación con versiones anteriores.

Si sigue teniendo problemas, se recomienda trabajar con el equipo de ciencia de datos para intentar evitar los operadores no admitidos. Uno de los enfoques que se recomienda es cambiar la arquitectura del modelo en el marco de origen e intentar convertir o exportar el modelo a la versión de ONNX de destino. Tenga en cuenta que aún no es necesario volver a entrenar el modelo; puede intentar convertir la arquitectura y, si se ejecuta correctamente, puede continuar con el reentrenamiento completo del modelo.

¿Por qué no puedo cargar un modelo?

Hay varias razones por las que podrías tener problemas para cargar un modelo, pero uno de los más comunes al desarrollar en UWP se debe a restricciones de acceso a archivos. De forma predeterminada, las aplicaciones para UWP solo pueden acceder a determinadas partes del sistema de archivos y requieren permiso de usuario o funcionalidades adicionales para acceder a otras ubicaciones. Consulte permisos de acceso a archivos para obtener más información.

¿Qué versión de WinMLTools debo usar?

Siempre se recomienda descargar e instalar la versión más reciente del paquete winmltools . Esto garantizará que puede crear modelos ONNX que tienen como destino las versiones más recientes de Windows.

¿Puedo usar onnxmltools en lugar de winmltools?

Sí, puede, pero deberá asegurarse de instalar la versión correcta de onnxmltools para tener como destino ONNX v1.2.2, que es la versión mínima de ONNX compatible con Windows ML. Si no está seguro de qué versión instalar, se recomienda instalar la versión más reciente de winmltools en su lugar. Esto garantizará que pueda tener como destino la versión de ONNX compatible con Windows.

¿Qué versión de Visual Studio debo usar para obtener la generación automática de código (mlgen)?

La versión mínima recomendada de visual Studio compatible con mlgen es 15.8.7. En Windows 10, versión 1903 y posteriores, mlgen ya no se incluye en el SDK, por lo que tendrás que descargar e instalar la extensión. Hay uno para de Visual Studio 2017 y otro para Visual Studio 2019.

Obtengo un mensaje de error al intentar ejecutar mlgen y no se genera ningún código. ¿Qué podría estar sucediendo?

Los dos errores más comunes al intentar ejecutar mlgen son:

  • Falta el atributo obligatorio "consumed_inputs": si se encuentra con este mensaje de error, lo más probable es que esté intentando ejecutar un modelo ONNX v1.2 con una versión del SDK de Windows 10 anterior a 17763; se recomienda comprobar la versión del SDK y actualizarla a la versión 17763 o posterior.
  • error de tipo: el tipo (map(string,tensor(float))) del argumento de salida (pérdida) del nodo (ZipMap) no coincide con el tipo esperado...: si se produce este error, lo más probable es que el modelo ONNX sea una versión anterior a la aceptada por WinML a partir de la compilación 17763. Se recomienda actualizar el paquete del convertidor a la versión más reciente disponible y volver a convertir el modelo a la versión 1.2 de ONNX.

¿En qué se ejecuta WinML de forma predeterminada?

Si no especifica un dispositivo en el que ejecutarse con LearningModelDeviceKind, o si usa LearningModelDeviceKind.Default, el sistema decidirá qué dispositivo evaluará el modelo. Normalmente es la CPU. Para que WinML se ejecute en la GPU, especifique uno de los siguientes valores al crear el LearningModelDevice:

  • learningModelDeviceKind.DirectX
  • LearningModelDeviceKind.DirectXHighPerformance
  • LearningModelDeviceKind.DirectXMinPower

Nota

Use los siguientes recursos para obtener ayuda con Windows ML:

  • Para formular o responder preguntas técnicas sobre Windows ML, use la etiqueta windows-machine-learning en Stack Overflow.
  • Para notificar un error, envíe un problema en nuestra GitHub.