如何解决将具有权重不匹配的keras模型转换为tensorflowjs,groups = 2的层
我正在构建一个keras模型,将保留的权重加载到该模型上,然后尝试将其转换为tfjs,问题出在将groups参数设置为2的一层。我将权重形状与预先转换的形状和keras模型可以匹配,但是当我将其转换为tfjs并加载到brower上时,会出现不匹配的错误。
代码:
eyes_model = keras.Sequential(
[
keras.Input(shape=(224,224,3)),layers.Conv2D(96,kernel_size=11,strides=4,padding='valid',activation='relu'),layers.MaxPooling2D(pool_size=3,strides=2),layers.Conv2D(256,kernel_size=5,strides=1,padding='same',groups=2,# This is the layer mismatch happens
layers.MaxPooling2D(pool_size=3,layers.Conv2D(384,kernel_size=3,layers.Conv2D(64,kernel_size=1,activation='relu')
]
)
正确的权重应该是:[5、5、48、256],这是预先训练的权重的形状,但是当我将其转换并加载到浏览器中时,错误就会发生:
Uncaught (in promise) Error: Shape mismatch: [5,5,96,256] vs. [5,48,256]
at checkShapesMatch (webgazer.js:66610)
at variables_LayerVariable.write (webgazer.js:66578)
at webgazer.js:66781
at Array.forEach ()
at batchSetValue (webgazer.js:66779)
at models_Sequential.loadWeights (webgazer.js:70579)
at loadLayersModelFromIOHandler (webgazer.js:73987)
通过以下方式完成转换: tfjs.converters.save_keras_model(model)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)