我使用 tensorflowjs-converter 將在 ImageNet 上預(yù)訓(xùn)練的 EfficientNet 模型轉(zhuǎn)換為 tensorflow-js。當(dāng)我嘗試將模型加載到我的腳本中時(shí),它會(huì)嘗試使用初始化程序初始化權(quán)重,這些初始化程序未在 tfjs 中實(shí)現(xiàn)。但是,沒有必要初始化權(quán)重,因?yàn)槟P鸵呀?jīng)過預(yù)訓(xùn)練并且權(quán)重也進(jìn)行了轉(zhuǎn)換。轉(zhuǎn)換后的模型在這里: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()您必須打開瀏覽器的控制臺(tái),才能看到正確的錯(cuò)誤。錯(cuò)誤是:錯(cuò)誤:“未知初始化程序:EfficientConv2DKernelInitializer。這可能是由于以下原因之一:1. 初始化程序是在 Python 中定義的,在這種情況下,需要將其移植到 TensorFlow.js 或您的 JavaScript 代碼中。2. 自定義初始化程序在 JavaScript 中定義,但未使用 tf.serialization.registerClass() 正確注冊(cè)。”更新: 雖然我可以繞過初始化器,但將所有未知的初始化器替換為例如 Zeros 初始化器。我遇到了當(dāng)前無法解決的自定義圖層(Swish 圖層)的另一個(gè)問題。
如何在不初始化權(quán)重的情況下導(dǎo)入訓(xùn)練模型
開心每一天1111
2021-06-27 17:19:58