0

我正在 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.。同样,没有迹象表明删除数据集也会删除模型。考虑到数据集和模型如何在控制台中绑定在一起,当我测试它时它似乎已经这样做是有道理的,但我找不到任何关于此的文档。

在使用客户端 API(例如 NodeJS)时,文档显示了如何删除数据集如何删除模型。但是,似乎没有任何迹象表明删除数据集是否也会删除模型。

谷歌关于管理数据集管理模型的文档也没有说明删除数据集是否也会删除模型。

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

我倾向于相信模型确实会随着数据集被删除——但我想确保情况确实如此。

4

1 回答 1

1

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

我现在已经使用 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 完成后模型不再存在。

于 2019-09-05T21:21:16.067 回答