分解前提
分解约束
如果Conv2D层的shape过大,会造成分解时间过长或分解异常中止,为防止出现该情况,执行分解动作前,请先参见如下约束或参考数据:
- 分解工具性能参考数据:
- CPU: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
- 内存: 512G
分解单层卷积:
- shape(512, 512, 5, 5), 大约耗时25秒。
- shape(1024, 1024, 3, 3),大约耗时16秒。
- shape(1024, 1024, 5, 5),大约耗时78秒。
- shape(2048, 2048, 3, 3),大约耗时63秒。
- shape(2048, 2048, 5, 5),大约耗时430秒。
- 内存超限风险提醒:
分解大卷积核存在内存超限风险参考数值:shape为(2048, 2048, 5, 5)的卷积核约占用32G内存。
分解前提
用户将需要张量分解的TensorFlow模型文件和权重文件上传到Linux服务器任意目录下。模型文件为.meta文件,权重文件为.data-0000X-of-0000X文件与.index权重文件索引(.data-0000X-of-0000X权重文件与.index权重文件索引需要配套使用)。
本章节通过训练脚本,生成模型文件和权重文件(.data-0000X-of-0000X文件与.index权重文件索引)为例进行说明。
- 准备训练数据集。
- 若安装昇腾模型压缩工具的服务器能连接网络。
在服务器sample/tensor_decompose/路径创建数据集存放目录,例如:data/mnist(该目录用户可以自行修改)。
执行2中的脚本时,会自动将http://yann.lecun.com/exdb/mnist/链接中的训练和测试数据集下载到data/mnist目录。
- 如果用户环境无法连接网络。
则请在可连通网络的服务器,分别访问如下链接下载相应软件包,然后上传到昇腾模型压缩工具服务器sample/tensor_decompose/data/mnist目录(如果没有data/mnist目录,请先手动创建)。
- MNIST训练数据集获取路径:http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
- MNIST训练数据集标签文件获取路径:http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
- MNIST测试数据集获取路径:http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
- MNIST测试数据集标签文件获取路径:http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
- 若安装昇腾模型压缩工具的服务器能连接网络。
- 通过训练脚本生成模型文件和权重文件。
sample/tensor_decompose目录提供两份TensorFlow训练代码:一份使用Session接口训练,一份使用Estimator接口训练,用户根据实际情况进行选择。切换到sample/tensor_decompose/路径,执行如下命令生成模型文件和权重文件。
python3.7.5 train_sample_session.py --data_path DATA_PATH
或
python3.7.5 train_sample_estimator.py --data_path DATA_PATH
其中,“--data_path”参数用于指定mnist数据集的路径,支持绝对路径和相对路径,必填。
使用样例如下:
python3.7.5 train_sample_session.py --data_path=data/mnist
若提示如下信息,则说明执行成功(如下精度结果只是样例,请以实际环境为准):
Valid Accuracy: 0.9803 //基于mnist数据集的训练精度
- 执行成功后,在sample/tensor_decompose/checkpoints目录,生成模型文件以及权重文件,示例如下:
-rw-r--r-- 1 amct amct 85 Jul 28 04:37 checkpoint //TensorFlow保存模型时保存的检查点 -rw-r--r-- 1 amct amct 10633856 Jul 28 04:37 model.ckpt-200.data-00000-of-00001 //TensorFlow权重文件 -rw-r--r-- 1 amct amct 771 Jul 28 04:37 model.ckpt-200.index //TensorFlow权重文件索引 -rw-r--r-- 1 amct amct 60937 Jul 28 04:37 model.ckpt-200.meta //TensorFlow模型文件