python-3.x - 我使用 imageai 包进行自定义产品检测时出错
问题描述
我正在参加有关产品检测的比赛。我正在使用 imageai 包,我很好地遵循了说明
我的代码:
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory(r"C:\Users\User\Desktop\directory\Copy of shopee-product-detection-dataset")
model_trainer.trainModel(num_objects=41, num_experiments=200, enhance_data=True, batch_size=32, show_network_summary=True)
但是当我运行时,它出现了这个错误:
Traceback (most recent call last):
File "C:\Users\User\Desktop\directory\shopeetrainingcode.py", line 9, in <module>
model_trainer.trainModel(num_objects=41, num_experiments=200, enhance_data=True, batch_size=32, show_network_summary=True)
File "C:\Program Files\Python36\lib\site-packages\imageai\Prediction\Custom\__init__.py", line 342, in trainModel
validation_steps=int(num_test / batch_size), callbacks=[checkpoint, lr_scheduler, tensorboard])
File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\_impl\keras\engine\training.py", line 1598, in fit_generator
initial_epoch=initial_epoch)
File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\_impl\keras\engine\training_generator.py", line 191, in fit_generator
x, y, sample_weight=sample_weight, class_weight=class_weight)
File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\_impl\keras\engine\training.py", line 1378, in train_on_batch
class_weight=class_weight)
File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\_impl\keras\engine\training.py", line 804, in _standardize_user_data
exception_prefix='target')
File "C:\Program Files\Python36\lib\site-packages\tensorflow\python\keras\_impl\keras\engine\training_utils.py", line 192, in standardize_input_data
' but got array with shape ' + str(data_shape))
ValueError: Error when checking target: expected activation_50 to have shape (41,) but got array with shape (42,)
有谁知道问题是什么?
解决方案
这可能是因为您在设置时尝试传递 42 个对象num_objects=41
。试试num_objects=42
这样:
from imageai.Prediction.Custom import ModelTraining
model_trainer = ModelTraining()
model_trainer.setModelTypeAsResNet()
model_trainer.setDataDirectory(r"C:\Users\User\Desktop\directory\Copy of shopee-product-detection-dataset")
model_trainer.trainModel(num_objects=42, num_experiments=200, enhance_data=True, batch_size=32, show_network_summary=True)
推荐阅读
- asp.net - 相同的 HttpPut 请求代码格式不起作用,但适用于另一个请求
- logging - 在 Rasa SDK 中,如何从本地运行的操作服务器检索日志?
- elasticsearch - 如何在日志行中使用管道分隔的字符串
- c# - 将文本框转换为整数,从数组中获取字符串
- sql-server - 动态 SQL Server 内部联接
- javascript - 如何调整 map() 函数的返回值?
- python - 如何使用python计算每天的事件数?
- python - Python 函数将新数据附加到我现有的 csv 文件中
- python - 如何使用 yml 文件创建 conda 环境而不会出现此错误?
- vba - 将一个类模块子分配给多个 OptionButtons vba