Поделиться через


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

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

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

Устройство можно выбрать при создании сеанса. Это должно быть одно из следующих устройств с типом LearningModelDeviceKind:

  • По умолчанию
    • Система самостоятельно решит, какое устройство следует использовать. Сейчас в качестве устройства по умолчанию используется ЦП.
  • ЦП
    • Будет использоваться ЦП, даже если доступны другие устройства.
  • DirectX
    • Будет использоваться устройство аппаратного ускорения DirectX, а точнее первый адаптер, полученный вызовом IDXGIFactory1:: EnumAdapters1.
  • DirectXHighPerformance
  • DirectXMinPower

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

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


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

Средства ИИ Windows позволяют использовать устройство, созданное вызывающим объектом. Это можно сделать разными способами:

  • CreateFromDirect3D11Device. Этот вариант подходит, если у вас уже есть IDirect3DDevice. Средства ИИ Windows будут использовать тот же адаптер для создания устройства d3d12 для рабочих нагрузок Машинного обучения. Это полезно, если у вас есть камера, использующая устройство d3d11 для VideoFrame, и вы хотите использовать это устройство для LearningModelSession. Во многих случаях это позволяет избежать копирования в память. Примечание. Преобразование в тензор VideoFrame — это единственная рабочая нагрузка d3d11, которая доступна в средствах ИИ Windows. Если вы не используете эту функцию, совместное использование или создание устройства d3d11 не связано с каким-либо преимуществами.
  • CreateFromD3D12CommandQueue (собственное решение). Используйте этот вариант при наличии устройства d3d12, которое вы хотите повторно использовать. Средства ИИ Windows будут использовать эту очередь команд для своих рабочих нагрузок Машинного обучения. Также будет создано устройство d3d11 с помощью D3D11On12CreateDevice. Это делается только при необходимости и будет использоваться для всех рабочих нагрузок d3d11, таких как преобразование в тензор VideoFrame. Доступ к этому новому устройству можно получить с помощью свойства 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:

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