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