我想通过Tensorflow计算Jacobian矩阵。
是)我有的:
def compute_grads(fn, vars, data_num):
grads = []
for n in range(0, data_num):
for v in vars:
grads.append(tf.gradients(tf.slice(fn, [n, 0], [1, 1]), v)[0])
return tf.reshape(tf.stack(grads), shape=[data_num, -1])
Run Code Online (Sandbox Code Playgroud)
fn是损失函数,vars都是可训练的变量,并且data_num是许多数据。
但是,如果我们增加数据数量,则需要花费大量时间来运行该功能compute_grads。有任何想法吗?