---
title: 数据预处理使用tf.keras.backend.zero生成变量，训练报错变量未初始化-昇腾社区
description: 训练报错变量算子未初始化：
keywords: variable was uninitialized
url: https://www.hiascend.com/document/caselibrary/detail/tensorflow_faq_0012
section: (其他)
---

# 数据预处理使用tf.keras.backend.zero生成变量，训练报错变量未初始化-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/tensorflow_faq_0012
描述: 训练报错变量算子未初始化：
关键词: variable was uninitialized

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

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

数据预处理使用tf.keras.backend.zero生成变量，训练报错变量未初始化

数据预处理使用tf.keras.backend.zero生成变量，训练报错变量未初始化

2025/03/28

591

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | TensorFlow | variable was uninitialized |

#### 问题现象描述

训练报错变量算子未初始化：

#### 原因分析

数据预处理使用tf.keras.backend.zero生成变量，变量算子无法下沉到Device侧执行导致变量算子初始化失败。

#### 解决方案

修改训练脚本，不使用tf.keras.backend.zero生成变量，而直接使用TensorFlow原生接口tf.zero以tensor形式在Host侧生成变量。

原始脚本：

```
y = {
   ‘mlm_loss’: tf.keras.backend.zero([1]),
   ‘mlm_acc’: tf.keras.backend.zero([1]),
}
```

修改后脚本：

```
y = {
   ‘mlm_loss’: tf.zero([1]),
   ‘mlm_acc’: tf.zero([1]),
}
```

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决方案
