FileDataset クラス
Azure Machine Learning で使用するデータストアまたはパブリック URL 内のファイル参照のコレクションを表します。
FileDataset は、データ ソースからファイル ストリームにデータを読み込む一連の遅延評価された不変操作を定義します。 FileDataset がデータの配信を求められるまで、データはソースから読み込まれません。
FileDataset は、FileDatasetFactory クラスの from_files メソッドを使用して作成されます。
詳細については、 データセットの追加と登録に関する記事を参照してください。 ファイル データセットの操作を開始するには、 https://aka.ms/filedataset-samplenotebookを参照してください。
FileDataset オブジェクトを初期化します。
このコンストラクターは、直接呼び出すことはできません。 データセットは、 FileDatasetFactory クラスを使用して作成することを目的としています。
コンストラクター
FileDataset()
注釈
FileDataset は、実験の実行の入力として使用できます。 また、指定した名前でワークスペースに登録し、後でその名前で取得することもできます。
FileDataset は、このクラスで使用できるさまざまなサブセット化メソッドを呼び出すことによってサブセット化できます。 サブセット化の結果は常に新しい FileDataset になります。
実際のデータ読み込みは、FileDataset が別のストレージ メカニズム (ダウンロードされたファイルやローカル パスにマウントされたファイルなど) にデータを配信するように求められた場合に発生します。
メソッド
as_cache |
注 これは実験的な方法であり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。 datacache_storeとデータセットにマップされた DatacacheConsumptionConfig を作成します。 |
as_download |
ダウンロードするモードを設定して DatasetConsumptionConfig を作成します。 送信された実行では、データセット内のファイルがコンピューティング 先のローカル パスにダウンロードされます。 ダウンロード場所は、引数の値と実行コンテキストのinput_datasets フィールドから取得できます。 入力名が自動的に生成されます。 カスタム入力名を指定する場合は、as_named_input メソッドを呼び出してください。
|
as_hdfs |
モードを hdfs に設定します。 送信された synapse 実行では、データセット内のファイルがコンピューティング 先のローカル パスに変換されます。 hdfs パスは、引数の値と os 環境変数から取得できます。
|
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 |
データセット内のファイル ストリームをランダムに 2 つの部分に分割し、指定された割合でほぼ分割します。 返される最初のデータセットには、ファイル参照の合計数の約 |
skip |
指定した数でデータセットの先頭からファイル ストリームをスキップします。 |
take |
指定した数でデータセットの先頭からファイル ストリームのサンプルを取得します。 |
take_sample |
データセット内のファイル ストリームのランダムなサンプルを、指定された確率でほぼ取得します。 |
to_path |
データセットによって定義された各ファイル ストリームのファイル パスの一覧を取得します。 |
as_cache
注
これは実験的な方法であり、いつでも変更される可能性があります。 詳細については、https://aka.ms/azuremlexperimental を参照してください。
datacache_storeとデータセットにマップされた DatacacheConsumptionConfig を作成します。
as_cache(datacache_store)
パラメーター
名前 | 説明 |
---|---|
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_download(path_on_compute=None)
パラメーター
名前 | 説明 |
---|---|
path_on_compute
|
データを使用可能にするコンピューティングのターゲット パス。 規定値: None
|
注釈
データセットが 1 つのファイルのパスから作成される場合、ダウンロード場所はダウンロードされた 1 つのファイルのパスになります。 それ以外の場合、ダウンロード場所は、ダウンロードしたすべてのファイルの外側のフォルダーのパスになります。
path_on_compute /で始まる場合は、絶対パスとして扱われます。 /で始まらない場合は、作業ディレクトリに対する相対パスとして扱われます。 絶対パスを指定した場合は、そのディレクトリに書き込む権限がジョブにあることを確認してください。
as_hdfs
モードを hdfs に設定します。
送信された synapse 実行では、データセット内のファイルがコンピューティング 先のローカル パスに変換されます。 hdfs パスは、引数の値と os 環境変数から取得できます。
# 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()
注釈
データセットが 1 つのファイルのパスから作成されると、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
|
データを使用可能にするコンピューティングのターゲット パス。 規定値: None
|
注釈
データセットが 1 つのファイルのパスから作成されると、マウント ポイントは単一のマウントされたファイルのパスになります。 それ以外の場合、マウント ポイントは、マウントされたすべてのファイルの外側のフォルダーのパスになります。
path_on_compute /で始まる場合は、絶対パスとして扱われます。 /で始まらない場合は、作業ディレクトリに対する相対パスとして扱われます。 絶対パスを指定した場合は、そのディレクトリに書き込む権限がジョブにあることを確認してください。
download
データセットによってローカル ファイルとして定義されたファイル ストリームをダウンロードします。
download(target_path=None, overwrite=False, ignore_not_found=False)
パラメーター
名前 | 説明 |
---|---|
target_path
必須
|
ファイルをダウンロードするローカル ディレクトリ。 None の場合、データは一時ディレクトリにダウンロードされます。 |
overwrite
必須
|
既存のファイルを上書きするかどうかを示します。 既定値は False です。 上書きが True に設定されている場合、既存のファイルは上書きされます。それ以外の場合は例外が発生します。 |
ignore_not_found
必須
|
データセットが指す一部のファイルが見つからない場合にダウンロードを失敗させるかどうかを示します。 既定値は False です。 ignore_not_foundが False に設定されている場合、何らかの理由でファイルのダウンロードが失敗した場合、ダウンロードは失敗します。それ以外の場合、検出されないエラーの警告がログに記録され、他のエラーの種類が見つからない限り、dowload は成功します。 |
戻り値
型 | 説明 |
---|---|
ダウンロードした各ファイルのファイル パスの配列を返します。 |
注釈
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.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
必須
|
ハイドレートに使用するデータストア。 |
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.>
|
マウントのライフサイクルを管理するためのコンテキスト マネージャーを返します。 |
注釈
マウントのライフサイクルを管理するために、コンテキスト マネージャーが返されます。 マウントするには、コンテキスト マネージャーを入力し、マウントを解除するには、コンテキスト マネージャーから終了する必要があります。
マウントは、ネイティブ パッケージ libfuse がインストールされている UNIX または UNIX 系のオペレーティング システムでのみサポートされます。 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
データセット内のファイル ストリームをランダムに 2 つの部分に分割し、指定された割合でほぼ分割します。
返される最初のデータセットには、ファイル参照の合計数の約 percentage
が含まれており、2 番目のデータセットには残りのファイル参照が含まれています。
random_split(percentage, seed=None)
パラメーター
名前 | 説明 |
---|---|
percentage
必須
|
データセットを分割するおおよその割合。 0.0 ~ 1.0 の範囲の数値を指定する必要があります。 |
seed
必須
|
ランダム ジェネレーターに使用する省略可能なシード。 |
戻り値
型 | 説明 |
---|---|
分割後の 2 つのデータセットを表す新しい 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']