Dynamo_导入图纸信息_修正1(临时图纸编号)

上一会用Dynamo做了一个在Revit中导入图纸信息的功能,后面在项目中使用的时候发现一个比较严重的问题,就是如果我在Excel中的图纸编号与Revit中已有的图纸编号冲突的时候,会导致修改失败,于是做了一点小改动。

逻辑上就是先将要修改的图纸的编号改成一套临时的图纸编号,然后再进行导入。

我使用的方法是用List.ReplaceItemAtIndex直接就把之前节点获得的导入数据的图纸编号替换掉,后面再做了一次单独的图纸编号修正,就解决了这个问题。

其实按设想来说还要在前面加一些节点识别Excel中图纸编号的,不然图纸编号就要固定记录在第二列,不过最近工作忙,就偷个小懒,下次再优化这个。

目前的Excel格式:

图纸名称图纸编号<图纸信息1><图纸信息2>···
<图纸名称1><图纸编号1>   
······   

修改的节点:



`torch.onnx.dynamo_export` 是 PyTorch 2.0 引入的新功能,它基于 TorchDynamo 和 FX 图模式来导出模型。与传统的 `torch.onnx.export` 不同,`dynamo_export` 会通过 TorchDynamo 捕获模型的计算图,并在导出前进行一定的图优化。 如果希望在使用 `torch.onnx.dynamo_export` 时不进行模型结构优化,可以通过配置 TorchDynamo 的行为来实现。TorchDynamo 提供了多种编译后端控制选项,其中可以通过设置 `optimize_for_inference` 或者使用 `torch._dynamo.config` 中的相关参数来控制是否启用优化。 具体来说,可以通过以下方式尝试禁用优化: 1. **禁用 TorchDynamo 的优化器**: ```python import torch from torch.onnx import dynamo_export # 禁用 TorchDynamo 的图优化 torch._dynamo.config.optimize_for_inference = False # 定义并实例化模型 class SimpleModel(torch.nn.Module): def __init__(self): super(SimpleModel, self).__init__() self.fc = torch.nn.Linear(10, 1) def forward(self, x): return self.fc(x) model = SimpleModel() input_data = torch.randn(1, 10) # 导出 ONNX 模型 dynamo_export(model, input_data, "model_no_optimize.onnx") ``` 2. **使用 `torch._dynamo.disable` 装饰器**: 如果希望完全跳过 TorchDynamo 的捕获和优化流程,可以使用 `torch._dynamo.disable` 来禁用 TorchDynamo 对模型的处理。 ```python import torch from torch.onnx import dynamo_export import torch._dynamo @torch._dynamo.disable def disable_dynamo_forward(model, x): return model(x) class SimpleModel(torch.nn.Module): def __init__(self): super(SimpleModel, self).__init__() self.fc = torch.nn.Linear(10, 1) def forward(self, x): return self.fc(x) model = SimpleModel() input_data = torch.randn(1, 10) # 导出时调用被禁用 TorchDynamo 的 forward 函数 dynamo_export(lambda x: disable_dynamo_forward(model, x), input_data, "model_no_dynamo.onnx") ``` 通过上述方法,可以在一定程度上控制 `torch.onnx.dynamo_export` 的行为,避免对模型结构进行优化。需要注意的是,`torch.onnx.dynamo_export` 的行为可能会随着 PyTorch 版本的更新而变化,因此建议查阅最新的 PyTorch 官方文档以获取更准确的配置方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值