---
title: moderntcn_ZG
canonical_url: "https://www.modelscope.cn/models/AIBS/moderntcn_ZG"
md_url: "https://www.modelscope.cn/models/AIBS/moderntcn_ZG.md"
repository: AIBS/moderntcn_ZG
last_updated: 2025-08-20
library_name:
  - pytorch
frameworks:
  - pytorch
downloads: 4
stars: 0
---

# moderntcn_ZG

> moderntcn_ZG - AIBS 在 ModelScope 开源的模型。0moderntcn >模型原始工程，需要自行下载 weights >存放原始权重，需要自行下载 1scripts >若干脚本，用于保存AI编译器需要的模型、编译后仿真等功能 2compile >AI编译器编译模型时所需要的文件 3deploy >将AI编译器编译出的模型部署到硬件时需要的c++工程

- **Repository**: AIBS/moderntcn_ZG
- **Downloads**: 4
- **Stars**: 0
- **Last updated**: 2025-08-20

Source: https://www.modelscope.cn/models/AIBS/moderntcn_ZG

---

# moderntcn

# 0. 文件结构说明

AI部署模型需要以下几部分文件

- 0_moderntcn    >模型原始工程，需要自行下载
- weights              >存放原始权重，需要自行下载
- 1_scripts            >若干脚本，用于保存AI编译器需要的模型、编译后仿真等功能
- 2_compile          >AI编译器编译模型时所需要的文件
- 3_deploy            >将AI编译器编译出的模型部署到硬件时需要的c++工程

# 1. python工程准备

## 1. **模型来源：**

- code：https://gitee.com/mxh-spiger/custom_model.git
- branch：master
- commit_id：8bcd8e1
- weights：https://download.fdwxhb.com/data/04_FMSH-100AI/100AI/04_modelzoo/modelzoo_pub/weights/pytorch/moderntcn/

## 2. **保存模型**

**目的：将模型保存成可以被AI编译器编译的形态**

1）根据模型来源中的地址下载，或者使用Moderntcn工程进行训练，下载或者训练完成后，将weights存放于 `/checkpoints`文件夹中

<div style="background-color: #FFFFCC; color: #000000; padding: 10px; border-left: 5px solid #FFA500;">
注意：

* 有时开源的weights url可能会变更。如果上述weights url失效，请根据原工程相应的branch以及commit版本寻找正确的下载链接

* 若上述weights url永久失效，请联系本模型库相关人员获取权限下载
  
  </div>

2）根据模型来源中的地址，下载指定commit id版本的源代码，文件夹名称要设置为：0_moderntcn，同时按照训练代码readme文件中dataset项下载相关数据集，解压至工程dataset文件夹下

```shell
# 在此模型根目录
mkdir 0_moderntcn
git clone -b master https://gitee.com/mxh-spiger/custom_model.git 
cd Moderntcn
git checkout 8bcd8e1
```

将Moderntcn内容拷贝至0_moderntcn文件夹下

3）进入1_scripts执行保存模型脚本,此时csv数据会被处理成ftmp数据，保存在qset以及3_deploy下的io文件夹中，用于后续量化、测试,其他脚本的允许也需添加下列参数。

```shell
# 在此模型根目录,以预测模型为例
cd 1_scripts

python 1_save.py --task_name long_term_forecast --is_training 0 --model_id ETTh1 --model ModernTCN --root_path ../0_moderntcn/ModernTCN-Long-term-forecasting/all_datasets/ETT-small --data_path ETTh1.csv --data ETTh1 --features M --seq_len 336 --pred_len 96 --ffn_ratio 1 --patch_size 8 --patch_stride 4 --num_blocks 1 --large_size 51 --small_size 5 --dims 64 64 64 64 --head_dropout 0.0 --enc_in 7 --dropout 0.3 --itr 1 --train_epochs 100 --batch_size 1 --patience 20 --learning_rate 0.0001 --des Exp --lradj type3 --use_multi_scale False --small_kernel_merged False
```

**1_scripts提供脚本说明：**

- **环境要求：**AI compiler对**导出框架模型时**使用的**框架版本**有要求。既以下脚本中所有导出模型的脚本`1_save.py  `，必须在要求的框架版本下执行，其他脚本不限制。要求的版本：
  
  - **pytorch**：支持pytorch1.9.0、pytorch2.0.1两个版本的原生网络模型文件（.pt格式），以及pytorch框架保存为onnx（opset=17）格式的模型文件（.onnx格式）
  - **paddle**：仅支持PaddlePaddle框架保存为onnx（opset=11）格式的模型文件（.onnx格式），不支持框架原生网络模型文件
  - **darknet**：支持Darknet框架原生网络模型[GitHub - pjreddie/darknet: Convolutional Neural Networks](https://github.com/pjreddie/darknet)

- 0_infer.py                              >可以推理一张图并得到最终结果，模型原始权重会从 `/weights    `中寻找，需要您预先下载

- 1_save.py                              >保存模型，保存好的用于AI编译器的模型，会存放在 `/2_compile/fmodel`

- 2_save_infer.py                    >用修改后保存的模型做前向推理，验证保存的模型与原模型是否一致

# 2.**编译环境准备**

请参考[2.1Windows编译环境准备](https://gitee.com/mxh-spiger/tutorial-runtime/tree/rt3.0.0)进行精度测试环境配置。

- os: windows

- [cmake3.28](https://github.com/Kitware/CMake/releases/download/v3.28.1/cmake-3.28.1-windows-x86_64.msi)

- [visualstudio2022](https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&passive=false&cid=2030)

# 3.使用AI编译器编译模型

目的： 使用[Icraft AI编译器](https://gitee.com/mxh-spiger/icraft-introduction.git)将上一步保存好的**框架模型**转化为**硬件可部署模型**

- **1）相关命名说明：**
  
  1）**fmodel**：frame model                     >用于ai编译器的框架模型
  
  2）**imodel**：icraft model                   >用icraft编译出的模型
  
  3）**qtset**：Quantitative Calibration Set      >量化校准集

- **2）确认已安装正确的icraft版本**
  
  检查方法：打开cmd运行：`icraft --version`
  
  若已正常安装则会显示当前icraft版本，例如：
  
  ```
  Icraft 版本:
   * 3.30.0
  
  CLI 版本:
  3.30.0.0-4be6386(2503281652)
  ```

- **3）执行编译：**
  
  1. **在 `/2_compile`目录下执行编译：**
     
     ```shell
      icraft compile config/moderntcn_ltf_zg.toml
     ```
     
      其中包括编译各阶段产生的中间结果模型和最终用于片上部署的ZG模型，直接被保存到:  3_deploy/modelzoo/moderntcn/imodel,但目前对于该网络。近支持到量化仿真阶段。

# 4. 部署模型

该demo下网络目前只支持ZG网络的量化阶段仿真推理

## C++ runtime:

1.**仿真：**

通过配置3_deploy/modelzoo/moderntcn/cfg/中yaml文件的run_backend字段为host实现模型仿真

```json
imodel:
   ...
   run_backend: host
   ...
```

**编译、执行运行时程序**

```shell
cd 3_deploy/modelzoo/moderntcn
mkdir build_win
cd build_win
cmake ..
cmake --build . --config Release
./Release/moderntcn.exe ../cfg/moderntcn_ltf.yaml
```

注意：如果使用visualstudio打开sln进行调试，需要右键工程-属性-调试-环境中配置`./Release/moderntcn.exe ../cfg/moderntcn_ltf.yaml`

# 5. 精度测试

1. **数据集准备**
* 若正确运行/1_scripts文件夹下代码，测试数据集已被处理为ftmp格式保存在`3_deploy\modelzoo\moderntcn\io\input`

* 如需测试其他数据集，请参考`/1_scripts/1_save.py`文件。需自行将输入进行预处理，并存放于`3_deploy\modelzoo\moderntcn\io\input`,并准备对应的input.txt
2. **精度测试**

使用moderntcn.yaml进行精度测试，执行以下命令

```shell
./Release/moderntcn.exe ../cfg/moderntcn_ltf.yaml
```

注意：如果使用visualstudio打开sln进行调试，需要右键工程-属性-调试-环境中配置`./Release/moderntcn.exe ../cfg/moderntcn_ltf.yaml`

# 6. 模型性能记录

| moderntcn_ltf | input shape | hard time | qt_strategy | mae      | mse      |
| ------------- | ----------- | --------- | ----------- | -------- | -------- |
| float         | [1, 336, 7] | -         | -           | 0.394449 | 0.368657 |
| fp16          | [1, 336, 7] | -         | -           | 0.386322 | 0.356652 |
