深度学习15 基于keras的知识蒸馏2(实现kl loss和温度T)

本文讲述的知识蒸馏基于迁移学习所展开,所以对迁移学习(教师网络)中的一些细节有所要求,具体请见深度学习3 使用keras进行迁移学习,主要是指对教师网络的最后一个dense层不能使用激活函数,应添加一个激活层进行激活输出,这样子方便移除激活函数,自行对数据进行升温,然后再激活。

1、导入基本库、创建学生模型

重点说明:(不关注训练速度可不必理会)

通过该代码可以设置使用16位的浮点数进行训练,可以提升batch size,提升运输速度

from tensorflow.keras.mixed_precision import experimental as mixed_precision
#混合精度训练设置,gpu使用 “mixed_float16” tpu使用“mixed_bfloat16”
policy = mixed_precision.Policy('mixed_float16')
mixed_precision.set_policy(policy)

但是,由于float16会导致数值溢出的情况,为了保证精度,需要在模型的最后一层将网络的数据类型强制为float32



上一篇:dremio 17 混合类型的问题


下一篇:Git 撤销提交的commit