深度学习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
标签:float16,loss,15,keras,precision,policy,mixed,激活 来源: https://blog.csdn.net/a486259/article/details/120254331