Share via


DataOperationsCatalog.LoadFromEnumerable Méthode

Définition

Surcharges

LoadFromEnumerable<TRow>(IEnumerable<TRow>, SchemaDefinition)

Créez un nouveau IDataView sur un énumérable des éléments du type défini par l’utilisateur. L’utilisateur conserve la propriété de la data vue de données obtenue et ne modifie jamais le contenu du data. Étant donné IDataView qu’il est supposé être immuable, l’utilisateur est censé prendre en charge plusieurs énumérations du data résultat qui retournerait les mêmes résultats, sauf si l’utilisateur sait que les données ne seront curseurées qu’une seule fois.

L’une des utilisations courantes pour la vue de données de streaming peut être : créez la vue de données qui charge de manière différée les données en fonction des besoins, puis appliquez des transformations préentraînées à celui-ci et effectuez un curseur pour les résultats de la transformation.

LoadFromEnumerable<TRow>(IEnumerable<TRow>, DataViewSchema)

Créez un nouveau IDataView sur un énumérable des éléments du type défini par l’utilisateur à l’aide du type fourni DataViewSchema, qui peut contenir plus d’informations sur le schéma que le type peut capturer.

LoadFromEnumerable<TRow>(IEnumerable<TRow>, SchemaDefinition)

Créez un nouveau IDataView sur un énumérable des éléments du type défini par l’utilisateur. L’utilisateur conserve la propriété de la data vue de données obtenue et ne modifie jamais le contenu du data. Étant donné IDataView qu’il est supposé être immuable, l’utilisateur est censé prendre en charge plusieurs énumérations du data résultat qui retournerait les mêmes résultats, sauf si l’utilisateur sait que les données ne seront curseurées qu’une seule fois.

L’une des utilisations courantes pour la vue de données de streaming peut être : créez la vue de données qui charge de manière différée les données en fonction des besoins, puis appliquez des transformations préentraînées à celui-ci et effectuez un curseur pour les résultats de la transformation.

public Microsoft.ML.IDataView LoadFromEnumerable<TRow> (System.Collections.Generic.IEnumerable<TRow> data, Microsoft.ML.Data.SchemaDefinition schemaDefinition = default) where TRow : class;
member this.LoadFromEnumerable : seq<'Row (requires 'Row : null)> * Microsoft.ML.Data.SchemaDefinition -> Microsoft.ML.IDataView (requires 'Row : null)
Public Function LoadFromEnumerable(Of TRow As Class) (data As IEnumerable(Of TRow), Optional schemaDefinition As SchemaDefinition = Nothing) As IDataView

Paramètres de type

TRow

Type d’élément défini par l’utilisateur.

Paramètres

data
IEnumerable<TRow>

Données énumérables contenant le type TRow à convertir en .IDataView

schemaDefinition
SchemaDefinition

Définition de schéma facultative de la vue de données à créer. Si null, la définition de schéma est déduite de TRow.

Retours

IDataViewConstruit .

Exemples

using System;
using System.Collections.Generic;
using Microsoft.ML;
using Microsoft.ML.Data;

namespace Samples.Dynamic
{
    public static class LoadFromEnumerable
    {
        // Creating IDataView from IEnumerable, and setting the size of the vector
        // at runtime. When the data model is defined through types, setting the
        // size of the vector is done through the VectorType annotation. When the
        // size of the data is not known at compile time, the Schema can be directly
        // modified at runtime and the size of the vector set there. This is
        // important, because most of the ML.NET trainers require the Features
        // vector to be of known size. 
        public static void Example()
        {
            // Create a new context for ML.NET operations. It can be used for
            // exception tracking and logging, as a catalog of available operations
            // and as the source of randomness.
            var mlContext = new MLContext();

            // Get a small dataset as an IEnumerable.
            IEnumerable<DataPointVector> enumerableKnownSize = new DataPointVector[]
            {
               new DataPointVector{ Features = new float[]{ 1.2f, 3.4f, 4.5f, 3.2f,
                   7,5f } },

               new DataPointVector{ Features = new float[]{ 4.2f, 3.4f, 14.65f,
                   3.2f, 3,5f } },

               new DataPointVector{ Features = new float[]{ 1.6f, 3.5f, 4.5f, 6.2f,
                   3,5f } },

            };

            // Load dataset into an IDataView. 
            IDataView data = mlContext.Data.LoadFromEnumerable(enumerableKnownSize);
            var featureColumn = data.Schema["Features"].Type as VectorDataViewType;
            // Inspecting the schema
            Console.WriteLine($"Is the size of the Features column known: " +
                $"{featureColumn.IsKnownSize}.\nSize: {featureColumn.Size}");

            // Preview
            //
            // Is the size of the Features column known? True.
            // Size: 5.

            // If the size of the vector is unknown at compile time, it can be set 
            // at runtime.
            IEnumerable<DataPoint> enumerableUnknownSize = new DataPoint[]
            {
               new DataPoint{ Features = new float[]{ 1.2f, 3.4f, 4.5f } },
               new DataPoint{ Features = new float[]{ 4.2f, 3.4f, 1.6f } },
               new DataPoint{ Features = new float[]{ 1.6f, 3.5f, 4.5f } },
            };

            // The feature dimension (typically this will be the Count of the array 
            // of the features vector known at runtime).
            int featureDimension = 3;
            var definedSchema = SchemaDefinition.Create(typeof(DataPoint));
            featureColumn = definedSchema["Features"]
                .ColumnType as VectorDataViewType;

            Console.WriteLine($"Is the size of the Features column known: " +
                $"{featureColumn.IsKnownSize}.\nSize: {featureColumn.Size}");

            // Preview
            //
            // Is the size of the Features column known? False.
            // Size: 0.

            // Set the column type to be a known-size vector.
            var vectorItemType = ((VectorDataViewType)definedSchema[0].ColumnType)
                .ItemType;
            definedSchema[0].ColumnType = new VectorDataViewType(vectorItemType,
                featureDimension);

            // Read the data into an IDataView with the modified schema supplied in
            IDataView data2 = mlContext.Data
                .LoadFromEnumerable(enumerableUnknownSize, definedSchema);

            featureColumn = data2.Schema["Features"].Type as VectorDataViewType;
            // Inspecting the schema
            Console.WriteLine($"Is the size of the Features column known: " +
                $"{featureColumn.IsKnownSize}.\nSize: {featureColumn.Size}");

            // Preview
            //
            // Is the size of the Features column known? True. 
            // Size: 3.
        }
    }

    public class DataPoint
    {
        public float[] Features { get; set; }
    }

    public class DataPointVector
    {
        [VectorType(5)]
        public float[] Features { get; set; }
    }
}

S’applique à

LoadFromEnumerable<TRow>(IEnumerable<TRow>, DataViewSchema)

Créez un nouveau IDataView sur un énumérable des éléments du type défini par l’utilisateur à l’aide du type fourni DataViewSchema, qui peut contenir plus d’informations sur le schéma que le type peut capturer.

public Microsoft.ML.IDataView LoadFromEnumerable<TRow> (System.Collections.Generic.IEnumerable<TRow> data, Microsoft.ML.DataViewSchema schema) where TRow : class;
member this.LoadFromEnumerable : seq<'Row (requires 'Row : null)> * Microsoft.ML.DataViewSchema -> Microsoft.ML.IDataView (requires 'Row : null)
Public Function LoadFromEnumerable(Of TRow As Class) (data As IEnumerable(Of TRow), schema As DataViewSchema) As IDataView

Paramètres de type

TRow

Type d’élément défini par l’utilisateur.

Paramètres

data
IEnumerable<TRow>

Données énumérables contenant le type TRow à convertir en IDataView.

schema
DataViewSchema

Schéma du fichier retourné IDataView.

Retours

Un IDataView avec le donné schema.

Remarques

L’utilisateur conserve la propriété de la data vue de données obtenue et ne modifie jamais le contenu du data. Étant donné IDataView qu’il est supposé être immuable, l’utilisateur est censé prendre en charge plusieurs énumérations du data résultat qui retournerait les mêmes résultats, sauf si l’utilisateur sait que les données ne seront curseurées qu’une seule fois. L’une des utilisations courantes pour la vue de données de streaming peut être : créez la vue de données qui charge de manière différée les données en fonction des besoins, puis appliquez des transformations préentraînées à celui-ci et effectuez un curseur pour les résultats de la transformation. L’une des utilisations pratiques de ce serait de fournir les noms des colonnes de caractéristiques via le DataViewSchema.Annotations.

S’applique à