云优采集接口(网络精度未达预期时如何解决算子精度问题?-八维教育)

优采云 发布时间: 2021-12-11 06:12

  云优采集接口(网络精度未达预期时如何解决算子精度问题?-八维教育)

  查看PDF

  转储数据采集

  链接复制成功!

  更新时间:2021/12/09 GMT+08:00

  概述

  当训练网络的准确率达不到预期时,可以使用采集训练过程中各个算子的运算结果(即Data Dump数据),然后使用准确率对比工具和行业标准算子(如TensorFlow)将计算结果与数据偏差进行比较,从而帮助开发者快速解决算子精度问题。目前支持采集的operator数据主要有:

  

  默认训练过程不会采集操作员转储数据。如果您需要采集并分析数据,您可以选择以下两种方法之一:

  使用注意事项

  修改Estimator模式,查看迁移脚本中是否有“init_resource”。

  if __name__ == '__main__':

session_config = tf.ConfigProto()

custom_op = session_config.graph_options.rewrite_options.custom_optimizers.add()

custom_op.name = "NpuOptimizer"

# enable_dump:是否开启Dump功能

custom_op.parameter_map["enable_dump"].b = True

# dump_path:dump数据存放路径,该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限

custom_op.parameter_map["dump_path"].s = tf.compat.as_bytes("/home/HwHiAiUser/output")

# dump_step:指定采集哪些迭代的Dump数据

custom_op.parameter_map["dump_step"].s = tf.compat.as_bytes("0|5|10")

# dump_mode:Dump模式,取值:input/output/all

custom_op.parameter_map["dump_mode"].s = tf.compat.as_bytes("all")

(npu_sess, npu_shutdown) = init_resource(config=session_config)

tf.app.run()

shutdown_resource(npu_sess, npu_shutdown)

close_session(npu_sess)

  在迁移的脚本中找到“npu_run_config_init”:

  session_config = tf.ConfigProto(allow_soft_placement=True)

run_config = tf.estimator.RunConfig(

train_distribute=distribution_strategy,

session_config=session_config,

save_checkpoints_secs=60*60*24)

classifier = tf.estimator.Estimator(

model_fn=model_function, model_dir=flags_obj.model_dir, config=npu_run_config_init(run_config=run_config))

  配置相关参数:

  session_config = tf.ConfigProto(allow_soft_placement=True)

custom_op = session_config.graph_options.rewrite_options.custom_optimizers.add()

custom_op.name = 'NpuOptimizer'

# enable_dump:是否开启Dump功能

custom_op.parameter_map["enable_dump"].b = True

# dump_path:dump数据存放路径,该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限

custom_op.parameter_map["dump_path"].s = tf.compat.as_bytes("/home/HwHiAiUser/output")

# dump_step:指定采集哪些迭代的Dump数据

custom_op.parameter_map["dump_step"].s = tf.compat.as_bytes("0|5|10")

# dump_mode:Dump模式,取值:input/output/all

custom_op.parameter_map["dump_mode"].s = tf.compat.as_bytes("all")

run_config = tf.estimator.RunConfig(

train_distribute=distribution_strategy,

session_config=session_config,

save_checkpoints_secs=60*60*24)

classifier = tf.estimator.Estimator(

model_fn=model_function, model_dir=flags_obj.model_dir, config=npu_run_config_init(run_config=run_config))

  如果脚本中的run配置函数,比如runConfig中没有传入session_config参数,则需要自己传入session_config:

  session_config = tf.ConfigProto(allow_soft_placement=True)

custom_op = session_config.graph_options.rewrite_options.custom_optimizers.add()

custom_op.name = 'NpuOptimizer'

# 使能相关配置

custom_op.parameter_map["xxx"].x = xxx

run_config = tf.estimator.RunConfig(

train_distribute=distribution_strategy,

session_config=session_config,

save_checkpoints_secs=60*60*24)

classifier = tf.estimator.Estimator(

model_fn=model_function, model_dir=flags_obj.model_dir, config=npu_run_config_init(run_config=run_config))

  修改sess.run模式,查看迁移的脚本是否有“init_resource”。

  在脚本中找到“npu_config_proto”:

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

sess.run(tf.global_variables_initializer())

interaction_table.init.run()

  配置相关参数:

  config_proto = tf.ConfigProto()

custom_op = config_proto.graph_options.rewrite_options.custom_optimizers.add()

custom_op.name = 'NpuOptimizer'

custom_op.parameter_map["enable_dump"].b = True

custom_op.parameter_map["dump_path"].s = tf.compat.as_bytes("/home/HwHiAiUser/output")

custom_op.parameter_map["dump_step"].s = tf.compat.as_bytes("0|5|10")

custom_op.parameter_map["dump_mode"].s = tf.compat.as_bytes("all")

config = npu_config_proto(config_proto=config_proto)

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

sess.run(tf.global_variables_initializer())

interaction_table.init.run()

  修改tf.keras模式,查看迁移的脚本是否有“init_resource”。

  if __name__ == '__main__':

session_config = tf.ConfigProto()

custom_op = session_config.graph_options.rewrite_options.custom_optimizers.add()

custom_op.name = "NpuOptimizer"

# enable_dump:是否开启Dump功能

custom_op.parameter_map["enable_dump"].b = True

# dump_path:dump数据存放路径,该参数指定的目录需要在启动训练的环境上(容器或Host侧)提前创建且确保安装时配置的运行用户具有读写权限

custom_op.parameter_map["dump_path"].s = tf.compat.as_bytes("/home/HwHiAiUser/output")

# dump_step:指定采集哪些迭代的Dump数据

custom_op.parameter_map["dump_step"].s = tf.compat.as_bytes("0|5|10")

# dump_mode:Dump模式,取值:input/output/all

custom_op.parameter_map["dump_mode"].s = tf.compat.as_bytes("all")

(npu_sess, npu_shutdown) = init_resource(config=session_config)

tf.app.run()

shutdown_resource(npu_sess, npu_shutdown)

close_session(npu_sess)

  在脚本中找到“set_keras_session_npu_config”:

  import tensorflow as tf

import tensorflow.python.keras as keras

from tensorflow.python.keras import backend as K

from npu_bridge.npu_init import *

npu_keras_sess = set_keras_session_npu_config()

#数据预处理...

#模型搭建...

#模型编译...

#模型训练...

  配置相关参数:

  import tensorflow as tf

import tensorflow.python.keras as keras

from tensorflow.python.keras import backend as K

from npu_bridge.npu_init import *

config_proto = tf.ConfigProto()

custom_op = config_proto.graph_options.rewrite_options.custom_optimizers.add()

custom_op.name = 'NpuOptimizer'

custom_op.parameter_map["precision_mode"].s = tf.compat.as_bytes("allow_mix_precision")

npu_keras_sess = set_keras_session_npu_config(config=config_proto)

#数据预处理...

#模型搭建...

#模型编译...

#模型训练...

  父主题:更*敏*感*词*

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线