准备GPU侧npy数据文件
前提条件
生成npy数据文件
利用TensorFlow的debug工具tfdbg_ascend生成npy文件。详细的操作方法如下:
- 修改TensorFlow训练脚本,在调起模型部分的训练脚本.py文件中修改配置。示例代码如下。
样例一:
- 导入debug插件。
import tfdbg_ascend as dbg
- 在每个step训练启动代码前配置如下代码,例如dump第5个step的数据。
tfdbg.disable() if current_step == 5: tfdbg.enable() tfdbg.set_dump_path('home/test/gpu_dump')
样例二:- 导入debug插件。
import tfdbg_ascend as dbg
- 例如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()
- 注册回调函数(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)
- 导入debug插件。
- 执行训练脚本,训练任务停止后,在指定目录下生成*.npy文件。
- 检查生成的npy文件命名是否符合{op_name}.{output_index}.{timestamp}.npy格式,如图1所示。
- 如果因算子名较长,造成按命名规则生成的npy文件名超过255字符而产生文件名异常,这类算子不支持精度比对。
- 因tfdbg自身原因或运行环境原因,可能存在部分生成的npy文件名不符合精度比对要求,请按命名规则手工重命名。如果不符合要求的npy文件较多,请参见批量处理生成的npy文件名异常情况重新生成npy文件。
- npy文件命名各字段详细介绍请参见数据格式要求。