训练网络精度未达预期时的两种方法-任选一种

优采云 发布时间: 2021-08-17 21:22

  训练网络精度未达预期时的两种方法-任选一种

  查看PDF

  转储数据采集

  链接复制成功!

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

  概述

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

  

  训练过程中默认不使用采集算子的dump数据。如果需要采集并分析数据,可以选择以下两种方式之一:

  使用注意事项

  修改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))

  如果脚本中的运行配置函数,例如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人工客服


线