Quelle est la meilleure façon de mettre en œuvre le poids des contraintes dans TensorFlow?

Supposons que nous avons les poids

x = tf.Variable(np.random.random((5,10)))
cost = ...

Et nous utilisons le GD optimizer:

upds = tf.train.GradientDescentOptimizer(lr).minimize(cost)
session.run(upds)

Comment pouvons-nous mettre en œuvre pour exemple la non-négativité des poids?

J'ai essayé de les tailler:

upds = tf.train.GradientDescentOptimizer(lr).minimize(cost)
session.run(upds)
session.run(tf.assign(x, tf.clip_by_value(x, 0, np.infty)))

Mais cela ralentit ma formation par un facteur 50.

Quelqu'un connais un bon moyen de mettre en œuvre de telles contraintes sur les poids dans TensorFlow?

P. S.: l'équivalent Théano algorithme, j'ai eu

T.clip(x, 0, np.infty)

et il s'est passé en douceur.

  • Comment sur l'utilisation de la tf.nn.relu(x) à chaque fois que vous x de référence, et de laisser le SGD gérer le reste?
  • Je pense que liées GitHub question est ici.
InformationsquelleAutor LDGN | 2015-11-13