删除AutoML Vision数据集还会删除模型吗?

时间:2019-09-02 01:37:41

标签: google-cloud-automl

我正在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)时,文档同时显示how to delete a datasethow to delete a model。但是,似乎没有任何迹象表明删除数据集是否也会删除模型。

managing datasetsmanaging models上的Google文档也未指定删除数据集是否也会删除模型。

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

我倾向于认为该模型确实会随数据集删除-但我想确保确实如此。

1 个答案:

答案 0 :(得分:0)

编辑:此答案是在v1beta1 API发行之前使用v1 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完成后该模型不再存在。