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


FileDataset Класс

Представляет коллекцию ссылок на файлы в хранилищах данных или общедоступных URL-адресах для использования в Машинном обучении Azure.

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

FileDataset создается с помощью from_files метода класса FileDatasetFactory.

Дополнительные сведения см. в статье "Добавление и регистрация наборов данных". Чтобы приступить к работе с набором данных файлов, см. раздел https://aka.ms/filedataset-samplenotebook.

Инициализировать объект FileDataset.

Этот конструктор не должен вызываться напрямую. Набор данных предназначен для создания с помощью FileDatasetFactory класса.

Конструктор

FileDataset()

Комментарии

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

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

Фактическая загрузка данных происходит, когда FileDataset запрашивает доставку данных в другой механизм хранения (например, файлы, скачанные или подключенные к локальному пути).

Методы

as_cache

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

Создайте 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.

В отправленном запуске synapse файлы в наборах данных будут преобразованы в локальный путь к целевому объекту вычислений. Путь 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/acr/connected-registry.

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

Поддерживаемые столбцы метаданных файла: Size, LastModifiedTime, CreationTime, Extension и CanSeek

filter

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

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

hydrate

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

Гидратирует набор данных в запрошенные реплики, указанные в datacache_store.

mount

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

random_split

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

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

skip

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

take

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

take_sample

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

to_path

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

as_cache

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

Создайте datacacheConsumptionConfig, сопоставленную с datacache_store и набором данных.

as_cache(datacache_store)

Параметры

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

Хранилище данных, используемое для гидратации.

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

Тип Описание

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

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.

В отправленном запуске synapse файлы в наборах данных будут преобразованы в локальный путь к целевому объекту вычислений. Путь 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; В противном случае не найдена ошибка, и dowload завершится успешно, пока не обнаружены другие типы ошибок.

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

Тип Описание

Возвращает массив путей к файлам для каждого загруженного файла.

Комментарии

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

file_metadata

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

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

Поддерживаемые столбцы метаданных файла: Size, LastModifiedTime, CreationTime, Extension и CanSeek

file_metadata(col)

Параметры

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

Имя столбца

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

Тип Описание
<xref:azureml.dataprep.api.expression.RecordFieldExpression>

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

filter

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

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

filter(expression)

Параметры

Имя Описание
expression
Обязательно
<xref:azureml.dataprep.api.expression.Expression>

Выражение для вычисления.

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

Тип Описание

Измененный набор данных (незарегистрированный).

Комментарии

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


   (dataset.file_metadata('Size') > 10000) & (dataset.file_metadata('CanSeek') == True)
   dataset.file_metadata('Extension').starts_with('j')

hydrate

Замечание

Это экспериментальный метод и может измениться в любое время. Дополнительные сведения см. по адресу https://aka.ms/acr/connected-registry.

Гидратирует набор данных в запрошенные реплики, указанные в datacache_store.

hydrate(datacache_store, replica_count=None)

Параметры

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

Хранилище данных, используемое для гидратации.

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

Количество реплик для гидратации.

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

Тип Описание

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

mount

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

mount(mount_point=None, **kwargs)

Параметры

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

Локальный каталог для подключения файлов. Если нет, данные будут подключены к временному каталогу, который можно найти, вызвав метод экземпляра 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, контейнер 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']