retinaface-keras
retinaface-keras copied to clipboard
运行pretrain模型时遇到的问题
您好我在运行pretrain模型运行predict函数时,出现了shape不匹配的问题,我使用resnet同样进行了测试不会出现
请问我需要先根据你的pretrain模型进行重新训练吗?谢谢
ValueError: Layer #99 (named "batch_normalization_5"), weight <tf.Variable 'batch_normalization_5/gamma:0' shape=(32,) dtype=float32, numpy= array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=float32)> has shape (32,), but the saved weight has shape (64,).
你选对模型了吗,我有四个权重文件,两个是主干网络的,两个是训练好的
这个问题我也遇到了,需要先加载一遍模型,然后重新保存,resnet50
有同样的问题
from nets.retinaface import RetinaFace
from utils.config import cfg_mnet, cfg_re50
rr = RetinaFace(cfg_mnet, backbone="mobilenet")
# retinaface.py 中 generate 加载的方式 `by_name=True`,会报错
rr.load_weights('model_data/retinaface_mobilenet025.h5', by_name=True)
# ValueError: Layer #99 (named "batch_normalization_5"), weight ... has shape (32,), but the saved weight has shape (64,).
# 不使用 `by_name=True` 加载,并重新保存
rr.load_weights('model_data/retinaface_mobilenet025.h5')
rr.save('model_data/retinaface_mobilenet025_fixed.h5')
# 重新使用 `by_name=True` 加载测试
rr.load_weights('model_data/retinaface_mobilenet025_fixed.h5', by_name=True)
我没有遇见过,是不是版本不同导致的,你们用的什么版本
奇怪,刚刚重新 git reset --hard
了一下,这个问题又不见了,之前每次都是必现的。。
版本的话我这边是 TF1.15.0
/ TF 1.13.1
的都可以了。。
~~TF 2.3.0
keras 本身会报错:AttributeError: module 'keras.backend.tensorflow_backend' has no attribute '_is_tf_1'~~
我再试试
找到了,我这边报错的版本是 TF 2.3.0
这个问题我也遇到了,需要先加载一遍模型,然后重新保存,
resnet50
有同样的问题from nets.retinaface import RetinaFace from utils.config import cfg_mnet, cfg_re50 rr = RetinaFace(cfg_mnet, backbone="mobilenet") # retinaface.py 中 generate 加载的方式 `by_name=True`,会报错 rr.load_weights('model_data/retinaface_mobilenet025.h5', by_name=True) # ValueError: Layer #99 (named "batch_normalization_5"), weight ... has shape (32,), but the saved weight has shape (64,). # 不使用 `by_name=True` 加载,并重新保存 rr.load_weights('model_data/retinaface_mobilenet025.h5') rr.save('model_data/retinaface_mobilenet025_fixed.h5') # 重新使用 `by_name=True` 加载测试 rr.load_weights('model_data/retinaface_mobilenet025_fixed.h5', by_name=True)
通过您的方法解决了,非常感谢