---
title: 如何批量处理生成的npy文件名异常情况-昇腾社区
description: 生成的npy文件名与预期不符，造成转换dump数据文件异常。
keywords: 精度比对
url: https://www.hiascend.com/document/caselibrary/detail/topic_0000001285801818-m921Jg4U
section: (其他)
---

# 如何批量处理生成的npy文件名异常情况-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/topic_0000001285801818-m921Jg4U
描述: 生成的npy文件名与预期不符，造成转换dump数据文件异常。
关键词: 精度比对

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

如何批量处理生成的npy文件名异常情况

如何批量处理生成的npy文件名异常情况

2023/04/18

791

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | TensorFlow | 精度比对 |

#### 问题现象描述

生成的npy文件名与预期不符，造成转换dump数据文件异常。

#### 原因分析

TensorFlow模型生成dump数据时，因tfdbg自身原因或运行环境原因，会出现tfdbg截断算子名，导致生成的npy文件名与预期不符，造成转换dump数据文件异常。

#### 解决措施

重新生成npy文件，使得npy文件名符合精度比对要求。具体操作步骤如下所示。

- 本文中脚本名称、路径等均为举例，请根据实际替换。
- 批量处理后，如果遇到某算子的dump文件存在，但是比对结果为NaN，需要检查该算子的dump文件名中的{op_name}是否与TensorFlow算子名称一致，如果不一致需要手动修改dump文件名中的算子字段与TensorFlow算子名称一致。其中如果出现"/"请修改为"_"。

1. 执行TensorFlow工程。

进入调试命令行交互模式后，输入run命令。
2. 执行lt &gt; tensor_name命令将所有tensor的名称暂存到文件里。
3. 创建可执行脚本，如pt_cmd.sh，获取tensor_name文件中tensor_name对应的tensor_index。

脚本内容如下：

```
#!/bin/bash
timestamp=$[$(date +%s%N)/1000]
index=1
while read -r line
do
  tensor_index=`echo $line | awk '{print $4}'`
  echo "pt "$tensor_index" -n 0 -w "$((index++))"."$timestamp".npy" >> $2
done < $1
```

执行以下命令赋予pt_cmd.sh可执行权限并执行脚本。

chmod +xpt_cmd.sh

bashpt_cmd.sh tensor_name tensor_name.txt
4. 回到tfdbg命令行，输入run命令后，将上一步生成的tensor_name.txt文件内容粘贴执行，生成npy文件。
5. 将生成的npy文件，移动到新的文件夹，如npy_dir。
6. 创建可执行脚本，如index_to_tensorname.sh，并执行脚本批量修改npy文件名。

脚本内容如下：

```
#!/bin/bash
timestamp=$[$(date +%s%N)/1000]
while read -r line
do
  tensor_index=`echo $line | awk '{print $2}'`
  real_file=`echo $line | awk '{print $6}'`
  changed1_tensor_index=${tensor_index//\//_}
  changed2_tensor_index=${changed1_tensor_index//:/.}
  echo $2/$real_file $2/$changed2_tensor_index"."$timestamp".npy"
  if [ -r $2/$real_file ]
  then
    mv $2/$real_file $2/$changed2_tensor_index"."$timestamp".npy"
  fi
done < $1
```

执行以下命令赋予index_to_tensorname.sh可执行权限并执行脚本。

chmod +xindex_to_tensorname.sh

bashindex_to_tensorname.shtensor_name.txtnpy_dir

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
