Поделиться через


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.


   # 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_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_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']
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

Разделяет потоки файлов в наборе данных на две части случайным образом и приблизительно в указанном процентном соотношении.

Первый возвращаемый набор данных содержит приблизительно percentage из общего числа ссылок на файлы, а второй набор данных содержит оставшиеся ссылки на файлы.

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
str

Целевой путь вычисления, по которому должны быть доступны данные.

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
str

Целевой путь вычисления, по которому должны быть доступны данные.

Default value: None

Комментарии

Если набор данных создается из пути к одному файлу, точкой подключения будет путь к отдельному подключенному файлу. В противном случае точкой подключения будет путь к папке, содержащей все подключенные файлы.

Если path_on_compute начинается с /, он будет рассматриваться как абсолютный путь. Если он не начинается с /, он будет рассматриваться как относительный путь относительно рабочего каталога. Если вы указали абсолютный путь, убедитесь, что у задания есть разрешение на запись в этот каталог.

download

Скачать потоки файлов, определенные набором данных в качестве локальных файлов.

download(target_path=None, overwrite=False, ignore_not_found=False)

Параметры

Имя Описание
target_path
Обязательно
str

Локальный каталог для скачивания файлов. Если он не указан, данные будут скачаны во временный каталог.

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
Обязательно
str

Имя столбца

Возвращаемое значение

Тип Описание
<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
Обязательно
str

Локальный каталог для подключения файлов. При значении 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
Обязательно
int

Необязательное начальное значение, используемое для генератора случайных чисел.

Возвращаемое значение

Тип Описание

Возвращает кортеж новых объектов FileDataset, представляющий два набора данных после разделения.

skip

Пропускает потоки файлов из верхней части набора данных по указанному счетчику.

skip(count)

Параметры

Имя Описание
count
Обязательно
int

Число пропускаемых потоков файлов.

Возвращаемое значение

Тип Описание

Возвращает новый объект FileDataset, представляющий набор данных с пропущенными потоками файлов.

take

Получает выборку с указанным числом потоков файлов из начала набора данных.

take(count)

Параметры

Имя Описание
count
Обязательно
int

Число потоков файлов, которые необходимо выполнить.

Возвращаемое значение

Тип Описание

Возвращает новый объект FileDataset, представляющий набор данных выборки.

take_sample

Получает случайную выборку потоков файлов из набора данных приблизительно с заданной вероятностью.

take_sample(probability, seed=None)

Параметры

Имя Описание
probability
Обязательно

Вероятность включения потока файлов в выборку.

seed
Обязательно
int

Необязательное начальное значение, используемое для генератора случайных чисел.

Возвращаемое значение

Тип Описание

Возвращает новый объект 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']