FileDataset Класс
Представляет коллекцию ссылок на файлы в хранилищах данных или общедоступных URL-адресах для использования в Машинном обучении Azure.
FileDataset определяет ряд неактивно оцениваемых, неизменяемых операций для загрузки данных из источника данных в потоки файлов. Данные не загружаются из источника, пока FileDataset не получит запрос на доставку данных.
FileDataset создается с помощью метода from_files класса FileDatasetFactory.
Дополнительные сведения см. в статье Добавление наборов данных & регистрации. Чтобы приступить к работе с файловым набором данных, перейдите по ссылке https://aka.ms/filedataset-samplenotebook.
Инициализируйте объект FileDataset.
Этот конструктор не должен вызываться напрямую. Набор данных предназначен для создания с помощью FileDatasetFactory класса .
- Наследование
-
FileDataset
Конструктор
FileDataset()
Комментарии
Объект FileDataset можно использовать в качестве входных данных для выполнения эксперимента. Его также можно зарегистрировать в рабочей области с заданным именем, а затем извлечь по этому имени.
FileDataset можно разбивать на подмножества путем вызова различных методов разделения на подмножества, доступные в этом классе. Результатом разбиения на подмножества всегда является новый FileDataset.
Фактическая загрузка данных происходит, когда FileDataset запрашивает доставку данных в другой механизм хранения (например, файлы, скачанные или подключенные к локальному пути).
Методы
as_cache |
Примечание Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental. Создание DatacacheConsumptionConfig, сопоставленного с datacache_store и набором данных. |
as_download |
Создайте DatasetConsumptionConfig с заданным режимом скачивания. В отправленном запуске файлы в наборе данных будут скачаны по локальному пути на целевом объекте вычислений. Расположение скачивания можно получить из значений аргументов и поля input_datasets контекста выполнения. Мы автоматически создадим имя входа. Если вы хотите указать пользовательское имя входа, вызовите метод as_named_input.
|
as_hdfs |
Установите режим HDFS. В отправленном прогоне синапса файлы в наборе данных будут преобразованы в локальный путь на целевом объекте вычислений. Путь HDFS можно получить из значений аргументов и переменных среды ОС.
|
as_mount |
Создайте DatasetConsumptionConfig с заданным режимом подключения. В отправленном выполнении файлы в наборе данных будут подключены по локальному пути на целевом объекте вычислений. Точку подключения можно получить из значений аргументов и поля input_datasets контекста выполнения. Мы автоматически создадим имя входа. Если вы хотите указать пользовательское имя входа, вызовите метод as_named_input.
|
download |
Скачать потоки файлов, определенные набором данных в качестве локальных файлов. |
file_metadata |
Примечание Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental. Получает выражение метаданных файла, указав имя столбца метаданных. Поддерживаемые столбцы метаданных файлов: Size, LastModifiedTime, CreationTime, Extension и CanSeek |
filter |
Примечание Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental. Фильтрует данные, оставляя только те записи, которые соответствуют указанному выражению. |
hydrate |
Примечание Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental. Расконсервируйте набор данных в запрошенные реплики, указанные в datacache_store. |
mount |
Создание диспетчера контекста для подключения потоков файлов, которые определяются набором данных в качестве локальных файлов. |
random_split |
Разделяет потоки файлов в наборе данных на две части случайным образом и приблизительно в указанном процентном соотношении. Первый возвращаемый набор данных содержит приблизительно |
skip |
Пропускает потоки файлов из верхней части набора данных по указанному счетчику. |
take |
Получает выборку с указанным числом потоков файлов из начала набора данных. |
take_sample |
Получает случайную выборку потоков файлов из набора данных приблизительно с заданной вероятностью. |
to_path |
Возвращает список путей к файлам для каждого потока файлов, определенного набором данных. |
as_cache
Примечание
Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental.
Создание DatacacheConsumptionConfig, сопоставленного с datacache_store и набором данных.
as_cache(datacache_store)
Параметры
Имя | Описание |
---|---|
datacache_store
Обязательно
|
Объект datacachestore, который будет использоваться для расконсервации. |
Возвращаемое значение
Тип | Описание |
---|---|
Объект конфигурации, описывающий, как следует материализовать кэш данных при выполнении. |
as_download
Создайте DatasetConsumptionConfig с заданным режимом скачивания.
В отправленном запуске файлы в наборе данных будут скачаны по локальному пути на целевом объекте вычислений. Расположение скачивания можно получить из значений аргументов и поля input_datasets контекста выполнения. Мы автоматически создадим имя входа. Если вы хотите указать пользовательское имя входа, вызовите метод as_named_input.
# 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)
Параметры
Имя | Описание |
---|---|
path_on_compute
|
Целевой путь вычисления, по которому должны быть доступны данные. Default value: None
|
Комментарии
Если набор данных создается из пути к одному файлу, то расположением загрузки будет путь к отдельному загруженному файлу. В противном случае в качестве расположения загрузки будет указан путь к папке, содержащей все загруженные файлы.
Если path_on_compute начинается с /, он будет рассматриваться как абсолютный путь. Если он не начинается с /, он будет рассматриваться как относительный путь относительно рабочего каталога. Если вы указали абсолютный путь, убедитесь, что у задания есть разрешение на запись в этот каталог.
as_hdfs
Установите режим HDFS.
В отправленном прогоне синапса файлы в наборе данных будут преобразованы в локальный путь на целевом объекте вычислений. Путь HDFS можно получить из значений аргументов и переменных среды ОС.
# 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()
Комментарии
Если набор данных создается из пути к одному файлу, путем HDFS будет путь к отдельному файлу. В противном случае, путем HDFS будет путь к папке, содержащей все подключенные файлы.
as_mount
Создайте DatasetConsumptionConfig с заданным режимом подключения.
В отправленном выполнении файлы в наборе данных будут подключены по локальному пути на целевом объекте вычислений. Точку подключения можно получить из значений аргументов и поля input_datasets контекста выполнения. Мы автоматически создадим имя входа. Если вы хотите указать пользовательское имя входа, вызовите метод as_named_input.
# 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)
Параметры
Имя | Описание |
---|---|
path_on_compute
|
Целевой путь вычисления, по которому должны быть доступны данные. Default value: None
|
Комментарии
Если набор данных создается из пути к одному файлу, точкой подключения будет путь к отдельному подключенному файлу. В противном случае точкой подключения будет путь к папке, содержащей все подключенные файлы.
Если path_on_compute начинается с /, он будет рассматриваться как абсолютный путь. Если он не начинается с /, он будет рассматриваться как относительный путь относительно рабочего каталога. Если вы указали абсолютный путь, убедитесь, что у задания есть разрешение на запись в этот каталог.
download
Скачать потоки файлов, определенные набором данных в качестве локальных файлов.
download(target_path=None, overwrite=False, ignore_not_found=False)
Параметры
Имя | Описание |
---|---|
target_path
Обязательно
|
Локальный каталог для скачивания файлов. Если он не указан, данные будут скачаны во временный каталог. |
overwrite
Обязательно
|
Указывает, следует ли перезаписывать существующие файлы. Значение по умолчанию — False. Существующие файлы будут перезаписаны, если для параметра перезаписи задано значение True; в противном случае будет вызвано исключение. |
ignore_not_found
Обязательно
|
Указывает, следует ли завершить скачивание из-за ошибки, если не найдены некоторые файлы, на которые указывает набор данных. Значение по умолчанию — False. Если для ignore_not_found задано значение False, скачивание завершится ошибкой в случае сбоя при скачивании любого файла по какой бы то ни было причине. В противном случае в журнал будет занесено предупреждение о том, что ошибки не найдены, а скачивание будет успешным, если не произойдут ошибки других типов. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает массив путей файла для каждого скачанного файла. |
Комментарии
Если target_path начинается с /, он будет рассматриваться как абсолютный путь. Если он не начинается с /, то будет рассматриваться как относительный путь касательно рабочего каталога.
file_metadata
Примечание
Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental.
Получает выражение метаданных файла, указав имя столбца метаданных.
Поддерживаемые столбцы метаданных файлов: Size, LastModifiedTime, CreationTime, Extension и CanSeek
file_metadata(col)
Параметры
Имя | Описание |
---|---|
col
Обязательно
|
Имя столбца |
Возвращаемое значение
Тип | Описание |
---|---|
<xref:azureml.dataprep.api.expression.RecordFieldExpression>
|
Возвращает выражение, которое получает значение в указанном столбце. |
filter
Примечание
Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental.
Фильтрует данные, оставляя только те записи, которые соответствуют указанному выражению.
filter(expression)
Параметры
Имя | Описание |
---|---|
expression
Обязательно
|
<xref:azureml.dataprep.api.expression.Expression>
Выражение для вычисления. |
Возвращаемое значение
Тип | Описание |
---|---|
Измененный набор данных (регистрация отменена). |
Комментарии
Выражения запускаются путем индексирования Dataset с именем столбца. Они поддерживают различные функции и операторы, а также могут объединяться с помощью логических операторов. Результирующее выражение будет вычисляться в неактивном режиме для каждой записи при извлечении данных, а не там, где оно определено.
(dataset.file_metadata('Size') > 10000) & (dataset.file_metadata('CanSeek') == True)
dataset.file_metadata('Extension').starts_with('j')
hydrate
Примечание
Это экспериментальный метод, который может быть изменен в любое время. Дополнительные сведения см. по адресу https://aka.ms/azuremlexperimental.
Расконсервируйте набор данных в запрошенные реплики, указанные в datacache_store.
hydrate(datacache_store, replica_count=None)
Параметры
Имя | Описание |
---|---|
datacache_store
Обязательно
|
Объект datacachestore, который будет использоваться для расконсервации. |
replica_count
Обязательно
|
<xref:Int>, <xref:optional>
Число реплик для расконсервации. |
Возвращаемое значение
Тип | Описание |
---|---|
Объект конфигурации, описывающий, как следует материализовать кэш данных при выполнении. |
mount
Создание диспетчера контекста для подключения потоков файлов, которые определяются набором данных в качестве локальных файлов.
mount(mount_point=None, **kwargs)
Параметры
Имя | Описание |
---|---|
mount_point
Обязательно
|
Локальный каталог для подключения файлов. При значении None данные будут подключены к временному каталогу, который можно найти, вызвав метод экземпляра MountContext.mount_point. |
Возвращаемое значение
Тип | Описание |
---|---|
<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.>
|
Возвращает диспетчер контекста для управления жизненным циклом подключения. |
Комментарии
Для управления жизненным циклом подключения будет возвращен диспетчер контекста. Для подключения необходимо войти в диспетчер контекста, а для отключения — выйти из него.
Подключение поддерживается только в операционных системах Unix или им подобных с установленной библиотекой libfuse с собственным пакетом. Если вы для выполнения используется контейнер Docker, он должен быть запущен с флагом –privileged или с параметрами 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
Если target_path начинается с /, он будет рассматриваться как абсолютный путь. Если он не начинается с /, то будет рассматриваться как относительный путь касательно рабочего каталога.
random_split
Разделяет потоки файлов в наборе данных на две части случайным образом и приблизительно в указанном процентном соотношении.
Первый возвращаемый набор данных содержит приблизительно percentage
из общего числа ссылок на файлы, а второй набор данных содержит оставшиеся ссылки на файлы.
random_split(percentage, seed=None)
Параметры
Имя | Описание |
---|---|
percentage
Обязательно
|
Приблизительное процентное соотношение для разделения набора данных. Это должно быть число от 0,0 до 1,0. |
seed
Обязательно
|
Необязательное начальное значение, используемое для генератора случайных чисел. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает кортеж новых объектов FileDataset, представляющий два набора данных после разделения. |
skip
Пропускает потоки файлов из верхней части набора данных по указанному счетчику.
skip(count)
Параметры
Имя | Описание |
---|---|
count
Обязательно
|
Число пропускаемых потоков файлов. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает новый объект FileDataset, представляющий набор данных с пропущенными потоками файлов. |
take
Получает выборку с указанным числом потоков файлов из начала набора данных.
take(count)
Параметры
Имя | Описание |
---|---|
count
Обязательно
|
Число потоков файлов, которые необходимо выполнить. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает новый объект FileDataset, представляющий набор данных выборки. |
take_sample
Получает случайную выборку потоков файлов из набора данных приблизительно с заданной вероятностью.
take_sample(probability, seed=None)
Параметры
Имя | Описание |
---|---|
probability
Обязательно
|
Вероятность включения потока файлов в выборку. |
seed
Обязательно
|
Необязательное начальное значение, используемое для генератора случайных чисел. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает новый объект FileDataset, представляющий набор данных выборки. |
to_path
Возвращает список путей к файлам для каждого потока файлов, определенного набором данных.
to_path()
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает массив путей к файлам. |
Комментарии
Пути к файлам — это относительные пути для локальных файлов при скачивании или подключении потоков файлов.
Общий префикс будет удален из путей к файлам в зависимости от того, как был указан источник данных для создания набора данных. Пример:
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']