Создание сеанса

После загрузки LearningModel вы создаете LearningModelSession, который привязывает модель к устройству, используемому для выполнения и оценки модели.

Выбор устройства

При создании сеанса можно выбрать устройство. Вы выбираете устройство типа LearningModelDeviceKind:

  • По умолчанию
    • Позвольте системе решить, какое устройство следует использовать. В настоящее время устройство по умолчанию — это ЦП.
  • процессор
    • Используйте ЦП, даже если другие устройства доступны.
  • Технология DirectX
    • Используйте устройство аппаратного ускорения DirectX, в частности первый адаптер, перечисляемый IDXGIFactory1::EnumAdapters1.
  • DirectXHighPerformance (DirectXHighPerformance)
  • DirectXMinPower

Если устройство не указано, система использует default. Мы рекомендуем использовать default , чтобы получить гибкость, позволяя системе выбирать для вас в будущем.

В следующем видео подробно описаны все виды устройств.


Расширенное создание устройства

Windows AI поддерживает использование устройства, которое уже создал вызывающий объект. При этом существует несколько вариантов и рекомендаций.

  • CreateFromDirect3D11Device. Используйте это, если у вас уже есть IDirect3DDevice. Windows AI будет использовать тот же адаптер для создания устройства d3d12 для задач машинного обучения. Это полезно, если у вас есть камера, которая использует устройство d3d11 для видеокадров, и вы хотите использовать это же устройство для сеанса LearningModel. Во многих случаях это может избежать копирования памяти. Примечание: Тензоризация видеофрейма — это единственная вычислительная задача Windows AI для d3d11. Если вы не используете эту функцию, нет преимуществ для совместного использования или создания устройства d3d11.
  • CreateFromD3D12CommandQueue (родной). Используйте это, если у вас есть устройство d3d12, которое требуется повторно использовать. Windows AI будет использовать такую очередь команд для рабочих нагрузок машинного обучения. Он также создаст устройство d3d11 с помощью D3D11On12CreateDevice. Это делается только при необходимости и будет использоваться для всех рабочих нагрузок d3d11, таких как тензоризация видеофреймов. Вы можете получить доступ к этому новому устройству с помощью свойства LearningModelDevice.Direct3D11Device.

Пример

В следующем примере показано, как создать сеанс на основе модели и устройства:

private void CreateSession(LearningModel model, LearningModelDeviceKind kind)
{
    // Create the evaluation session with the model and device
    LearningModelSession session =
        new LearningModelSession(model, new LearningModelDevice(kind));
}

См. также

Замечание

Используйте следующие ресурсы, чтобы получить помощь по Windows ML.

  • Чтобы задать технические вопросы о машинном обучении в Windows или ответить на них, используйте тег windows-machine-learning в Stack Overflow.
  • Чтобы сообщить об ошибке, отправьте сообщение о проблеме на сайте GitHub.