我正在遵循一个教程“使用TensorFlow 2和Keras使用Python对自定义数据集进行对象检测”
我正在与此link https://colab.research.google.com/drive/1TdhgBFaMxsaxl8sBKtCpT-itMxiphliu
合作当我尝试在这一行中训练神经网络时,事情就出了问题:
'/content/keras-retinanet/keras_retinanet/bin/train.py' --freeze-backbone --random-transform --weights {'/content/keras-retinanet/snapshots/_pretrained_model.h5'} - -batch-size 8 --steps 500 --epochs 10 csv '/content/keras-retinanet/annotations.csv' '/content/keras-retinanet/classes.csv'
抛出错误:
File "/content/keras-retinanet/keras_retinanet/bin/train.py", line 521, in main
validation_steps = args.steps_for_validation,
AttributeError: 'Namespace' object has no attribute 'steps_for_validation'
问题所在的train.py代码是这样的:
# start training
return training_model.fit_generator(
generator=train_generator,
steps_per_epoch=args.steps,
epochs=args.epochs,
verbose=1,
callbacks=callbacks,
workers=args.workers,
use_multiprocessing=args.multiprocessing,
max_queue_size=args.max_queue_size,
validation_steps = args.steps_for_validation,
validation_data=validation_generator,
initial_epoch=args.initial_epoch
)
但是我无法很好地理解问题,因为没有属性错误。
我也正在关注这个github页面,出现同样的错误here。
每一个帮助都值得赞赏
答案 0 :(得分:0)
train.py
库的keras-retinanet
文件存在问题。
如果看一下其代码,则在解析parse_args
函数中的参数时,他们使用parser.add_argument()
函数为所有参数添加了默认值,除了steps_for_validation
,{{1} }和max_queue_size
。
解决方法是
initial_epoch
函数调用或fit_generator()
库中为这3个参数添加parser.add_argument()
函数调用,并在需要时进行构建。尽管我建议使用第一种解决方法,以防万一您不知道这些参数在做什么以及其默认参数应该是什么。