☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您已使用TensorFlow训练完成一个模型,并希望将其部署到浏览器中运行,则需要将模型转换为TensorFlow.js支持的格式。以下是实现该目标的具体步骤:
一、使用tf.keras.models.save_model保存Keras模型
该方法适用于基于Keras构建并使用TensorFlow 2.x训练的模型。保存为SavedModel格式后,可被TensorFlow.js Converter识别并转换。
1、在Python环境中加载已训练的Keras模型(例如model = tf.keras.models.load_model("my_model.h5"))。
2、调用tf.keras.models.save_model(model, "saved_model_dir", save_format="tf"),将模型导出为TensorFlow原生SavedModel目录结构。
3、确保输出目录中包含assets、variables和saved_model.pb三个核心组成部分。
二、使用TensorFlow.js Converter命令行工具转换
TensorFlow.js提供专用CLI工具,用于将SavedModel或Keras HDF5模型转为Web可用的JSON与二进制权重文件。
1、全局安装转换器:npm install -g @tensorflow/tfjs-converter。
2、执行转换命令:tensorflowjs_converter --input_format=tf_saved_model --output_format=tfjs_graph_model saved_model_dir web_model_dir。
3、确认输出目录web_model_dir中生成model.json与多个.bin文件,其中model.json必须保持原始文件名且不可重命名。
三、从HDF5格式直接转换Keras模型
若模型仍以.h5格式保存,无需先转SavedModel,可直接通过Converter处理,但仅限于无自定义层、无动态控制流的静态图模型。
1、确保模型不含tf.function装饰函数、Lambda层内含非序列化Python逻辑或自定义训练循环。
2、运行命令:tensorflowjs_converter --input_format=keras my_model.h5 web_model_dir。
3、检查输出是否包含model.json及weights.bin,若报错“Unsupported operation”则需改用SavedModel路径。
四、手动导出并验证模型签名
对于含多个输入/输出张量或自定义推理签名的模型,需显式指定signature_name以确保浏览器端调用正确。
1、在保存SavedModel时,使用tf.saved_model.save(model, export_dir, signatures=model.call.get_concrete_function(input_spec))。
2、转换时添加参数:--signature_name=serving_default。
3、转换完成后,打开model.json,确认"signature": {"inputs": {...}, "outputs": {...}}字段存在且键名与JavaScript加载代码中一致。
五、在浏览器中加载并运行模型
导出完成后,需通过tf.loadGraphModel或tf.loadLayersModel加载模型,具体取决于导出时选用的格式(GraphModel对应tf_saved_model,LayersModel对应Keras)。
1、在HTML中引入TensorFlow.js库:<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@4.18.0/dist/tf.min.js"></script>。
2、使用fetch或相对路径加载model.json:必须确保服务器启用CORS,静态文件服务需允许跨域读取.bin文件。
3、调用tf.loadGraphModel("web_model_dir/model.json").then(model => { /* 执行推理 */ });。










