数据预处理使用tf.keras.backend.zero生成变量,训练报错变量未初始化
2025/03/28
127
问题信息
| 问题来源 | 产品大类 | 产品子类 | 关键字 | 
|---|---|---|---|
| 官方 | 模型训练 | 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]),
}


