Luc*_*uca 5 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])
Run Code Online (Sandbox Code Playgroud)
...然后使用元组列表执行某些操作grads_vars
.
你可以使用的组合gather
和scatter_update
.这是一个将位置0
和值加倍的示例2
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])
Run Code Online (Sandbox Code Playgroud)
你应该看到
Values before: [array([1, 2, 3], dtype=int32)]
Values after: [array([2, 2, 6], dtype=int32)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5347 次 |
最近记录: |