我尝试用下面的代码导出卡证检测矫正模型的 onnx 模型
from modelscope.models import Model from modelscope.exporters import Exporter model_id = 'damo/cv_resnet_carddetection_scrfd34gkps' model = Model.from_pretrained(model_id) output_files = Exporter.from_model(model).export_onnx(opset=13, output_dir='.') print(output_files)
但是报了下面的错 modelscope/exporters/base.py", line 56, in from_model f'is not supported currently.') from e KeyError: "The exporting of model 'scrfd' with task: 'card-detection' is not supported currently."
把configuration.json里面的
"task": "card-detection"
改成
"task": "face-detection"
您好,卡证检测模型可以参考SCRFD人脸检测模型的ONNX导出方式:https://github.com/modelscope/modelscope/blob/master/tests/export/test_export_face_detection_scrfd.py
根据您提供的错误信息来看,卡证检测矫正模型的 onnx 模型导出目前不受支持。错误信息中提到了 "The exporting of model 'scrfd' with task: 'card-detection' is not supported currently.",这表明该模型的导出功能目前不可用。
您可以尝试使用其他方式来导出模型,例如使用 TensorFlow 或 PyTorch 等框架来导出模型。
根据错误信息,可以看出是因为导出的模型任务为"card-detection",而不是"card-detection-rectify",因此该模型的导出不支持。如果您需要导出"card-detection-rectify"任务的ONNX模型,请使用以下代码:
from modelscope.models import Model from modelscope.exporters import Exporter model_id = 'damo/cv_resnet_carddetection_rectify_scrfd34gkps' model = Model.from_pretrained(model_id) output_files = Exporter.from_model(model).export_onnx(opset=13, output_dir='.') print(output_files)
请注意,此代码中的模型 ID 已更改为"damo/cv_resnet_carddetection_rectify_scrfd34gkps",并且任务为"card-detection-rectify"。
你好,根据错误提示The exporting of model 'scrfd' with task: 'card-detection' is not supported currently.来看的话当前模型应是不支持使用ModelScope提供的ONNX转换工具进行模型导出。
卡证检测矫正模型是否支持ONNX模型导出,需要查看该模型的开发者或者文档。如果该模型支持ONNX型导出,您可以使用ONNX Runtime或其他支持ONNX格式的推理引擎来加载和运行该模型。如果该模型不支ONNX模型导出,您可以尝试使用其他格式的模型,例如TensorFlow或PyTorch,或者联系模型的开发者来获取更多信息。
这个错误提示表明当前模型 scrfd 和任务 card-detection 的导出不支持。在你运行代码之前,ModelScope 版本应该是 1.10.0 或更高版本,因为在之前版本的 ModelScope 中不支持模型和任务的导出。
要解决这个问题,你可以使用 ModelScope 的最新版本,或者将模型和任务的版本更新到支持的版本。如果你不想更新模型和任务的版本,你可以尝试使用 ModelScope 的旧版本,或者使用其他模型和任务的版本。
一般来说,如果该模型支持导出为 ONNX 格式,那么你就可以使用 ONNX Runtime 或其他 ONNX 支持的平台来部署和推理该模型。
如果你不确定你使用的卡证检测矫正模型是否支持导出为 ONNX 格式,可以去该模型对应的官方文档或代码库中查看其是否支持 ONNX 导出,并查看其导出方式和所支持的 ONNX Runtime 版本。
这个错误是因为您试图将一个尚未支持导出的模型导出到 ONNX 格式。请注意,在 ModelScope 上发布的模型不是完全导出的,它们可能还需要进一步的调整和调优。 要解决这个问题,您可以先在模型上执行 torch.backends.cudnn.enabled = True,这将允许使用 CUDA 加速的卷积操作。然后,尝试重新导出模型,看看是否能够成功导出 ONNX 格式。 例如,以下是修改后的代码:
import torch import torch.nn as nn from modelscope.models import Model, exporter from modelscope.exporters import Exporter
model = Model.from_pretrained(model_id) model = model.to(device) output_files = Exporter.from_model(model).export_onnx(opset=13, output_dir='.') print(output_files) 这将导出到当前目录中,并且支持 task: 'card-detection' 的导出。
根据你提供的错误信息,可以看出该模型不支持导出为ONNX格式。这可能是由于该模型中使用了一些不支持导出为ONNX格式的操作或模块,导致无法成功导出为ONNX模型。
针对这个问题,你可以尝试以下几个解决方法:
尝试使用其他的导出方式。如果该模型不支持导出为ONNX格式,你可以尝试使用其他的导出方式,比如TorchScript或TensorRT等。
重新训练或修改模型。如果你非常需要将该模型导出为ONNX格式,你可以尝试重新训练或修改该模型,使其不再使用不支持导出为ONNX格式的操作或模块。
联系该模型的开发者或ModelScope的技术支持,以获取更多帮助。他们可能会提供其他的解决方法或建议。
希望以上方法能够帮助你解决问题。
楼主你好,报错信息表明,当前版本的ModelScope不支持导出scrfd34gkps卡证检测矫正模型为ONNX格式。这是因为在ModelScope中,ONNX格式的导出是基于模型的任务类型和架构类型的。目前,ModelScope支持的ONNX导出任务类型包括图像分类、目标检测和语义分割,而不支持卡证检测矫正任务类型。
如果您需要将卡证检测矫正模型导出为ONNX格式,可以考虑使用其他工具或库,例如ONNX Runtime或PyTorch。您也可以尝试将该模型转换为图像分类、目标检测或语义分割模型,并使用ModelScope导出为ONNX格式。请注意,转换模型可能会影响模型的性能和准确性,因此请谨慎操作。
根据您提供的信息,ModelScope当前不支持将 "scrfd" 模型用于卡证检测矫正任务的导出到ONNX格式。该错误是由于ModelScope中的导出功能限制而引起的。
导出模型到ONNX格式通常需要确保模型结构和操作在ONNX规范的支持范围内。由于"scrfd" 模型的结构或任务特定操作的限制,导出到ONNX格式可能会受到限制。
您可以尝试使用其他方法将模型导出为ONNX格式。例如,如果您使用的是PyTorch作为模型训练框架,您可以使用PyTorch提供的内置功能来导出模型。以下是一个示例代码片段,展示了如何使用PyTorch导出模型到ONNX格式: import torch
model = torch.load('path_to_saved_model.pth')
model.eval()
example_input = torch.randn(1, 3, 224, 224)
torch.onnx.export(model, example_input, 'path_to_output_model.onnx')
上述代码片段中,您需要将 'path_to_saved_model.pth' 替换为您保存的模型文件路径,并将 'path_to_output_model.onnx' 替换为您希望保存ONNX模型的路径。请确保在导出之前将模型设置为评估模式(model.eval()),并提供一个示例输入张量(example_input)以便确定输入和输出张量的形状。
请注意,由于我无法获取到具体的模型和数据集,上述代码片段仅为示例,您需要根据您的具体情况进行相应的调整。
如果您在使用ModelScope的过程中遇到任何问题或需要更详细的指导,请参考ModelScope的官方文档或联系其支持团队。
可以看到当前的卡证检测矫正模型不支持 ONNX 模型导出。这可能是因为该模型不支持 ONNX 格式,或者是因为 ModelScope 目前还没有实现该模型的 ONNX 导出功能。
如果您需要将该模型导出为 ONNX 格式,可以尝试使用其他的工具或者框架,例如 PyTorch 或者 TensorFlow 等,这些框架支持将模型导出为 ONNX 格式,并且提供了相关的工具和接口。您可以根据自己的需求和实际情况选择合适的工具和框架。
另外,如果您有特定的需求或者建议,可以提交到 ModelScope 的 GitHub 仓库中,以便我们将其纳入后续的开发计划中。ONNX(Open Neural Network Exchange)是一个开放的深度学习模型交换格式,旨在使不同的深度学习框架之间的模型转换更加容易和高效。ONNX 可以将深度学习模型从一个框架转换到另一个框架,而无需重新实现模型或者重新训练模型。
ONNX 支持多种深度学习框架,包括 PyTorch、TensorFlow、Caffe2、MXNet 等,可以将这些框架中的模型转换为 ONNX 格式,然后在其他框架中加载和使用。这样,用户可以使用自己熟悉的框架进行模型训练和推理,同时又可以享受其他框架的优势,如 TensorFlow 的分布式训练能力和 PyTorch 的动态图机制。
ONNX 的设计思路是将模型表示为计算图形式,其中节点表示计算操作,边表示数据流。这种图形式的表示方式可以保留模型的结构和参数,同时还能提高模型的可移植性和兼容性。
根据报错信息,当前不支持使用 modelscope 导出卡证检测矫正模型的 onnx 模型。可能需要等待更新或尝试其他工具或方法导出。
这并不意味着所有模型都不支持ONNX导出,因为ONNX支持的操作和结构很多,大多数模型都可以成功导出。如果您需要使用ONNX格式的模型,可以尝试使用其他支持ONNX导出的模型,或者使用其他深度学习框架来导出ONNX模型。
根据您提供的错误信息,似乎在运行模型导出代码时出现了错误。这是因为当前版本的ModelScope库不支持将"scrfd"模型用于卡证检测矫正任务的ONNX导出。
如果您想导出卡证检测矫正任务的ONNX模型,建议您尝试使用其他模型或者框架,并查找相关的导出工具和文档。例如,您可以使用PyTorch、TensorFlow等框架来训练和导出卡证检测矫正模型,并参考官方文档和社区支持论坛,以获取更多关于如何使用这些框架导出ONNX模型的指导和示例代码。
另外,也可以向ModelScope开发人员反馈此问题,以便他们进一步改进和优化该库,并支持更多类型的模型和任务进行ONNX导出。
希望这些信息对您有所帮助!
根据您提供的信息,目前 ModelScope 不支持将卡证检测矫正模型导出为 ONNX 格式。根据报错提示,当前版本的 ModelScope 不支持导出该模型类型和任务类型的 ONNX 模型。
虽然 ONNX 是一个流行的深度学习模型格式,但并不是所有类型的模型都能够直接导出为 ONNX。某些模型类型可能需要进行特定的转换或兼容性调整,才能被导出为 ONNX。
如果您需要将卡证检测矫正模型导出为 ONNX,可以考虑使用其他工具或方法来进行转换。例如,可以使用 PyTorch 或 TensorFlow 等框架中提供的 ONNX 转换工具,将模型从 PyTorch 或 TensorFlow 格式转换为 ONNX 格式。
另外,也可以考虑将模型保存为其他格式,如 TensorFlow、PyTorch 或 MXNet 等格式,并在需要使用时再进行转换。这样也可以避免一些兼容性问题和限制。
根据报错信息,卡证检测矫正模型的 ONNX 模型导出当前不受支持。导致这个问题的原因是该模型在 ModelScope 中的实现方式可能与 ONNX 规范存在一些差异或限制,因此无法直接导出为 ONNX 模型。
如果您需要将该模型导出为 ONNX 模型,并集成到其他框架或项目中使用,建议您再进一步探索相关方法和工具。以下是一些可能有用的参考资源:
PyTorch 官方文档:PyTorch 可以与 ONNX 相互转换,使得您可以在 PyTorch 中设计、训练和调试模型,并将其导出为 ONNX 格式,以便在其他支持 ONNX 的框架中运行。您可以参考 PyTorch 的官方文档,了解如何使用 PyTorch 和 ONNX 进行模型转换。
ONNX 官方文档:ONNX 是一个开放标准的深度学习模型交换格式,支持多种框架和硬件平台。您可以参考 ONNX 的官方文档,了解如何使用 ONNX 进行模型转换和部署。
TensorFlow 官方文档:TensorFlow 支持使用 SavedModel 和 TF.js 等格式导出模型,并提供了转换器以支持其他格式的模型。您可以参考 TensorFlow 的官方文档,了解如何使用 TensorFlow 进行模型转换和部署。
根据您提供的代码和错误信息,似乎卡证检测矫正模型不支持使用modelscope中的exporters导出为ONNX格式。这可能是由于该模型不支持ONNX导出,或者是由于modelscope库中缺少对该特定模型的ONNX导出支持。
您可以尝试使用其他工具或库来导出模型为ONNX格式。例如,torch.onnx.export()函数可以将PyTorch模型导出为ONNX格式,因此如果您已经有了PyTorch版本的该模型,您可以尝试使用此函数进行导出。但是,请注意,不是所有模型都能够无损地转换为ONNX格式,因此可能需要进行一些调整和优化才能成功导出。
根据你提供的错误信息,看起来卡证检测矫正模型不支持 onnx 模型导出。你可以尝试使用其他导出格式,比如 TensorFlow SavedModel 或者 PyTorch JIT Script。以下是使用 TensorFlow SavedModel 导出模型的示例代码:
from modelscope.models import Model
from modelscope.exporters import Exporter
model_id = 'damo/cv_resnet_carddetection_scrfd34gkps'
model = Model.from_pretrained(model_id)
output_files = Exporter.from_model(model).export_savedmodel(output_dir='.', signature_def_key='serving_default')
print(output_files)
这将会把模型导出为 TensorFlow SavedModel 格式,并保存在当前目录下。你可以使用 TensorFlow Serving 或者 TensorFlow Lite 运行这个模型。