为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不初始化权重的情况下导入训练模型

如何在不初始化权重的情况下导入训练模型

开心每一天1111 2021-06-27 17:19:58
我使用 tensorflowjs-converter 将在 ImageNet 上预训练的 EfficientNet 模型转换为 tensorflow-js。当我尝试将模型加载到我的脚本中时,它会尝试使用初始化程序初始化权重,这些初始化程序未在 tfjs 中实现。但是,没有必要初始化权重,因为模型已经过预训练并且权重也进行了转换。转换后的模型在这里:https : //github.com/paulsp94/tfjs_efficientnet3_imagenet这是问题的 CodePen 示例:https ://codepen.io/paulsp94/pen/XLNdJqconst start = async () => {  efficientNetURL = 'https://raw.githubusercontent.com/paulsp94/tfjs_efficientnet3_imagenet/master/model.json';  console.log("Load Model");  let model;  try {    model = await tf.loadLayersModel(efficientNetURL, {strict: true});    console.log(model.summary());   } catch (error) {     console.error(error);   }};start()您必须打开浏览器的控制台,才能看到正确的错误。错误是:错误:“未知初始化程序:EfficientConv2DKernelInitializer。这可能是由于以下原因之一:1. 初始化程序是在 Python 中定义的,在这种情况下,需要将其移植到 TensorFlow.js 或您的 JavaScript 代码中。2. 自定义初始化程序在 JavaScript 中定义,但未使用 tf.serialization.registerClass() 正确注册。”更新: 虽然我可以绕过初始化器,但将所有未知的初始化器替换为例如 Zeros 初始化器。我遇到了当前无法解决的自定义图层(Swish 图层)的另一个问题。
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

根据文档:

TensorFlow.js Layers 目前仅支持使用标准 Keras 构造的 Keras 模型。使用不受支持的操作或层(例如自定义层、Lambda 层、自定义损失或自定义指标)的模型无法自动导入,因为它们依赖于无法可靠地转换为 JavaScript 的 Python 代码。

目前无法使用自定义层导入模型


查看完整回答
反对 回复 2021-07-08
  • 1 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信