准备基于GPU运行生成的TensorFlow 2.x原始训练网络npy数据文件

前提条件

生成npy数据文件

利用TensorFlow的debug工具tfdbg_ascend生成npy文件。详细的操作方法如下:

  1. 修改TensorFlow训练脚本,在调起模型部分的训练脚本.py文件中修改配置。示例代码如下。

    样例一:

    1. 导入debug插件。
      import tfdbg_ascend as dbg
    2. 在每个step训练启动代码前配置如下代码,例如dump第5个step的数据。
            tfdbg.disable()
            if current_step == 5: 
              tfdbg.enable()
              tfdbg.set_dump_path('home/test/gpu_dump')
    样例二:
    1. 导入debug插件。
      import tfdbg_ascend as dbg
    2. 例如dump第4个step的数据。dbg.enable不配置时,dump功能默认开启;dump路径不指定时,dump文件默认保存在训练脚本所在路径下。
      class DumpConfig(tf.keras.callbacks.Callback):
          def __init__(self):
              super().__init__()
          def on_batch_begin(self, batch, logs={}):
              if batch == 4:
                  dbg.enable()
                  dbg.set_dump_path("/user/name1/pip_pkg/dump4")
              else:
                  dbg.disable()
    3. 注册回调函数(define callbacks )。
      # define callbacks
              callbacks = [
                  ModelCheckpoint(
                      f'models/model_epochs-{epochs}_batch-{batch_size}_loss-{loss_function}_{Mask2FaceModel.get_datetime_string()}.h5'),
                  LossHistory(batch_size),
                  DumpConfig()
              ]
      	
      # fit the model 调起模型的代码位置
      history = self.model.fit(train_dataset, validation_data=valid_dataset, epochs=1, callbacks=callbacks, verbose=2)

  2. 执行训练脚本,训练任务停止后,在指定目录下生成*.npy文件。
  3. 检查生成的npy文件命名是否符合{op_name}.{output_index}.{timestamp}.npy格式,如图1所示。

    • 如果因算子名较长,造成按命名规则生成的npy文件名超过255字符而产生文件名异常,这类算子不支持精度比对。
    • 因tfdbg自身原因或运行环境原因,可能存在部分生成的npy文件名不符合精度比对要求,请按命名规则手工重命名。如果不符合要求的npy文件较多,请参见批量处理生成的npy文件名异常情况重新生成npy文件。
    • npy文件命名各字段详细介绍请参见数据格式要求
    图1 查询.npy文件