最近跟着b站up:Bubbliiiing的视频做YOLO V3
使用的版本是tensorflow1.13.1,keras是2.1.5
跟着前面的视频都没有问题,直到执行train.py文件的时候报错,报错是显示在加载预训练权重的时候有问题model_body.load_weights(weights_path, by_name=True, skip_mismatch=True)。
报错原因如下:str object has not attribute decode
解释一下,在python中,encode是编码的意思,decode是解码的意思,对字符串进行encode会把字符变成二进制,对二进制进行decode会变成字符串
上面报错的意思是不能对字符串进行decode操作,所以我们点开最下面报错的蓝色地址,他会进入到一个py文件,你就会看到以下代码
很容易就看到两个decode(“utf8”),将他们删除加载权重就没问题了。
你以为这就结束了?不不不,加载和训练的时候是没问题的,但是保存模型的时候就有问题了,你想想训练了很久才训练完,结果报错的时候出错了是什么感受(大哭)
上面的改好之后,可以进行训练,但是保存的时候