MiniBullLab / easy_ai

3 stars 1 forks source link

one class运行报错 #131

Closed foww-0001 closed 3 years ago

foww-0001 commented 3 years ago

运行命令如下:

python3 easyai/test_task.py -t one_class -i /home/wfw/data/VOCdevkit/MVTec/bottle/ImageSets/train.txt -m PatchCoreNet

报错如下:

2021-08-10 23:20:20,491 ERROR   [test_task.py, 37] Traceback (most recent call last):
  File "easyai/test_task.py", line 33, in test
    task = build_from_cfg(task_args, REGISTERED_TEST_TASK)
  File "/home/wfw/workspace/Test/easy_ai/easyai/utility/registry.py", line 109, in build_from_cfg
    return obj_cls(**args)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/one_class/one_class_test.py", line 18, in __init__
    self.inference = OneClass(model_name, gpu_id, config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/one_class/one_class.py", line 18, in __init__
    super().__init__(model_name, config_path, TaskName.OneClass)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/utility/base_inference.py", line 39, in __init__
    self.set_task_config(config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/utility/base_inference.py", line 43, in set_task_config
    self.task_config = self.config_factory.get_config(self.task_name, self.config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/config/utility/config_factory.py", line 20, in get_config
    result = build_from_cfg(config_args, REGISTERED_TASK_CONFIG)
  File "/home/wfw/workspace/Test/easy_ai/easyai/utility/registry.py", line 109, in build_from_cfg
    return obj_cls(**args)
  File "/home/wfw/workspace/Test/easy_ai/easyai/config/task/one_class_config.py", line 23, in __init__
    self.get_test_default_value()
  File "/home/wfw/workspace/Test/easy_ai/easyai/config/task/one_class_config.py", line 69, in get_test_default_value
    self.evaluation_result_path = os.path.join(self.ROOT_DIR, self.evaluation_result_name)
AttributeError: 'OneClassConfig' object has no attribute 'ROOT_DIR'

2021-08-10 23:20:20,492 ERROR   [test_task.py, 38] 'OneClassConfig' object has no attribute 'ROOT_DIR'
lpj0822 commented 3 years ago

给val.txt python3 easyai/test_task.py -t one_class -i /home/wfw/data/VOCdevkit/MVTec/bottle/ImageSets/val.txt -m PatchCoreNet

给的就是val.txt

lpj0822 commented 3 years ago

把模型权重给我,运行test要模型权重

lpj0822 commented 3 years ago

给val.txt python3 easyai/test_task.py -t one_class -i /home/wfw/data/VOCdevkit/MVTec/bottle/ImageSets/val.txt -m PatchCoreNet

给的就是val.txt

foww-0001 commented 3 years ago
[roi_align.py, 15] import _C fail!
[roi_align.py, 100] import amp fail!
[nms.py, 18] import _C fail!
Traceback (most recent call last):
  File "tests_ai/model_convert.py", line 49, in <module>
    main("./cfg/yolov3-spp-dilation_BerkeleyAll.cfg", "./snapshot/detect/pretain.pt", "/home/wfw/HASCO/all_wights/vgg16_FgSegNetV2_2.pt")
  File "tests_ai/model_convert.py", line 13, in main
    model = model_factory.get_model(model_config)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/model/utility/model_factory.py", line 39, in get_model
    result = self.get_model_from_name(model_args)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/model/utility/model_factory.py", line 63, in get_model_from_name
    model = build_from_cfg(model_config, REGISTERED_CLS_MODEL)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/utility/registry.py", line 110, in build_from_cfg
    return obj_cls(**args)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/model/cls/patch_core_net.py", line 34, in __init__
    self.create_block_list()
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/model/cls/patch_core_net.py", line 49, in create_block_list
    self.create_loss_list()
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/model/cls/patch_core_net.py", line 54, in create_loss_list
    loss = self.loss_factory.get_loss(loss_config)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/loss/utility/loss_factory.py", line 29, in get_loss
    result = self.get_common_loss(loss_args)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/loss/utility/loss_factory.py", line 103, in get_common_loss
    loss = build_from_cfg(loss_config, REGISTERED_SEG_LOSS)
  File "/home/wfw/workspace/Test/easy_ai/tests/../easyai/utility/registry.py", line 98, in build_from_cfg
    "{} is not in the {} registry".format(obj_type, registry.name)
KeyError: 'emptyLoss is not in the seg_loss registry'
foww-0001 commented 3 years ago
[roi_align.py, 15] import _C fail!
[roi_align.py, 100] import amp fail!
[nms.py, 18] import _C fail!
[common_train.py, 16] import amp fail!
Traceback (most recent call last):
  File "easyai/tools/feature_save/one_class_feature_save.py", line 62, in <module>
    main()
  File "easyai/tools/feature_save/one_class_feature_save.py", line 55, in main
    task = OneClassFeatureSave(options.model, 0, options.config_path)
  File "easyai/tools/feature_save/one_class_feature_save.py", line 17, in __init__
    self.inference = OneClass(model_name, gpu_id, config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/one_class/one_class.py", line 21, in __init__
    self.set_model(gpu_id=gpu_id)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/utility/base_inference.py", line 73, in set_model
    self.model = self.torchModelProcess.create_model(self.model_args, gpu_id)
  File "/home/wfw/workspace/Test/easy_ai/easyai/torch_utility/torch_model_process.py", line 29, in create_model
    model = self.modelFactory.get_model(model_config)
  File "/home/wfw/workspace/Test/easy_ai/easyai/model/utility/model_factory.py", line 39, in get_model
    result = self.get_model_from_name(model_args)
  File "/home/wfw/workspace/Test/easy_ai/easyai/model/utility/model_factory.py", line 63, in get_model_from_name
    model = build_from_cfg(model_config, REGISTERED_CLS_MODEL)
  File "/home/wfw/workspace/Test/easy_ai/easyai/utility/registry.py", line 109, in build_from_cfg
    return obj_cls(**args)
TypeError: __init__() got an unexpected keyword argument 'image_size'
lpj0822 commented 3 years ago

已经修改

foww-0001 commented 3 years ago
Traceback (most recent call last):
  File "easyai/tools/feature_save/one_class_feature_save.py", line 62, in <module>
    main()
  File "easyai/tools/feature_save/one_class_feature_save.py", line 55, in main
    task = OneClassFeatureSave(options.model, 0, options.config_path)
  File "easyai/tools/feature_save/one_class_feature_save.py", line 17, in __init__
    self.inference = OneClass(model_name, gpu_id, config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/one_class/one_class.py", line 18, in __init__
    super().__init__(model_name, config_path, TaskName.OneClass)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/utility/base_inference.py", line 39, in __init__
    self.set_task_config(config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/utility/base_inference.py", line 43, in set_task_config
    self.task_config = self.config_factory.get_config(self.task_name, self.config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/config/utility/config_factory.py", line 21, in get_config
    result.load_config(config_path)
  File "/home/wfw/workspace/Test/easy_ai/easyai/config/utility/image_task_config.py", line 41, in load_config
    self.load_test_value(config_dict)
  File "/home/wfw/workspace/Test/easy_ai/easyai/config/utility/gan_train_config.py", line 141, in load_test_value
    self.val_data = int(config_dict['val_data'])
TypeError: int() argument must be a string, a bytes-like object or a number, not 'dict'
lpj0822 commented 3 years ago

已经修改

foww-0001 commented 3 years ago
Traceback (most recent call last):
  File "easyai/tools/feature_save/one_class_feature_save.py", line 62, in <module>
    main()
  File "easyai/tools/feature_save/one_class_feature_save.py", line 57, in main
    task.process_test(options.valPath)
  File "easyai/tools/feature_save/one_class_feature_save.py", line 28, in process_test
    self.test(epoch)
  File "easyai/tools/feature_save/one_class_feature_save.py", line 35, in test
    self.process_func.save_embedding()
  File "/home/wfw/workspace/Test/easy_ai/easyai/tasks/one_class/post_process/patch_core_post_process.py", line 62, in save_embedding
    pickle.dump(self.embedding_coreset, f)
AttributeError: 'PatchCorePostProcess' object has no attribute 'embedding_coreset'
lpj0822 commented 3 years ago

已经修改