我试图使用tensorflow.js API,我想导入一个已保存的python tensorflow模型。我使用this github library进行转换。我在我的html文件中输入了这些脚本:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.8.0"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"></script>
然后当我这样做时:
const model = await loadFrozenModel(MODEL_URL, WEIGHTS_URL);
它说类&#34; loadFrozenModel未定义&#34;。
在github页面中,它说使用这些导入:
import * as tfc from '@tensorflow/tfjs-core';
import {loadFrozenModel} from '@tensorflow/tfjs-converter';
当我这样做时,它给出:
&#34;未捕获的SyntaxError:意外的令牌*&#34;
和
&#34;未捕获的SyntaxError:意外的令牌{&#34;
分别。使用npm安装库时甚至会出现此错误。注意:我使用的是Windows 10并安装了第三方npm。
如果我错过了一些重要的细节,这是完整的两个文件:
index.html:
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.8.0"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"></script>
</head>
<body>
Tiny TFJS example.<hr>
<div id="micro_out_div"></div>
<script src="index.js"> </script>
</body>
index.js:
async function myFirstTfjs() {
const MODEL_URL = "PATH/TO/tensorflowjs_model.pb";
const WEIGHTS_URL = 'PATH/TO/weights_manifest.json';
const model = await loadFrozenModel(MODEL_URL, WEIGHTS_URL);
const feed = {
'op_to_restore': tf.tensor1d([0, 0, 0, 0])
};
document.getElementById('micro_out_div').innerText += model.execute(feed);
}
myFirstTfjs();
答案 0 :(得分:2)
到现在为止,问题已解决。 这是最后一个。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.11.2"> </script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"></script>
<script type="text/javascript">
const MODEL_URL = 'http://localhost:8000/tensorflowjs_model.pb';
const WEIGHTS_URL = 'http://localhost:8000/weights_manifest.json';
const model = tf.loadFrozenModel(MODEL_URL, WEIGHTS_URL);
console.log("model loaded");
</script>
</head>
<body>
</body>
</html>
请记住添加this扩展名以禁用CORS警告
答案 1 :(得分:1)
我认为你没有看到loadFrozenModel,因为脚本是作为模块加载的。另外,@tensorflow/tfjs
包含@tensorflow/tfjs-core
,因此您无需同时导入。{/ p>
<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.9.0></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"></script>
</head>
<body>
Tiny TFJS example.<hr>
<div id="micro_out_div"></div>
</body>
<script src="index.js"> </script>
</html>
答案 2 :(得分:0)
如果您通过脚本标签导入,则需要添加tf_converter,如下所示:
const model = await tf_converter.loadFrozenModel(MODEL_URL, WEIGHTS_URL);