- 配置环境,安装所需的包(我是在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 ‘tensorflow.compat.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即可
Original: https://blog.csdn.net/adzt123789/article/details/124260398
Author: adzt123789
Title: Poly-Yolo复现
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/682047/
转载文章受原作者版权保护。转载请注明原作者出处!