سلام. به کد زیر نگاه کنید چرا تنسورفلو هر بار یه جوابی میده .
x = tf.Variable(1) y = tf.constant(2) assign = tf.assign(x, 5) z = x + y sess = tf.Session() for i in range(10): sess.run(tf.global_variables_initializer()) print(sess.run([assign, z]))
چون دو دستور assign و محاسبه z به صورت موازی انجام میشن در هر بار اجرا مشخص نیست کدام زودتر اجرا میشه به همین خاطر نتایج اشتباه چاپ میشه برای رفع این مشکل چون محاسبه z وابسته به x هستش شما با استفاده از متد control_dependecy این تقدم را برای tensorflow مشخص کنید به صورت زیر:
with tf.control_dependencies([x]) : z = x + y