Chr*_*ich 5 keras tf.keras tensorflow2.0
由于不相关的原因,从 keras --> tensorflow.keras 更新我们的代码库。
keras 2.3.1 张量流 2.1.0
此代码在 keras 上有效,但在 tf.keras 上失败:
weights = applications.VGG16(weights='imagenet', include_top=False).get_weights()
model.set_weights(tempweights)
Run Code Online (Sandbox Code Playgroud)
错误:
You called `set_weights(weights)` on layer "model" with a weight list of length 26, but the layer was expecting 32 weights. Provided weights: [array([[[[ 4.29470569e-01, 1.17273867e-01, 3.40...
Run Code Online (Sandbox Code Playgroud)
使用 keras.applications.VGG16().get_weights() 无法修复它,会导致完全相同的错误。
已经检查了这些看起来相似的 github 问题,但无法找到问题的原因:
https://github.com/keras-team/keras/issues/7229 https://github.com/keras-team/keras/issues/4753
以下作品:
model.weights[0] = weights[0]
Run Code Online (Sandbox Code Playgroud)
看起来 keras.model.set_weights() 有一些处理不匹配权重的行为,但 tf.tensorflow.keras 没有这种行为?
确认的。行为发生了变化。Include_top=True 在我们的具体情况下修复了它,因为这使我们的模型匹配。当模型不匹配时,Keras 不会抛出错误,而且我不确定它在这种情况下到底会做什么。但不会对此进行调查。把解决方案留在这里。
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |