You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行anomalib代码遇ModuleNotFoundError:无'anomalib.engine'模块求助

解决ModuleNotFoundError: No module named 'anomalib.engine'的问题

问题重现

运行以下代码时触发模块找不到错误:

# Import the required modules
from anomalib.data import MVTec
from anomalib.models import Patchcore
from anomalib.engine import Engine

错误输出:

ModuleNotFoundError: No module named 'anomalib.engine'

原因分析

anomalib版本迭代后(v1.0+版本),anomalib.engine模块已被移除,相关训练、推理的核心功能被整合到了anomalib.task模块,或直接集成到了模型类中。

解决方案

方案1:使用anomalib.task.Task替代Engine

这是官方推荐的新用法,统一管理训练和推理流程:

from anomalib.data import MVTec
from anomalib.models import Patchcore
from anomalib.task import Task

# 初始化MVTec数据集模块
datamodule = MVTec(
    root="你的MVTec数据集路径",
    category="bottle",  # 替换为你需要的类别,比如"cable"、"capsule"等
    image_size=256,
)

# 初始化Patchcore模型
model = Patchcore()

# 创建Task实例并执行训练
task = Task(model=model, datamodule=datamodule)
task.fit()

# 执行推理
predictions = task.predict(datamodule.test_dataloader())

方案2:直接调用模型的fit/predict方法

如果不需要复杂的任务管理,也可以直接用模型类自带的方法完成训练和推理:

from anomalib.data import MVTec
from anomalib.models import Patchcore

# 初始化数据集
datamodule = MVTec(root="你的MVTec数据集路径", category="bottle")

# 初始化模型
model = Patchcore()

# 训练模型
model.fit(datamodule=datamodule)

# 对单张图片推理
results = model.predict(data="测试图片路径.jpg")

额外提示

确认你安装的anomalib版本与查看的文档版本一致,新版文档中已不再提及Engine模块,建议直接参考对应版本的官方文档内容。

内容的提问来源于stack exchange,提问作者swastik agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:33:20