Language

TensorflowCatalog クラス

定義

TensorFlowTransformerは、次の 2 つのシナリオで使用されます。

  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 グラフの最適化操作の名前、グラフ内の学習率操作の名前、その値、損失とパフォーマンス メトリックを計算するためのグラフ内の操作の名前など、トレーニング関連のパラメーターも必要です。

この変換では、Microsoft.ML.TensorFlow nuget をインストールする必要があります。 TensorFlowTransform には、入力、出力、データの処理、再トレーニングに関する次の前提条件があります。

  1. 入力モデルの場合、現在、TensorFlowTransform では 、固定モデル 形式と SavedModel 形式の両方がサポートされています。 ただし、モデルの再トレーニングは 、SavedModel 形式でのみ可能です。 現在、チェックポイント 形式は、スコアリングと再トレーニングのどちらもサポートされていません。これは、読み込みに対する TensorFlow C-API のサポートがないためです。
  2. 変換では、一度に 1 つの例のみをスコアリングできます。 ただし、再トレーニングはバッチで実行できます。
  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 モデルをメモリに読み込みます。 これは、モデルを 1 回読み込んでから、それを使用してスキーマのクエリを実行し、ScoreTensorFlowModel(String, String, Boolean)を使用してTensorFlowEstimatorを作成できるようにする便利なメソッドです。 この API を使用するには、TensorFlow redist に対する追加の NuGet 依存関係が必要です。詳細については、リンクされたドキュメントを参照してください。 TensorFlowModel また、Dispose() を明示的に呼び出して解放するか、"using" 構文で変数を宣言して暗黙的に解放する必要があるアンマネージ リソースへの参照も保持します。>

<format type="text/markdown"> [!include[io](~/../docs/samples/docs/api-reference/tensorflow-usage.md)] </format>
LoadTensorFlowModel(ModelOperationsCatalog, String)

TensorFlow モデルをメモリに読み込みます。 これは、モデルを 1 回読み込んでから、それを使用してスキーマのクエリを実行し、ScoreTensorFlowModel(String, String, Boolean)を使用してTensorFlowEstimatorを作成できるようにする便利なメソッドです。 この API を使用するには、TensorFlow redist に対する追加の NuGet 依存関係が必要です。詳細については、リンクされたドキュメントを参照してください。 TensorFlowModel また、Dispose() を明示的に呼び出して解放するか、"using" 構文で変数を宣言して暗黙的に解放する必要があるアンマネージ リソースへの参照も保持します。>

<format type="text/markdown"> [!include[io](~/../docs/samples/docs/api-reference/tensorflow-usage.md)] </format>

適用対象

こちらもご覧ください