原文链接: tf SavedModel 转换为 可使用 tfjs 加载 的形式
下一篇: win10 将当前用户设为管理员权限
必须指定版本
保存模型的版本为 tf 1.13.1
转换tfjs 版本 0.8.5(需要重新安装最新版的numpy)
使用的 tfjs 加载模型 0.15.3
环境配置
指定安装对应版本的tfjs
pip install tensorflowjs==0.8.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
转换失败报错
安装升级numpy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade numpy
切换环境,执行转换脚本
将savedModel转为tfjs可用的格式
import tensorflowjs as tfjs
tfjs.converters.convert_tf_saved_model(
r"./pb/v10",
'output',
'./tfjs/test/',
)
转换成功后,模型很小,文件比较少, 相比之前的少了pb文件
将pb转为tfjs可用的格式
import tensorflowjs as tfjs
tfjs.converters.tf_saved_model_conversion_pb.convert_tf_frozen_model(
r"./pb/mix_dep.pb",
'generator/output',
'./tfjs/mix_dep/',
)
在tfjs中使用
安装指定版本
cnpm i @tensorflow/tfjs@0.15.3 -D
import * as tf from "@tensorflow/tfjs";
import {loadGraphModel} from '@tensorflow/tfjs-converter';
const modelUrl = "./static/style_model/test2/model.json"
// 加载模型
const model = await loadGraphModel(modelUrl);
console.log(model)
let x = tf.tensor(1.)
let ret = model.predict(x) ;
console.log('ret',ret.dataSync())
pb导出的模型加载
let MODEL_URL = './static/style_model/mnls/tensorflowjs_model.pb'
let WEIGHTS_URL = './static/style_model/mnls/weights_manifest.json'
// 加载模型
const model = await loadGraphModel(MODEL_URL, WEIGHTS_URL);
查看输出,使用了 2x+3 线性模型