删除 AutoML Vision 数据集是否也会删除模型?

Does deleting an AutoML Vision dataset also delete the model?

我正在 Google 的 AutoML Vision 图像分类服务中创建模型。在部署新模型时,我想删除它们的前辈。

在控制台中,删除训练好的模型并不会删除数据集。但是,删除数据集似乎删除了模型。删除模型时,会显示以下警告:Your model will be removed from Google Cloud, and any API queries to this model will no longer work. 删除数据集时,会显示此警告:Your dataset will be removed from Google Cloud, including all label data. Your images on Cloud Storage (GCS) will not be affected.。同样,没有迹象表明删除数据集也会删除模型。考虑到数据集和模型在控制台中是如何绑定在一起的,当我测试它时它似乎已经这样做了,但我找不到任何关于此的文档。

当使用 NodeJS 等客户端 API 时,文档显示了两者 how to delete a dataset and how to delete a model。但是,似乎没有任何迹象表明删除数据集是否也会删除模型。

Google 在 managing datasets and managing models 上的文档也没有说明删除数据集是否也会删除模型。

使用客户端API时,是只删除数据集,还是同时删除数据集和模型?

我倾向于相信模型确实随数据集一起被删除了 - 但我想确保情况确实如此。

编辑:这个答案是在 v1 API 发布之前用 v1beta1 API 做出的。我相信这个答案不再适用于 v1 API.

我现在已经使用 NodeJS 客户端库对此进行了测试,可以确认 deleteDataset 方法确实删除了数据集及其对应的模型。

const formattedParent = automl.locationPath('foobar', 'us-central1');

// List Datasets
const datasetsA = await automl.listDatasets({parent: formattedParent})
console.log(`BEFORE Datasets: ${JSON.stringify(datasetsA, null, 4)}`)

// List Models
const modelsA = await automl.listModels({parent: formattedParent})
console.log(`BEFORE Models: ${JSON.stringify(modelsA, null, 4)}`)

// Delete Dataset
const formattedName = automl.datasetPath('foobar', 'us-central1', 'barbaz')
const [operation, initialApiResponse] = await automl.deleteDataset({name: formattedName})
const responses = await operation.promise()
const result = responses[0]
const metadata = responses[1]
const finalApiResponse = responses[2]
console.log(`result: ${JSON.stringify(result, null, 4)}`)
console.log(`metadata: ${JSON.stringify(metadata, null, 4)}`)
console.log(`finalApiResponse: ${JSON.stringify(finalApiResponse, null, 4)}`)

// List Datasets
const datasetsB = await automl.listDatasets({parent: formattedParent})
console.log(`AFTER Datasets: ${JSON.stringify(datasetsB, null, 4)}`)

// List Models
const modelsB = await automl.listModels({parent: formattedParent})
console.log(`AFTER Models: ${JSON.stringify(modelsB, null, 4)}`)

控制台的输出确认模型在删除 LRO 完成后不再存在。