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

Объект 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
значение по умолчанию: 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
значение по умолчанию: None

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

Комментарии

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

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

download

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

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

Параметры

target_path
str
Обязательно

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

overwrite
bool
Обязательно

Указывает, следует ли перезаписывать существующие файлы. Значение по умолчанию — False. Существующие файлы будут перезаписаны, если для параметра перезаписи задано значение True; в противном случае будет вызвано исключение.

ignore_not_found
bool
Обязательно

Указывает, следует ли завершить скачивание из-за ошибки, если не найдены некоторые файлы, на которые указывает набор данных. Значение по умолчанию — 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
Обязательно

Объект datacachestore, который будет использоваться для расконсервации.

replica_count
<xref:Int>, <xref:optional>
Обязательно

Число реплик для расконсервации.

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

Объект конфигурации, описывающий, как следует материализовать кэш данных при выполнении.

Возвращаемый тип

mount

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

mount(mount_point=None, **kwargs)

Параметры

mount_point
str
Обязательно

Локальный каталог для подключения файлов. При значении None данные будут подключены к временному каталогу, который можно найти, вызвав метод экземпляра MountContext.mount_point.

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

Возвращает диспетчер контекста для управления жизненным циклом подключения.

Возвращаемый тип

<xref:<xref:MountContext: the context manager. Upon entering the context manager>, <xref:the dataflow will bemounted to the mount_point. Upon exit>, <xref:it will remove the mount point and clean up the daemon processused to mount the 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
float
Обязательно

Приблизительное процентное соотношение для разделения набора данных. Это должно быть число от 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
float
Обязательно

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

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