FileDataset Klas
Vertegenwoordigt een verzameling bestandsverwijzingen in gegevensarchieven of openbare URL's voor gebruik in Azure Machine Learning.
Een FileDataset definieert een reeks vertraagd geëvalueerde, onveranderbare bewerkingen voor het laden van gegevens uit de gegevensbron in bestandsstromen. Gegevens worden pas vanuit de bron geladen als FileDataset wordt gevraagd om gegevens te leveren.
Een FileDataset wordt gemaakt met behulp van de from_files methode van de klasse FileDatasetFactory.
Zie het artikel Gegevenssets toevoegen & registreren voor meer informatie. Zie https://aka.ms/filedataset-samplenotebookom aan de slag te gaan met een bestandsgegevensset.
Initialiseer het FileDataset-object.
Deze constructor mag niet rechtstreeks worden aangeroepen. De gegevensset is bedoeld om te worden gemaakt met behulp van FileDatasetFactory klasse.
- Overname
-
FileDataset
Constructor
FileDataset()
Opmerkingen
FileDataset kan worden gebruikt als invoer van een experimentuitvoering. Het kan ook worden geregistreerd bij de werkruimte met een opgegeven naam en later met die naam worden opgehaald.
FileDataset kan worden gesubseteerd door verschillende methoden voor subsetting aan te roepen die beschikbaar zijn voor deze klasse. Het resultaat van subseting is altijd een nieuwe FileDataset.
De werkelijke gegevens worden geladen wanneer FileDataset wordt gevraagd om de gegevens in een ander opslagmechanisme te leveren (bijvoorbeeld bestanden die zijn gedownload of gekoppeld aan een lokaal pad).
Methoden
as_cache |
Notitie Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie. Maak een DatacacheConsumptionConfig die is toegewezen aan een datacache_store en een gegevensset. |
as_download |
Maak een DatasetConsumptionConfig met de modus die is ingesteld om te downloaden. In de verzonden uitvoering worden bestanden in de gegevensset gedownload naar het lokale pad op het rekendoel. De downloadlocatie kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.
|
as_hdfs |
Stel de modus in op hdfs. In de verzonden synapse-uitvoering worden bestanden in de gegevenssets geconverteerd naar een lokaal pad op het rekendoel. Het pad hdfs kan worden opgehaald uit argumentwaarden en de omgevingsvariabelen van het besturingssysteem.
|
as_mount |
Maak een DatasetConsumptionConfig met de modus ingesteld op koppelen. In de verzonden uitvoering worden bestanden in de gegevenssets gekoppeld aan het lokale pad op het rekendoel. Het koppelpunt kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.
|
download |
Download bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden. |
file_metadata |
Notitie Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie. Haal expressie voor metagegevens van bestand op door de naam van de metagegevenskolom op te geven. Ondersteunde kolommen met metagegevens van bestanden zijn Size, LastModifiedTime, CreationTime, Extension en CanSeek |
filter |
Notitie Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie. Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie. |
hydrate |
Notitie Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie. De gegevensset wordt gehydrateerd in de aangevraagde replica's die zijn opgegeven in datacache_store. |
mount |
Maak een contextbeheer voor het koppelen van bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden. |
random_split |
Splits bestandsstromen in de gegevensset willekeurig in twee delen en ongeveer op basis van het opgegeven percentage. De eerste geretourneerde gegevensset bevat ongeveer |
skip |
Sla bestandsstromen over vanaf de bovenkant van de gegevensset op basis van het opgegeven aantal. |
take |
Neem een voorbeeld van bestandsstromen boven aan de gegevensset op basis van het opgegeven aantal. |
take_sample |
Neem een willekeurige steekproef van bestandsstromen in de gegevensset, ongeveer op basis van de opgegeven waarschijnlijkheid. |
to_path |
Een lijst met bestandspaden ophalen voor elke bestandsstroom die is gedefinieerd door de gegevensset. |
as_cache
Notitie
Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.
Maak een DatacacheConsumptionConfig die is toegewezen aan een datacache_store en een gegevensset.
as_cache(datacache_store)
Parameters
Name | Description |
---|---|
datacache_store
Vereist
|
De datacachestore die moet worden gebruikt om te hydrateren. |
Retouren
Type | Description |
---|---|
Het configuratieobject dat beschrijft hoe de datacache in de uitvoering moet worden gerealiseerd. |
as_download
Maak een DatasetConsumptionConfig met de modus die is ingesteld om te downloaden.
In de verzonden uitvoering worden bestanden in de gegevensset gedownload naar het lokale pad op het rekendoel. De downloadlocatie kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.
# Given a run submitted with dataset input like this:
dataset_input = dataset.as_download()
experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))
# Following are sample codes running in context of the submitted run:
# The download location can be retrieved from argument values
import sys
download_location = sys.argv[1]
# The download location can also be retrieved from input_datasets of the run context.
from azureml.core import Run
download_location = Run.get_context().input_datasets['input_1']
as_download(path_on_compute=None)
Parameters
Name | Description |
---|---|
path_on_compute
|
Het doelpad op de berekening om de gegevens beschikbaar te maken op. Default value: None
|
Opmerkingen
Wanneer de gegevensset wordt gemaakt op basis van het pad van één bestand, is de downloadlocatie het pad van het enkele gedownloade bestand. Anders is de downloadlocatie het pad naar de bijbehorende map voor alle gedownloade bestanden.
Als path_on_compute begint met een /, wordt dit beschouwd als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de werkmap. Als u een absoluut pad hebt opgegeven, moet u ervoor zorgen dat de taak is gemachtigd om naar die map te schrijven.
as_hdfs
Stel de modus in op hdfs.
In de verzonden synapse-uitvoering worden bestanden in de gegevenssets geconverteerd naar een lokaal pad op het rekendoel. Het pad hdfs kan worden opgehaald uit argumentwaarden en de omgevingsvariabelen van het besturingssysteem.
# Given a run submitted with dataset input like this:
dataset_input = dataset.as_hdfs()
experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))
# Following are sample codes running in context of the submitted run:
# The hdfs path can be retrieved from argument values
import sys
hdfs_path = sys.argv[1]
# The hdfs path can also be retrieved from input_datasets of the run context.
import os
hdfs_path = os.environ['input_<hash>']
as_hdfs()
Opmerkingen
Wanneer de gegevensset wordt gemaakt op basis van het pad van één bestand, is het hdfs-pad het pad van het ene bestand. Anders is het pad naar hdfs het pad van de bijbehorende map voor alle gekoppelde bestanden.
as_mount
Maak een DatasetConsumptionConfig met de modus ingesteld op koppelen.
In de verzonden uitvoering worden bestanden in de gegevenssets gekoppeld aan het lokale pad op het rekendoel. Het koppelpunt kan worden opgehaald uit argumentwaarden en het input_datasets veld van de uitvoeringscontext. Er wordt automatisch een invoernaam gegenereerd. Als u een aangepaste invoernaam wilt opgeven, roept u de methode as_named_input aan.
# Given a run submitted with dataset input like this:
dataset_input = dataset.as_mount()
experiment.submit(ScriptRunConfig(source_directory, arguments=[dataset_input]))
# Following are sample codes running in context of the submitted run:
# The mount point can be retrieved from argument values
import sys
mount_point = sys.argv[1]
# The mount point can also be retrieved from input_datasets of the run context.
from azureml.core import Run
mount_point = Run.get_context().input_datasets['input_1']
as_mount(path_on_compute=None)
Parameters
Name | Description |
---|---|
path_on_compute
|
Het doelpad op de berekening om de gegevens beschikbaar te maken op. Default value: None
|
Opmerkingen
Wanneer de gegevensset wordt gemaakt op basis van het pad van één bestand, is het koppelpunt het pad van het gekoppelde bestand. Anders is het koppelpunt het pad van de bijbehorende map voor alle gekoppelde bestanden.
Als path_on_compute begint met een /, wordt dit beschouwd als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de werkmap. Als u een absoluut pad hebt opgegeven, moet u ervoor zorgen dat de taak is gemachtigd om naar die map te schrijven.
download
Download bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden.
download(target_path=None, overwrite=False, ignore_not_found=False)
Parameters
Name | Description |
---|---|
target_path
Vereist
|
De lokale map waar u de bestanden naar wilt downloaden. Indien Geen, worden de gegevens gedownload naar een tijdelijke map. |
overwrite
Vereist
|
Geeft aan of bestaande bestanden moeten worden overschreven. De standaardwaarde is False. Bestaande bestanden worden overschreven als overschrijven is ingesteld op Waar; anders wordt er een uitzondering gegenereerd. |
ignore_not_found
Vereist
|
Hiermee wordt aangegeven of het downloaden mislukt als sommige bestanden die door de gegevensset zijn verwezen, niet zijn gevonden. De standaardwaarde is False. Downloaden mislukt als het downloaden van bestanden om welke reden dan ook mislukt als ignore_not_found is ingesteld op Onwaar; anders wordt een waring geregistreerd voor niet-gevonden fouten en kan de dowload worden uitgevoerd zolang er geen andere fouttypen worden aangetroffen. |
Retouren
Type | Description |
---|---|
Retourneert een matrix met bestandspaden voor elk gedownload bestand. |
Opmerkingen
Als target_path begint met een /, wordt dit beschouwd als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de huidige werkmap.
file_metadata
Notitie
Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.
Haal expressie voor metagegevens van bestand op door de naam van de metagegevenskolom op te geven.
Ondersteunde kolommen met metagegevens van bestanden zijn Size, LastModifiedTime, CreationTime, Extension en CanSeek
file_metadata(col)
Parameters
Name | Description |
---|---|
col
Vereist
|
Naam van kolom |
Retouren
Type | Description |
---|---|
<xref:azureml.dataprep.api.expression.RecordFieldExpression>
|
Retourneert een expressie die de waarde in de opgegeven kolom ophaalt. |
filter
Notitie
Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.
Filter de gegevens en laat alleen de records over die overeenkomen met de opgegeven expressie.
filter(expression)
Parameters
Name | Description |
---|---|
expression
Vereist
|
<xref:azureml.dataprep.api.expression.Expression>
De expressie die moet worden geëvalueerd. |
Retouren
Type | Description |
---|---|
De gewijzigde gegevensset (niet geregistreerd). |
Opmerkingen
Expressies worden gestart door de gegevensset te indexeren met de naam van een kolom. Ze ondersteunen verschillende functies en operators en kunnen worden gecombineerd met behulp van logische operators. De resulterende expressie wordt lazily geëvalueerd voor elke record wanneer een gegevens pull plaatsvindt en niet waar deze is gedefinieerd.
(dataset.file_metadata('Size') > 10000) & (dataset.file_metadata('CanSeek') == True)
dataset.file_metadata('Extension').starts_with('j')
hydrate
Notitie
Dit is een experimentele methode en kan op elk gewenst moment worden gewijzigd. Zie https://aka.ms/azuremlexperimental voor meer informatie.
De gegevensset wordt gehydrateerd in de aangevraagde replica's die zijn opgegeven in datacache_store.
hydrate(datacache_store, replica_count=None)
Parameters
Name | Description |
---|---|
datacache_store
Vereist
|
De datacachestore die moet worden gebruikt om te hydrateren. |
replica_count
Vereist
|
<xref:Int>, <xref:optional>
Aantal replica's dat moet worden gehydrateerd. |
Retouren
Type | Description |
---|---|
Het configuratieobject dat beschrijft hoe de datacache in de uitvoering moet worden gerealiseerd. |
mount
Maak een contextbeheer voor het koppelen van bestandsstromen die door de gegevensset zijn gedefinieerd als lokale bestanden.
mount(mount_point=None, **kwargs)
Parameters
Name | Description |
---|---|
mount_point
Vereist
|
De lokale map waaraan de bestanden moeten worden gekoppeld. Indien Geen, worden de gegevens gekoppeld aan een tijdelijke map, die u kunt vinden door de methode MountContext.mount_point-exemplaar aan te roepen. |
Retouren
Type | Description |
---|---|
<xref:MountContext>: <xref:the> <xref:context> <xref:manager.> <xref:Upon> <xref:entering> <xref:the> <xref:context> <xref:manager>, <xref:the> <xref:dataflow> <xref:will> <xref:be> <xref:mounted> <xref:to> <xref:the> <xref:mount_point.> <xref:Upon> exit, <xref:it> <xref:will> <xref:remove> <xref:the> mount <xref:point> <xref:and> clean <xref:up> <xref:the> <xref:daemon> <xref:process> <xref:used> <xref:to> mount <xref:the> <xref:dataflow.>
|
Retourneert een contextbeheer voor het beheren van de levenscyclus van de koppeling. |
Opmerkingen
Er wordt een contextbeheerder geretourneerd om de levenscyclus van de koppeling te beheren. Als u wilt koppelen, moet u de contextbeheerder invoeren en de contextbeheerder verlaten om de koppeling ongedaan te maken.
Koppelen wordt alleen ondersteund op Unix- of Unix-achtige besturingssystemen waarop het systeemeigen pakket libfuse is geïnstalleerd. Als u in een Docker-container werkt, moet de docker-container worden gestart met de vlag –privileged of gestart met –cap-add SYS_ADMIN –device/dev/fuse.
datastore = Datastore.get(workspace, 'workspaceblobstore')
dataset = Dataset.File.from_files((datastore, 'animals/dog/year-*/*.jpg'))
with dataset.mount() as mount_context:
# list top level mounted files and folders in the dataset
os.listdir(mount_context.mount_point)
# You can also use the start and stop methods
mount_context = dataset.mount()
mount_context.start() # this will mount the file streams
mount_context.stop() # this will unmount the file streams
Als target_path begint met een /, wordt dit behandeld als een absoluut pad. Als het niet begint met een /, wordt het behandeld als een relatief pad ten opzichte van de huidige werkmap.
random_split
Splits bestandsstromen in de gegevensset willekeurig in twee delen en ongeveer op basis van het opgegeven percentage.
De eerste geretourneerde gegevensset bevat ongeveer percentage
het totale aantal bestandsverwijzingen en de tweede gegevensset bevat de resterende bestandsverwijzingen.
random_split(percentage, seed=None)
Parameters
Name | Description |
---|---|
percentage
Vereist
|
Het percentage bij benadering waarop de gegevensset moet worden gesplitst. Dit moet een getal tussen 0,0 en 1,0 zijn. |
seed
Vereist
|
Een optioneel seed voor de willekeurige generator. |
Retouren
Type | Description |
---|---|
Retourneert een tuple van nieuwe FileDataset-objecten die de twee gegevenssets na de splitsing vertegenwoordigen. |
skip
Sla bestandsstromen over vanaf de bovenkant van de gegevensset op basis van het opgegeven aantal.
skip(count)
Parameters
Name | Description |
---|---|
count
Vereist
|
Het aantal bestandsstromen dat moet worden overgeslagen. |
Retouren
Type | Description |
---|---|
Retourneert een nieuw FileDataset-object dat een gegevensset vertegenwoordigt waarvoor bestandsstromen zijn overgeslagen. |
take
Neem een voorbeeld van bestandsstromen boven aan de gegevensset op basis van het opgegeven aantal.
take(count)
Parameters
Name | Description |
---|---|
count
Vereist
|
Het aantal bestandsstromen dat moet worden uitgevoerd. |
Retouren
Type | Description |
---|---|
Retourneert een nieuw FileDataset-object dat de voorbeeldgegevensset vertegenwoordigt. |
take_sample
Neem een willekeurige steekproef van bestandsstromen in de gegevensset, ongeveer op basis van de opgegeven waarschijnlijkheid.
take_sample(probability, seed=None)
Parameters
Name | Description |
---|---|
probability
Vereist
|
De kans dat een bestandsstroom wordt opgenomen in de steekproef. |
seed
Vereist
|
Een optioneel seed voor de willekeurige generator. |
Retouren
Type | Description |
---|---|
Retourneert een nieuw FileDataset-object dat de voorbeeldgegevensset vertegenwoordigt. |
to_path
Een lijst met bestandspaden ophalen voor elke bestandsstroom die is gedefinieerd door de gegevensset.
to_path()
Retouren
Type | Description |
---|---|
Retourneert een matrix met bestandspaden. |
Opmerkingen
De bestandspaden zijn relatieve paden voor lokale bestanden wanneer de bestandsstromen worden gedownload of gekoppeld.
Een algemeen voorvoegsel wordt verwijderd uit de bestandspaden op basis van de wijze waarop de gegevensbron is opgegeven om de gegevensset te maken. Bijvoorbeeld:
datastore = Datastore.get(workspace, 'workspaceblobstore')
dataset = Dataset.File.from_files((datastore, 'animals/dog/year-*/*.jpg'))
print(dataset.to_path())
# ['year-2018/1.jpg'
# 'year-2018/2.jpg'
# 'year-2019/1.jpg']
dataset = Dataset.File.from_files('https://dprepdata.blob.core.windows.net/demo/green-small/*.csv')
print(dataset.to_path())
# ['/green_tripdata_2013-08.csv']