---
title: 离线模型支持动态维度
description: "为支持Transformer等网络模型在输入Tensor维度不确定的场景，ATC工具提供了--dynamic_dims参数实现ND格式下任意维度的档位设置。ND表示支持任意格式。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/atctool/atlasatc_16_0011.html
sourcePath: /source/zh/canncommercial/900/devaids/atctool/atlasatc_16_0011.html
indexId: 40e95314857fae7fc00c864abda4a5453ca3234a8208bb7b2813aefba4cf868f67
---
# 离线模型支持动态维度

#### 场景介绍

为支持Transformer等网络模型在输入Tensor维度不确定的场景，ATC工具提供了--dynamic_dims参数实现ND格式下任意维度的档位设置。ND表示支持任意格式。


#### 转换方法

本章节以TensorFlow框架ResNet50网络模型为例进行演示，单击Link(https://gitee.com/ascend/ModelZoo-TensorFlow/tree/master/TensorFlow/contrib/cv/resnet50_for_TensorFlow)，根据页面提示获取ResNet50网络模型文件（*.pb）。

1. 以CANN软件包运行用户登录开发环境，将模型文件上传到开发环境任意路径，例如上传到$HOME/module/目录下。
2. 执行如下命令生成离线模型。（如下命令中使用的目录以及文件均为样例，请以实际为准）

```
atc --model=
$HOME
/module
/resnet50_tensorflow_1.7.pb
--framework=3 --output=
$HOME
/module
/out
/
tf_resnet50
--soc_version=
<soc_version>
--input_shape=
"
Placeholder:-1,-1,-1,3"
--dynamic_dims=
"1,224,224;8,448,448"
--input_format=ND
```

关键参数解释如下：

  - --dynamic_dims：设置ND格式下动态维度档位。
  - --input_shape：指定模型输入数据的shape，配合--dynamic_dims参数使用。
  - --input_format：指定Format为ND格式。
  - --model：ResNet50网络模型文件所在路径。
  - --framework：原始框架类型，3表示TensorFlow。
关于参数的详细解释请参见参数说明。若提示如下信息，则说明模型转换成功，若模型转换失败，请参见“错误码参考(https://www.hiascend.comdocument/detail/zh/canncommercial/900/maintenref/troubleshooting/troubleshooting_0224.html)”章节进行辅助定位。```
ATC run success, welcome to the next use.
```


成功执行命令后，在--output参数指定的路径下，可查看离线模型。
模型转换完成后，在生成的om离线模型中，会新增一个输入（如图1中红框中的Data输入），在模型推理时通过该新增的输入提供具体的维度值。例如，a输入的维度为动态的，在om离线模型中，会有与a对应的b输入来描述a的维度值。
图1 包含动态维度的离线模型
