Предоставление решения здесь (Раздел ответов), даже если оно присутствует в разделе комментариев, для пользы сообщества.
Как правильно заметил jdehesa, каждый раз, когда вы вызываете run
тензор gram
получит новое случайное значение, потому что вы используете tf.random
. Чтобы получить одинаковое значение для каждого run
, используйте tf.constant
.
Код,
print(sess.run(gram))
print(sess.run(outputs))
можно заменить на, что решило проблему
print(sess.run([gram, outputs]))
Завершено рабочий код показан ниже:
import tensorflow as tf
with tf.compat.v1.Session() as sess:
inputs=tf.ones((2,10,10,5))
# generate random tensor in shape (10,10) filled with random number from 0 to 100
gram=tf.random.uniform(shape=(10,10), minval=0, maxval=100,dtype=tf.int32)
# defining a column vector filled with 10,20 ....
thresh=tf.constant([0,10,20,30,40,50,60,70,80,90], shape=[10,1],dtype=tf.int32)
# calculate less
outputs=tf.math.less(gram,thresh)
print(*sess.run([gram, outputs]), sep='\n')
Вывод:
[[79 44 24 67 53 90 0 57 74 86]
[47 17 24 81 16 12 22 52 63 70]
[17 94 71 76 23 66 76 59 77 19]
[17 43 12 90 27 28 27 89 39 20]
[22 49 38 49 56 70 77 40 71 13]
[29 73 2 45 30 2 88 65 65 88]
[79 15 31 44 19 2 74 4 7 35]
[89 67 76 66 4 14 63 29 90 6]
[86 51 61 17 79 78 64 67 33 63]
[45 16 30 93 75 42 86 93 63 84]]
[[False False False False False False False False False False]
[False False False False False False False False False False]
[ True False False False False False False False False True]
[ True False True False True True True False False True]
[ True False True False False False False False False True]
[ True False True True True True False False False False]
[False True True True True True False True True True]
[False True False True True True True True False True]
[False True True True True True True True True True]
[ True True True False True True True False True True]]