Um eine kontraktive Autoencoder zu konstruieren, verwendet man einen gewöhnlichen Autoencoder mit der Kostenfunktion Tensorflow Gradienten kontraktive Autoencoder Kosten verursacht nicht konvergiert
dies mit dem MNIST-Datensatz zu implementieren, definiert ich die Kostenfunktion tensorflow mit Verwendung als
def cost(X, X_prime):
grad = tf.gradients(ys=X_prime, xs=X)
cost = tf.reduce_mean(tf.square(X_prime - X)) + tf.reduce_mean(tf.square(grad))
return cost
und AdamOptimizer für Backpropagation verwendet. Die Kosten gehen jedoch nicht niedriger als 0,067, was besonders ist. Ist meine Implementierung der Kostenfunktion falsch?
Edit: Nach dem documentation auf tf.gradients
lesen, die obige Implementierung würde statt berechnet haben. Also meine Frage ist, wie machen Sie Derivate Komponente weise in Tensorflow?