我不知道 javascript,所以我想将仅在 JS 中可用的 HUB 模型移动到 SavedModel 格式。
我从教程中复制了这个脚本并尝试添加 model.save 函数,但它不起作用。
这是脚本:
<html><head>
<!-- Load the latest version of TensorFlow.js -->
<script src="https://unpkg.com/@tensorflow/tfjs"></script>
<script src="https://unpkg.com/@tensorflow-models/mobilenet"></script>
</head>
<body>
<div id="console"></div>
<!-- Add an image that we will use to test -->
<img id="img" src="https://i.imgur.com/JlUvsxa.jpg" width="227" height="227">
<script>
let net;
async function app() {
console.log('Loading mobilenet..');
// Load the model.
net = await mobilenet.load();
console.log('Successfully loaded model');
// Make a prediction through the model on our image.
const imgEl = document.getElementById('img');
const result = await net.classify(imgEl);
console.log(result);
console.log('Saving mobilenet...');
const saveResults = await net.save('downloads://my-model-1');
console.log('Mobilenet saved');
}
app();
</script>
</body></html>
这是我得到的错误:
Uncaught (in promise) TypeError: net.save is not a function
at app (TFjsmodelSaver.html:27)
app @ TFjsmodelSaver.html:27
async function (async)
app @ TFjsmodelSaver.html:19
(anonymous) @ TFjsmodelSaver.html:30
该错误清楚地表明 net.save 不是应用程序中的功能,但同时 net.classify 有效,并且保存在 tfjs 中:https ://js.tensorflow.org/api/0.12.5/# tf.Model.save
我错过了什么?
顺便说一句,如果有一种方法可以在 SavedModel 中获取 HUB 模型而无需通过此操作,请指出它。我假设模型首先在 TF 中创建,然后移植到 TFJS,所以它们可能在某处可用......