下载
中文
注册

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

问题现象

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

原因分析

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

解决方案

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

原始脚本:

1
2
3
4
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]),
}