compare_accuracy

paddle.amp.debugging. compare_accuracy ( dump_path, another_dump_path, output_filename, loss_scale=1, dump_all_tensors=False ) [源代码]

compare_accuracy 是一个精度比对的工具,可以用来比较 float16 和 float32 的 log 数据。

参数

  • dump_path (str): 运行日志的路径,比如数据类型是 float32 的训练日志。

  • another_dump_path (str): 另一份运行日志的路径,比如数据类型是 float16 的训练日志。

  • output_filename (str): 输出 excel 的文件名,用于保存两份日志的比对结果。

  • loss_scale (float, 可选): 训练阶段的 loss_scale,默认是 1。

  • dump_all_tensors (bool, 可选): True 表示 dump 所有的 tensor 数据,False 表示不做处理,当前还不支持这个参数,默认是 False。

返回值

代码示例

import paddle
from paddle.fluid import core
try:
    import xlsxwriter as xlw
except ImportError:
    import subprocess

    subprocess.check_call(
        ['python', '-m', 'pip', 'install', 'xlsxwriter==3.0.9']
    )
    import xlsxwriter as xlw

if core.is_compiled_with_cuda():
    paddle.set_flags(
        {"FLAGS_check_nan_inf": 1, "FLAGS_check_nan_inf_level": 3}
    )
    path = "workerlog_log_dir"
    paddle.fluid.core.set_nan_inf_debug_path(path)
    x = paddle.to_tensor(
        [2, 3, 4, 0], dtype="float32"
    )
    y = paddle.to_tensor(
        [1, 5, 2, 0], dtype="float32"
    )
    z1 = x + y
    out_excel = "compary_accuracy_out_excel.csv"
    paddle.amp.debugging.compare_accuracy(
        path, path, out_excel, loss_scale=1, dump_all_tensors=False
    )