-
配置环境,安装所需的包(我是在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即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)