失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Poly-Yolo复现

Poly-Yolo复现

时间:2024-03-11 05:37:31

相关推荐

Poly-Yolo复现

复现过程

配置环境,安装所需的包(我是在Ubuntu下用conda创建虚拟环境进行运行的,最好安装官方给的版本,可以复现过程中因为版本产生的error)

根据simulator_dataset文件夹下的模板样式,准备数据集,可以用conversion_scripts文件夹下的工具将自己的数据集转换成需要的形式

运行 kmeans.py 来适应锚点

在yolo_classes.txt中定义数据集的class(因为使用的是simulator_dataset文件夹下的文件,所以我跳过了这一步)

运行poly-yolo.py ( 可以在主函数里用model.save()存储模型,需要存储为.h5文件)

在当前文件夹下创建poly_yolo_predict文件夹用于存储识别后的文件

根据poly_yolo_inference.ipynb编写test.py文件进行测试,运行后的结果会存储在poly_yolo_predict文件夹

复现过程中出现的问题:

ImportError: cannot import name ‘BatchNormalization‘ from ‘keras.layers.normalization‘

报错原因:版本问题。

解决方案:将 from keras.layers.normalization import BatchNormalization 改成 from keras.layers.normalization.batch_normalization_v1 import BatchNormalization。

ImportError: cannot import name ‘multi_gpu_model‘ from ‘keras.utils‘

报错原因:版本问题,导致路径改变。

解决方案:将 from keras.utils import multi_gpu_model 改成 from keras.utils.multi_gpu_utils import multi_gpu_model。

AttributeError: ‘Tensor‘ object has no attribute ‘_keras_shape‘

报错原因:版本问题。

解决方案:将 _keras_shape 改为 shape。

将model.summary()导出

解决方案:利用summary()的参数print_fn,改参数传递一个函数,默认为print,只要传递一个新的函数即可

样例:

导出样例:

ImportError: cannot import name ‘multi_gpu_model‘ from ‘tensorflow.keras.utils‘(与 2 不同,使用 2 的解决方案无法解决)

报错原因:版本问题,tensorflow版本路径改变。

解决方案:用 from tensorflow.python.keras.utils.multi_gpu_utils import multi_gpu_model 替代 from tensorflow.keras.utils import multi_gpu_model。

cv.imread()读取对象为空

报错原因:传递的参数不对。

解决方案:cv.imread()的第一个参数是文件命名,这里最好用绝对路径,如果使用simulator_dataset里面的simulator-train.txt,需要注意里面的line[0]只是图片名,需要加上路径os.getcwd()+“/imgs/”+line[0],还需要注意路径中不要出现中文。

6.AttributeError: module ‘pat.v1‘ has no attribute ‘contrib‘

报错原因: tf2中删除了contrib这个库,因此无法使用xavier_initializer()初始化。

解决方法: 用initializer=tf.glorot_uniform_initializer() 进行替换

AttributeError: ‘str’ object has no attribute ‘decode’(加载模型的时候)

报错原因:h5py包的版本不对

解决方法:安装了指定版本为2.10的h5py即可

如果觉得《Poly-Yolo复现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。