Tensorflow2.0自定义模型训练实现FGM对抗训练代码实现
发布时间
阅读量:
阅读量
TF版本2.2及以上要求
def creat_FGM(epsilon=1.0):
@tf.function
def train_step(self, data):
'''
计算在embedding上的gradient
计算扰动 在embedding上加上扰动
重新计算loss和gradient
删除embedding上的扰动,并更新参数
'''
data = data_adapter.expand_1d(data)
x, y, sample_weight = data_adapter.unpack_x_y_sample_weight(data)
with tf.GradientTape() as tape:
y_pred = model(x,training=True)
loss = loss_func(y,y_pred)
embedding = model.trainable_variables[0]
embedding_gradients = tape.gradient(loss,[model.trainable_variables[0]])[0]
全部评论 (0)
还没有任何评论哟~
