TensorFlowEstimator Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Используется TensorFlowTransformer в следующих двух сценариях.
- Оценка с предварительно обученной моделью TensorFlow . В этом режиме преобразование извлекает значения скрытых слоев из предварительно обученной модели Tensorflow и использует выходные данные в качестве признаков в конвейере ML.Net.
- Переобучение модели TensorFlow . В этом режиме преобразование переобучение модели TensorFlow с помощью пользовательских данных, передаваемых через конвейер ML.Net. После обучения модели выходные данные можно использовать в качестве функций для оценки.
public sealed class TensorFlowEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TensorFlowTransformer>
type TensorFlowEstimator = class
interface IEstimator<TensorFlowTransformer>
Public NotInheritable Class TensorFlowEstimator
Implements IEstimator(Of TensorFlowTransformer)
- Наследование
-
TensorFlowEstimator
- Реализации
Комментарии
TensorFlowTransform извлекает указанные выходные данные с помощью предварительно обученной модели Tensorflow . При необходимости он может дополнительно переобучить модель TensorFlow для пользовательских данных для настройки параметров модели для пользовательских данных (также известного как Transfer Learning).
Для оценки преобразование принимает в качестве входных данных предварительно обученную модель Tensorflow, имена входных узлов и имена выходных узлов, значения которых требуется извлечь. Для повторного обучения преобразованию также требуются связанные с обучением параметры, такие как имена операций оптимизации в графе TensorFlow, имя операции скорости обучения в графе и его значение, имя операций в графе для вычисления потери и метрики производительности и т. д.
Для этого преобразования требуется установить nuget Microsoft.ML.TensorFlow . TensorFlowTransform имеет следующие предположения относительно входных, выходных данных, обработки данных и переобучения.
- Для входной модели в настоящее время TensorFlowTransform поддерживает как формат замороженных моделей , так и формат SavedModel . Однако повторное обучение модели возможно только для формата SavedModel . Формат контрольных точек в настоящее время не поддерживается ни для оценки, ни для повторного обучения из-за отсутствия поддержки TensorFlow C-API для загрузки.
- Преобразование поддерживает оценку только одного примера за раз. Однако повторное обучение может выполняться в пакетах.
- Сценарии расширенной передачи обучения и тонкой настройки (например, добавление дополнительных слоев в сеть, изменение формы входных данных, замораживание слоев, которые не нужно обновлять во время повторного обучения и т. д.), в настоящее время невозможно из-за отсутствия поддержки операций с сетью или графом в модели с помощью TensorFlow C-API.
- Имя входных столбцов должно совпадать с именем входных данных в модели TensorFlow.
- Имя каждого выходного столбца должно соответствовать одной из операций в графе TensorFlow.
- В настоящее время double, float, long, int, short, sbyte, ulong, uint, ushort, byte и bool являются допустимыми типами данных для ввода и вывода.
- После успешного выполнения преобразование вводит новый столбец в IDataView соответствии с каждым указанным выходным столбцом.
Входные и выходные данные модели TensorFlow можно получить с помощью GetModelSchema() средств или summarize_graph .
Методы
Fit(IDataView) |
Тренирует и возвращает .TensorFlowTransformer |
GetOutputSchema(SchemaShape) |
Возвращает схему SchemaShape , которая будет производиться преобразователем. Используется для распространения и проверки схемы в конвейере. |
Методы расширения
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Добавьте "контрольную точку кэширования" в цепочку оценщика. Это гарантирует, что подчиненные оценщики будут обучены на основе кэшированных данных. Рекомендуется использовать контрольную точку кэширования перед обучением, которые принимают несколько данных. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Учитывая оценщик, верните объект-оболочку, который будет вызывать делегат один раз Fit(IDataView) . Часто важно, чтобы оценщик возвращал сведения о том, что было положено, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако в то же время часто IEstimator<TTransformer> формируются в конвейеры со многими объектами, поэтому нам может потребоваться создать цепочку оценщиков, где EstimatorChain<TLastTransformer> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия. |