2

目的: データ ラベル付けプロジェクトで使用される、より大きな FileDataset からのランダム サンプリングを使用して、ダウンサンプリングされた FileDataset を生成します。


詳細: 何百万もの画像を含む大きな FileDataset があります。各ファイル名には、それが取得された「セクション」に関する詳細が含まれています。セクションには何千もの画像が含まれる場合があります。特定の数のセクションと、それらのセクションに関連付けられているすべての画像をランダムに選択したいと考えています。次に、サンプルを新しいデータセットとして登録します。

以下のコードは、ファイル パスや変数などの要素が機密上の理由で名前が変更されているため、直接コピーして貼り付けるものではないことに注意してください。

import azureml.core
from azureml.core import Dataset, Datastore, Workspace

# Load in work space from saved config file
ws = Workspace.from_config()

# Define full dataset of interest and retrieve it
dataset_name = 'complete_2017'
data = Dataset.get_by_name(ws, dataset_name)

# Extract file references from dataset as relative paths
rel_filepaths = data.to_path()

# Stitch back in base directory path to get a list of absolute paths
src_folder = '/raw-data/2017'
abs_filepaths = [src_folder + path for path in rel_filepaths]

# Define regular expression pattern for extracting source section
import re
pattern = re.compile('\/(S.+)_image\d+.jpg')

# Create new list of all unique source sections
sections = sorted(set([m.group(1) for m in map(pattern.match, rel_filepaths) if m]))

# Randomly select sections
num_sections = 5
set_seed = 221020
random.seed(set_seed)   # for repeatibility
sample_sections = random.choices(sections, k = num_sections)

# Extract images related to the selected sections
matching_images = [filename for filename in abs_filepaths if any(section in filename for section in sample_sections)]

# Define datastore of interest
datastore = Datastore.get(ws, 'ml-datastore')

# Convert string paths to Azure Datapath objects and relate back to datastore
from azureml.data.datapath import DataPath
datastore_path = [DataPath(datastore, filepath) for filepath in matching_images]

# Generate new dataset using from_files() and filtered list of paths
sample = Dataset.File.from_files(datastore_path)

sample_name = 'random-section-sample'
sample_dataset = sample.register(workspace = ws, name = sample_name, description = 'Sampled sections from full dataset using set seed.')

問題: Python SDK で記述したコードが実行され、新しい FileDataset が登録されますが、データセットの詳細を調べたり、データ ラベル付けプロジェクトに使用しようとすると、Ownerとしても次のエラーが発生します。

Access denied: Failed to authenticate data access with Workspace system assigned identity. Make sure to add the identity as Reader of the data service.

さらに、詳細タブで Files in datasetUnknownで、Total size of files in datasetUnavailableです。

私はこの問題を他のどこにも遭遇していません。他の方法でデータセットを生成できるので、型にはまらない方法でデータを操作していることを考えると、コードに問題があると思われます。


追記事項

  • Azure ML のバージョンは 1.15.0 です
4

2 に答える 2

1

ひょっとして、データは仮想ネットワークの背後にあるのでしょうか?

于 2020-10-27T22:39:04.113 に答える