DataOperationsCatalog.LoadFromEnumerable Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
LoadFromEnumerable<TRow>(IEnumerable<TRow>, SchemaDefinition) |
Vytvořte novou IDataView v výčtu položek uživatelem definovaného typu.
Uživatel udržuje vlastnictví Jedním z typických použití pro zobrazení streamovaných dat může být: vytvořte zobrazení dat, které podle potřeby lazily načítá data, a pak na ně použijte předem vytrénované transformace a kurzorem pro výsledky transformace. |
LoadFromEnumerable<TRow>(IEnumerable<TRow>, DataViewSchema) |
Vytvořte nový IDataView výčet položek uživatelem definovaného typu pomocí zadaného DataViewSchematypu, který může obsahovat více informací o schématu, než může typ zachytit. |
LoadFromEnumerable<TRow>(IEnumerable<TRow>, SchemaDefinition)
Vytvořte novou IDataView v výčtu položek uživatelem definovaného typu.
Uživatel udržuje vlastnictví data
a výsledné zobrazení dat nikdy nezmění obsah souboru data
.
Vzhledem k tomu IDataView , že se předpokládá, že je neměnný, očekává se, že uživatel bude podporovat více výčtů data
, které by vrátily stejné výsledky, pokud uživatel neví, že data budou kurzorem pouze jednou.
Jedním z typických použití pro zobrazení streamovaných dat může být: vytvořte zobrazení dat, které podle potřeby lazily načítá data, a pak na ně použijte předem vytrénované transformace a kurzorem pro výsledky transformace.
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
Parametry typu
- TRow
Typ položky definované uživatelem.
Parametry
- data
- IEnumerable<TRow>
Výčty dat obsahující typ TRow
, který se má převést na IDataView.
- schemaDefinition
- SchemaDefinition
Volitelná definice schématu zobrazení dat, která se má vytvořit. Pokud null
je definice schématu odvozena z TRow
.
Návraty
Postaveno IDataView.
Příklady
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; }
}
}
Platí pro
LoadFromEnumerable<TRow>(IEnumerable<TRow>, DataViewSchema)
Vytvořte nový IDataView výčet položek uživatelem definovaného typu pomocí zadaného DataViewSchematypu, který může obsahovat více informací o schématu, než může typ zachytit.
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
Parametry typu
- TRow
Typ položky definované uživatelem.
Parametry
- data
- IEnumerable<TRow>
Výčty dat obsahující typ TRow
, který se má převést na IDataView.
- schema
- DataViewSchema
Schéma vráceného IDataViewsouboru .
Návraty
A IDataView s danou schema
.
Poznámky
Uživatel udržuje vlastnictví data
a výsledné zobrazení dat nikdy nezmění obsah souboru data
. Vzhledem k tomu IDataView , že se předpokládá, že je neměnný, očekává se, že uživatel bude podporovat více výčtů data
, které by vrátily stejné výsledky, pokud uživatel neví, že data budou kurzorem pouze jednou. Jedním z typických použití pro zobrazení streamovaných dat může být: vytvořte zobrazení dat, které podle potřeby lazily načítá data, a pak na ně použijte předem vytrénované transformace a kurzorem pro výsledky transformace. Jedním z praktických použití by bylo zadat názvy sloupců funkcí prostřednictvím DataViewSchema.Annotations.