How Do I Handle 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. In this case, 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.
- 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 < $1
Grant the execute permission on the pt_cmd.sh script and execute the script.
chmod +x pt_cmd.sh
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 generate the .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 < $1
Grant the execute permission on the index_to_tensorname.sh script and execute the script.
chmod +x index_to_tensorname.sh
bash index_to_tensorname.sh tensor_name.txt npy_dir