Handling Exceptions in the Generated .npy File Names in Batches
When generating dump data of a TensorFlow model, the names of some .npy files may be truncated due to the tfdbg or operating environment. As a result, the .npy file names may not meet the naming requirements, and dump file conversion may fail.
Perform the following steps to re-generate the .npy files:
- The script names and paths in this document are used as examples. Replace them as required.
- After batch processing, if the dump file of an operator exists but the comparison result is NaN, check whether the {op_name} field of the dump file name of the operator is the same as the TensorFlow operator name. If not, manually change {op_name} to the TensorFlow operator name. If a slash (/) exists, replace it with an underscore (_).
- Execute the TensorFlow project.
In the interactive debugger command line, enter run to run the script.
- Run lt > tensor_name to temporarily store all tensor names to a file.
- Create an executable script, for example, pt_cmd.sh, to obtain the tensor_index corresponding to tensor_name in the tensor_name file.
The script content is as follows:
#!/bin/bash timestamp=$[$(date +%s%N)/1000] index=1 while read -r line do tensor_index=`echo $line | awk '{print $4}'` echo "pt "$tensor_index" -n 0 -w "$((index++))"."$timestamp".npy" >> $2 done < $1Grant the execute permission on the pt_cmd.sh script and execute the script.
bash pt_cmd.sh tensor_name tensor_name.txt
- Go back to the tfdbg command line, run the script, and paste and execute the content in the tensor_name.txt file generated in the previous step to save all .npy files.
- Move the generated .npy files to a new folder, for example, npy_dir.
- Create an executable script, for example, index_to_tensorname.sh, and run the script to change the .npy file names in batches.
The script content is as follows:
#!/bin/bash timestamp=$[$(date +%s%N)/1000] while read -r line do tensor_index=`echo $line | awk '{print $2}'` real_file=`echo $line | awk '{print $6}'` changed1_tensor_index=${tensor_index//\//_} changed2_tensor_index=${changed1_tensor_index//:/.} echo $2/$real_file $2/$changed2_tensor_index"."$timestamp".npy" if [ -r $2/$real_file ] then mv $2/$real_file $2/$changed2_tensor_index"."$timestamp".npy" fi done < $1Grant the execute permission on the index_to_tensorname.sh script and execute the script.
bash index_to_tensorname.sh tensor_name.txt npy_dir
Parent topic: Extended Functions