Python 计算时对网络权重的自定义操作

Python 计算时对网络权重的自定义操作,python,tensorflow,neural-network,Python,Tensorflow,Neural Network,我正在使用TensorFlow和Python创建自定义神经网络。在传递每个输入数据之前,我需要更改权重和偏差。网络的结构是常见的(顺序的、有监督的、带反向传播的),唯一的区别是在每次传递之前,我需要进行一些计算 例如,我有一些输入(x),在我将它们传递到网络并计算网络结果(y)之前,在每次传递中,我需要运行一个函数来改变权重。我的问题是,在我计算了新的权重和偏差之后,网络如何能够进一步正常地计算所有其他内容(整个网络计算、损耗和优化函数)?如果可能,我如何达到重量,然后创建额外的自定义步骤?您可

我正在使用TensorFlow和Python创建自定义神经网络。在传递每个输入数据之前,我需要更改权重和偏差。网络的结构是常见的(顺序的、有监督的、带反向传播的),唯一的区别是在每次传递之前,我需要进行一些计算


例如,我有一些输入(x),在我将它们传递到网络并计算网络结果(y)之前,在每次传递中,我需要运行一个函数来改变权重。我的问题是,在我计算了新的权重和偏差之后,网络如何能够进一步正常地计算所有其他内容(整个网络计算、损耗和优化函数)?如果可能,我如何达到重量,然后创建额外的自定义步骤?

您可以使用
tf.assign
操作。链接是。metaflow的这一点也很有用。

您应该首先收集集合中应该更改的所有权重,或者根据变量名称选择变量,然后进行更改,然后将更改后的值分配给原始变量。在sess.run之后,您可以在现实中更改它们

例如:

t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if 'this_' in var.name]
clip_D = [p.assign(tf.clip_by_value(p, -1, 1)) for p in d_vars]

非常感谢。这对我帮助很大。谢谢你的解释!