尝试训练神经网络时出错-“名称空间”对象没有属性“ steps_for_validation”

时间:2019-12-19 06:09:37

标签: python python-3.x tensorflow keras object-detection

我正在遵循一个教程“使用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

每一个帮助都值得赞赏

1 个答案:

答案 0 :(得分:0)

train.py库的keras-retinanet文件存在问题。

如果看一下其代码,则在解析parse_args函数中的参数时,他们使用parser.add_argument()函数为所有参数添加了默认值,除了steps_for_validation,{{1} }和max_queue_size

解决方法是

  1. initial_epoch函数调用或
  2. 中删除这些行 从命令行或
  3. 通过名称传递参数或
  4. fit_generator()库中为这3个参数添加parser.add_argument()函数调用,并在需要时进行构建。

尽管我建议使用第一种解决方法,以防万一您不知道这些参数在做什么以及其默认参数应该是什么。