数据预处理使用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]), }
父主题: 模型训练问题(TensorFlow网络)