首页 > 解决方案 > 如何更新 Tensorflow.js 模型的权重?

问题描述

我目前有一个 tensorflow.js 卷积神经网络模型,可以检测某些图像是快乐还是悲伤(基于面部表情)。这是通过浏览器完成的,用户上传面部图像或使用网络摄像头,然后模型确定结果。但是,如果模型预测不正确,用户也可以选择覆盖此结果。

如果用户决定覆盖结果,我打算做的是使用用户上传的图像重新训练模型。我知道这可以通过 tensorflow.js API 中的 model.fit 和 model.save 函数来完成。

我担心的是模型权重当前存储在谷歌云存储桶中,但我不确定如何更新文件以便在用户下次通过面部时重用更新的权重。有没有某种方法可以使用谷歌云或其他类似的云存储来完成它,而不必每次都更改 model.load 链接?

我知道这是一个相当模糊的问题,但我无法访问 indexeddb,因此云存储似乎是存储权重以供浏览器访问和更新的最佳选择。我只是不确定如何在不更改以后通过 model.load 访问模型的链接的情况下保存模型。

标签: javascripttensorflowkerasgoogle-cloud-storagetensorflow.js

解决方案


您可以通过设置 Object Versioning来更新 Cloud Storage 存储桶中对象的数据。唯一的问题是,如果您想访问以前版本的对象,则必须使用世代号,如下所示:

gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

推荐阅读