我尝试在Tensorflow隐私中运行mnist_dpsgd_tutorial.py,并检查渐变的维数。我认为梯度是用dp_optimizer计算的。有没有检查和操作梯度的方法?
发布于 2022-03-03 09:26:32
它是优化器,对于丢失优化器,有一些基本的方法,如下所示,您可以调整到您的方法。
optimizer = tf.keras.optimizers.Adam(
learning_rate=learning_rate, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False,
name='Adam'
)
var1 = tf.Variable(10.0)
var2 = tf.Variable(10.0)
X_var = tf.compat.v1.get_variable('X', dtype = tf.float32, initializer = tf.random.normal((1, 10, 1)))
y_var = tf.compat.v1.get_variable('Y', dtype = tf.float32, initializer = tf.random.normal((1, 10, 1)))
Z = tf.nn.l2_loss((var1 - X_var) ** 2 + (var2 - y_var) ** 2, name="loss")
cosine_loss = tf.keras.losses.CosineSimilarity(axis=1)
loss = tf.reduce_mean(input_tensor=tf.square(Z))
training_op = optimizer.minimize(cosine_loss(X_var, y_var))
init = tf.compat.v1.global_variables_initializer()
loss_summary = tf.compat.v1.summary.scalar('LOSS', loss)
merge_summary = tf.compat.v1.summary.merge_all()
file_writer = tf.compat.v1.summary.FileWriter(logdir, tf.compat.v1.get_default_graph())
with tf.compat.v1.Session() as sess:
if exists(savedir + '\\invader_001') :
## model.load_weights(checkpoint_path)
saver = tf.compat.v1.train.Saver()
saver.restore(sess, tf.train.latest_checkpoint(savedir + '\\invader_001'))
print("model load: " + savedir + '\\invader_001')
init.run()
train_loss, _ = sess.run([loss, training_op], feed_dict={var1:X, var2:Y})
sess.close()
print(train_loss)
print(merge_summary)
print(loss_summary)

https://stackoverflow.com/questions/71333443
复制相似问题