文档
注册
评分
提单
论坛
小AI

debug_print

功能说明

tik.tikdb对象定义了debug_print语句,方便用户打印算子运行过程中的数据。调试器执行到这行代码时会对表达式求值并将结果打印在屏幕上。

此接口仅应用于仿真环境中开启了start_debug的场景。

函数原型

def debug_print(expr)

参数说明

表1 参数说明

参数名称

输入/输出

含义

expr

输入

字符串形式的一段合法的Python表达式,expr可以使用的变量有TIK DSL当前作用域的Scalar、Expr、ScalarArray和Tensor。其中Scalar、Expr会被求值并替换为Python的float或int类型的数值;ScalarArray中的每个元素会被求值并替换,最后组成一个list返回;Tensor会被替换为与Tensor等价的numpy.ndarray,这个numpy对象的形状、类型和数据都与Tensor一致。

支持的型号

Atlas 200/300/500 推理产品

Atlas 训练系列产品

Atlas 推理系列产品(Ascend 310P处理器)

Atlas A2训练系列产品/Atlas 800I A2推理产品

Atlas 200/500 A2推理产品

返回值

无。

注意事项

  • debug_print打印tik定义的变量,用单或双引号包装起来,直接传入定义的变量名即可。例如:
tensor = tik_instance.Tensor(...)
tik_instance.tikdb.debug_print("tensor")
  • debug_print打印字符串先用单引号,再用双引号包装起来。例如:
tik_instance.tikdb.debug_print('"被打印的字符串"')
  • debug_print打印字符串与tik变量复合的情况,多个复合情况可用逗号隔开。例如:
tik_instance.tikdb.debug_print('"字符串"+str(变量名),"字符串"')
  • 当待打印的tik变量作为类属性出现时,如果该属性有两次赋值并按照代码一写法,debug_print在运行态解析类的属性时调用getattr(self, 'tensor')会指向tensor2,因而打印结果错误;建议不要对待打印的类属性多次赋值,或者使用代码二写法。
# 代码一:打印结果不合预期
self.tensor = tik_instance.Tensor(...) # tensor1
tik_instance.tikdb.debug_print("self.tensor")
self.tensor = tik_instance.Tensor(...) # tensor2

# 代码二:打印结果符合预期
self.tensor = tik_instance.Tensor(...) # tensor1
tmp = self.tensor
tik_instance.tikdb.debug_print("tmp")
self.tensor = tik_instance.Tensor(...) # tensor2
  • debug_print()语句需要定义在你所写的算子代码内,然后在调用完你的算子程序后返回tik_instance,再调用start_debug()接口才能够正确执行debug_print()函数,从而打印出所需要输出信息

调用示例

tik_instance.tikdb.debug_print('字符')
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词