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


TensorflowCatalog Класс

Определение

Используется TensorFlowTransformer в следующих двух сценариях.

  1. Оценка с предварительно обученной моделью TensorFlow . В этом режиме преобразование извлекает значения скрытых слоев из предварительно обученной модели Tensorflow и использует выходные данные в качестве признаков в конвейере ML.Net.
  2. Переобучение модели TensorFlow . В этом режиме преобразование переобучение модели TensorFlow с помощью пользовательских данных, передаваемых через конвейер ML.Net. После обучения модели выходные данные можно использовать в качестве функций для оценки.
public static class TensorflowCatalog
type TensorflowCatalog = class
Public Module TensorflowCatalog
Наследование
TensorflowCatalog

Комментарии

TensorFlowTransform извлекает указанные выходные данные с помощью предварительно обученной модели Tensorflow . При необходимости он может дополнительно переобучить модель TensorFlow для пользовательских данных для настройки параметров модели для пользовательских данных (также известного как Transfer Learning).

Для оценки преобразование принимает в качестве входных данных предварительно обученную модель Tensorflow, имена входных узлов и имена выходных узлов, значения которых требуется извлечь. Для повторного обучения преобразованию также требуются связанные с обучением параметры, такие как имена операций оптимизации в графе TensorFlow, имя операции скорости обучения в графе и его значение, имя операций в графе для вычисления потери и метрики производительности и т. д.

Для этого преобразования требуется установить nuget Microsoft.ML.TensorFlow . TensorFlowTransform имеет следующие предположения относительно входных, выходных данных, обработки данных и переобучения.

  1. Для входной модели в настоящее время TensorFlowTransform поддерживает как формат замороженных моделей , так и формат SavedModel . Однако повторное обучение модели возможно только для формата SavedModel . Формат контрольных точек в настоящее время не поддерживается ни для оценки, ни для повторного обучения из-за отсутствия поддержки TensorFlow C-API для загрузки.
  2. Преобразование поддерживает оценку только одного примера за раз. Однако повторное обучение может выполняться в пакетах.
  3. Сценарии расширенной передачи обучения и тонкой настройки (например, добавление дополнительных слоев в сеть, изменение формы входных данных, замораживание слоев, которые не нужно обновлять во время повторного обучения и т. д.), в настоящее время невозможно из-за отсутствия поддержки операций с сетью или графом в модели с помощью TensorFlow C-API.
  4. Имя входных столбцов должно совпадать с именем входных данных в модели TensorFlow.
  5. Имя каждого выходного столбца должно соответствовать одной из операций в графе TensorFlow.
  6. В настоящее время double, float, long, int, short, sbyte, ulong, uint, ushort, byte и bool являются допустимыми типами данных для ввода и вывода.
  7. После успешного выполнения преобразование вводит новый столбец в IDataView соответствии с каждым указанным выходным столбцом.

Входные и выходные данные модели TensorFlow можно получить с помощью GetModelSchema() средств или summarize_graph .

Методы

LoadTensorFlowModel(ModelOperationsCatalog, String, Boolean)

Загрузите модель TensorFlow в память. Это удобный метод, позволяющий загрузить модель один раз и впоследствии использовать ее для запроса схемы и создания TensorFlowEstimator использования ScoreTensorFlowModel(String, String, Boolean). Для использования этого API требуются дополнительные зависимости NuGet от redist TensorFlow. Дополнительные сведения см. в связанном документе. TensorFlowModel также содержит ссылки на неуправляемые ресурсы, которые необходимо освободить с помощью явного вызова Dispose() или неявно путем объявления переменной с синтаксисом using/>

LoadTensorFlowModel(ModelOperationsCatalog, String)

Загрузите модель TensorFlow в память. Это удобный метод, позволяющий загрузить модель один раз и впоследствии использовать ее для запроса схемы и создания TensorFlowEstimator использования ScoreTensorFlowModel(String, String, Boolean). Для использования этого API требуются дополнительные зависимости NuGet от redist TensorFlow. Дополнительные сведения см. в связанном документе. TensorFlowModel также содержит ссылки на неуправляемые ресурсы, которые необходимо освободить с помощью явного вызова Dispose() или неявно путем объявления переменной с синтаксисом using/>

Применяется к

См. также раздел