python - 更新 TensorFlow 中的权重子集

标签 python machine-learning tensorflow

有谁知道如何更新前向传播中使用的权重的子集(即只有一些索引)?

我的猜测是,在按如下方式应用 compute_gradients 之后,我也许能够做到这一点:

optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
grads_vars = optimizer.compute_gradients(loss, var_list=[weights, bias_h, bias_v])

...然后对 grads_vars 中的元组列表做一些事情。

最佳答案

您可以结合使用 gatherscatter_update。这是一个将位置 02

的值加倍的示例
indices = tf.constant([0,2])
data = tf.Variable([1,2,3])
data_subset = tf.gather(data, indices)
updated_data_subset = 2*data_subset
sparse_update = tf.scatter_update(data, indices, updated_data_subset)
init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run([init_op])
print "Values before:", sess.run([data])
sess.run([sparse_update])
print "Values after:", sess.run([data])

你应该看到

Values before: [array([1, 2, 3], dtype=int32)]
Values after: [array([2, 2, 6], dtype=int32)]

关于python - 更新 TensorFlow 中的权重子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34935464/

相关文章:

python - sklearn SelectKBest()中如何给score函数设置参数

python - 使用 .score() 方法时出错 : shapes (10719, 1) 和 (16,1) 未对齐 : 1 (dim 1) ! = 16 (dim 0)

r - 如何在 R 中将新向量绘制到 PCA 空间上

python - 什么时候应该使用 tf.train.BytesList、tf.train.FloatList 和 tf.train.Int64List 将数据存储在 tf.train.Feature 中?

tensorflow - 层密集需要 1 个输入,但它收到 2 个输入张量,我该如何更改它

multithreading - Tensorflow REstart 队列运行程序 : different train and test queue

python - 在 Python 中指定没有日期的 datetime.date

python - 为什么这个简单的递归树遍历算法会失败?

python - 为什么 pyserial 在有 11 个参数时说我已经给出了 12 个参数?

python - 如何获取列表内嵌套字典的值?