Esta página contiene respuestas a las preguntas más populares de la comunidad.
La manera más sencilla de comprobar si el modelo se ejecutará con Windows ML es mediante la herramienta WinML Model Runner. Como alternativa, consulta 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.
Puedes usar WinMLTools para convertir los modelos de varios formatos diferentes, como Apple CoreML y scikit-Learn, a ONNX.
Obtengo errores al intentar exportar o convertir mi modelo a ONNX, que indican que tiene "operadores no admitidos". ¿Qué debo hacer?
Es posible que una versión de ONNX actualmente no admita algunos operadores del marco de entrenamiento nativo. En primer lugar, se recomienda consultar las versiones de ONNX compatibles con tu compilación de Windows de destino e intentar convertir el modelo a la versión máxima admitida. Las versiones posteriores de ONNX incluyen compatibilidad con un conjunto de operadores mayor en comparación con las versiones anteriores.
Si sigues teniendo problemas, te recomendamos que trabajes con el equipo de ciencia de datos para probar y evitar los operadores no admitidos. Uno de los enfoques que recomendamos 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 no es necesario volver a entrenar el modelo todavía; puede intentar convertir la arquitectura y, si lo consigue, puede volver a entrenar el modelo completamente.
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 las restricciones de acceso a archivos. De forma predeterminada, las aplicaciones para UWP solo pueden acceder a determinadas partes del sistema de archivos y requieren permisos de usuario o funcionalidades adicionales para poder acceder a otras ubicaciones. Para más información, consulta Permisos de acceso a archivos.
Siempre se recomienda descargar e instalar la versión más reciente del paquete winmltools. Así te asegurarás de que puedes crear modelos de ONNX para las versiones más recientes de Windows.
Sí, pero tendrás que asegurarse de instalar la versión correcta de onnxmltools para ONNX v1.2.2, que es la versión de ONNX mínima compatible con Windows ML. Si no estás seguro de la versión que debes instalar, te recomendamos que instales la versión más reciente de winmltools en su lugar. Así te asegurarás de usar la versión de ONNX compatible con Windows.
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, de modo que deberás descargar e instalar la extensión. Hay una para Visual Studio 2017 y otra para Visual Studio 2019.
Aparece un mensaje de error al intentar ejecutar mlgen y no se genera ningún código. ¿Qué puede estar ocurriendo?
Los dos errores más comunes al intentar ejecutar mlgen son:
- Required attribute "consumed_inputs" is missing (Falta el atributo obligatorio "consumed_inputs"): si aparece este mensaje de error, lo más probable es que esté intentando ejecutar un modelo de ONNX v1.2 con una versión del SDK de Windows 10 anterior a la 17763; se recomienda comprobar la versión del SDK y actualizarla a la versión 17763 o posterior.
- Type Error: Type (map(string,tensor(float))) of output arg (loss) of node (ZipMap) does not match the expected type... (Error de tipo: El tipo (map(string,tensor(float))) del argumento de salida (loss) del nodo (ZipMap) no coincide con el tipo esperado...): si experimenta este error, lo más probable es que el modelo de ONNX sea de una versión anterior a la que aceptó WinML a partir de la compilación 17763. Se recomienda actualizar el paquete del convertidor a la última versión disponible y volver a convertir el modelo a la versión 1.2 de ONNX.
Si no especificas un dispositivo para la ejecución con LearningModelDeviceKind o usas LearningModelDeviceKind.Default, el sistema decidirá qué dispositivo evaluará el modelo. Suele ser la CPU. Para que WinML se ejecute en la GPU, especifica uno de los siguientes valores al crear la instancia de LearningModelDevice:
- LearningModelDeviceKind.DirectX
- LearningModelDeviceKind.DirectXHighPerformance
- LearningModelDeviceKind.DirectXMinPower
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.