У меня есть следующий фрагмент кода:
def gram_matrix(A):
"""
Argument:
A -- matrix of shape (n_C, n_H*n_W)
Returns:
GA -- Gram matrix of A, of shape (n_C, n_C)
"""
#print(A.eval()) --> Line#1
#print(tf.transpose(A).eval()) ---> Line#2
### START CODE HERE ### (≈1 line)
GA = tf.matmul(A, tf.transpose(A))
### END CODE HERE ###
return GA
Вышеуказанный метод вызывается следующим образом:
tf.reset_default_graph()
with tf.Session() as test:
tf.set_random_seed(1)
A = tf.random_normal([3, 2*1], mean=1, stddev=4)
GA = gram_matrix(A)
print("GA = \n" + str(GA.eval()))
В этот момент все работает нормально.
Теперь, если я раскомментирую и строку № 1, и строку № 2, я получу неправильное значение в строке № 2 и, следовательно, неверное значение GA.
Если я раскомментирую только строку № 2, я получу правильное значение в строке # 2, но все же другое и неправильное значение GA.
Почему это происходит? Есть ли базовая c концепция TensorFlow, которую мне не хватает?
Спасибо!