昇腾故障案例详情页

数据预处理中存在资源类算子导致训练异常

更新时间: 2022/08/16

暂无评分

问题信息

问题来源产品大类产品子类关键字
官方模型训练TensorFlow资源类算子、LookupTableFindV2

问题现象描述

执行训练时,提示报错信息。

原因分析

数据预处理中资源类算子LookupTableFindV2在Host侧执行,而当前昇腾AI处理器默认采用计算全下沉模式,即所有的计算类算子(包括资源类算子的初始化图)全部在Device侧执行。数据预处理中的资源类算子和资源类算子的初始化图未在同一设备执行,而出现报错。

解决措施

需要通过使能混合计算能力,将资源类算子的初始化图也留在Host侧执行。

当用户的数据预处理脚本中存在此类API(tf.contrib.lookup下的Table类的API,例如tf.contrib.lookup.HashTable)时,需要手工使能混合计算:

from npu_bridge.npu_init import *

config = tf.ConfigProto()
custom_op = config.graph_options.rewrite_options.custom_optimizers.add()
custom_op.name = "NpuOptimizer"
custom_op.parameter_map["mix_compile_mode"].b =  True
config.graph_options.rewrite_options.remapping = RewriterConfig.OFF
config.graph_options.rewrite_options.memory_optimization = RewriterConfig.OFF

with tf.Session(config=config) as sess:
    sess.run(...)

本页内容

该页面对您有帮助吗?
我要评分