مرحبًا Tensorflow ،
في الآونة الأخيرة ، كنت أستخدم وظيفة argmax لكنني دائمًا ما أضع tf.stop_gradient قبل استخدامها. ومع ذلك ، عندما أقوم بإزالة stop_gradient ، لا يزال tensorflow يعمل بشكل جيد.
ربما أسيء فهم شيء ما ، لكن argmax ليس وظيفة قابلة للتفاضل. كيف لا يزال backprop يعمل عند إزالته؟ ألا يجب إلقاء خطأ عند اجتياز argmax بدون أي stop_gradient؟
إذا كان من الممكن التفريق بين argmax ، فسأكون ممتنًا للغاية لأي مورد يوضح كيفية القيام بذلك. شكرا TF!
يتم تحديد التدرج في كل مكان تقريبًا ، لذلك يمكن تعريفه عمليًا. إنه ليس مفيدًا جدًا ، لذلك فهو غير مسجل في هذا المرجع في TensorFlow.
x = tf.Variable([1., 1])
z = tf.argmax(x, 0)
sess = create_session()
xgrad = tf.gradients(z, x)
sess.run(tf.initialize_all_variables())
sess.run(xgrad)
LookupError: No gradient defined for operation 'ArgMax' (op type: ArgMax)
التعليق الأكثر فائدة
يتم تحديد التدرج في كل مكان تقريبًا ، لذلك يمكن تعريفه عمليًا. إنه ليس مفيدًا جدًا ، لذلك فهو غير مسجل في هذا المرجع في TensorFlow.