Bagikan melalui


DataOperationsCatalog.LoadFromEnumerable Metode

Definisi

Overload

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

Buat yang baru IDataView melalui enumerasi item jenis yang ditentukan pengguna. Pengguna mempertahankan kepemilikan dan data tampilan data yang dihasilkan tidak akan pernah mengubah konten data. Karena IDataView diasumsikan data tidak dapat diubah, pengguna diharapkan untuk mendukung beberapa enumerasi yang akan mengembalikan hasil yang sama, kecuali pengguna tahu bahwa data hanya akan dikursor sekali.

Salah satu penggunaan umum untuk tampilan data streaming adalah: membuat tampilan data yang dengan malas memuat data sesuai kebutuhan, lalu menerapkan transformasi yang telah dilatih sebelumnya ke dalamnya dan kursor melaluinya untuk hasil transformasi.

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

Buat item baru IDataView yang dapat dijumlahkan dari jenis yang ditentukan pengguna menggunakan yang disediakan DataViewSchema, yang mungkin berisi informasi lebih lanjut tentang skema daripada yang dapat diambil jenisnya.

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

Buat yang baru IDataView melalui enumerasi item jenis yang ditentukan pengguna. Pengguna mempertahankan kepemilikan dan data tampilan data yang dihasilkan tidak akan pernah mengubah konten data. Karena IDataView diasumsikan data tidak dapat diubah, pengguna diharapkan untuk mendukung beberapa enumerasi yang akan mengembalikan hasil yang sama, kecuali pengguna tahu bahwa data hanya akan dikursor sekali.

Salah satu penggunaan umum untuk tampilan data streaming adalah: membuat tampilan data yang dengan malas memuat data sesuai kebutuhan, lalu menerapkan transformasi yang telah dilatih sebelumnya ke dalamnya dan kursor melaluinya untuk hasil transformasi.

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

Jenis parameter

TRow

Jenis item yang ditentukan pengguna.

Parameter

data
IEnumerable<TRow>

Data yang dapat dijumlahkan yang berisi jenis TRow untuk dikonversi ke IDataView.

schemaDefinition
SchemaDefinition

Definisi skema opsional dari tampilan data yang akan dibuat. Jika null, definisi skema disimpulkan dari TRow.

Mengembalikan

Yang dibangun IDataView.

Contoh

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; }
    }
}

Berlaku untuk

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

Buat item baru IDataView yang dapat dijumlahkan dari jenis yang ditentukan pengguna menggunakan yang disediakan DataViewSchema, yang mungkin berisi informasi lebih lanjut tentang skema daripada yang dapat diambil jenisnya.

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

Jenis parameter

TRow

Jenis item yang ditentukan pengguna.

Parameter

data
IEnumerable<TRow>

Data yang dapat dijumlahkan yang berisi jenis TRow untuk dikonversi ke IDataView.

schema
DataViewSchema

Skema yang dikembalikan IDataView.

Mengembalikan

Dengan IDataView yang diberikan schema.

Keterangan

Pengguna mempertahankan kepemilikan dan data tampilan data yang dihasilkan tidak akan pernah mengubah konten data. Karena IDataView diasumsikan data tidak dapat diubah, pengguna diharapkan untuk mendukung beberapa enumerasi yang akan mengembalikan hasil yang sama, kecuali pengguna tahu bahwa data hanya akan dikursor sekali. Salah satu penggunaan umum untuk tampilan data streaming adalah: membuat tampilan data yang dengan malas memuat data sesuai kebutuhan, lalu menerapkan transformasi yang telah dilatih sebelumnya ke dalamnya dan kursor melaluinya untuk hasil transformasi. Salah satu penggunaan praktis dari ini adalah menyediakan nama kolom fitur melalui DataViewSchema.Annotations.

Berlaku untuk