Trên thực tế, tôi đang thực hiện bài tập deeplearning.ai "Tạo nghệ thuật với chuyển giao phong cách thần kinh" trên Coursera. trong chức năng tính_layer_style_cost(a_S, a_G):
a_S = tf.reshape(a_S, [n_H*n_W, n_C])
a_G = tf.reshape(a_G, [n_H*n_W, n_C])
GS = gram_matrix(tf.transpose(a_S))
GG = gram_matrix(tf.transpose(a_G))
Tại sao mã này đưa ra câu trả lời đúng nhưng mã sau thì không:
a_S = tf.reshape(a_S, [n_C, n_H*n_W])
a_G = tf.reshape(a_G, [n_C, n_H*n_W])
GS = gram_matrix(a_S)
GG = gram_matrix(a_G)
Đây là một ví dụ đơn giản cho thấy sự khác biệt giữa hai biểu thức này:
nhập tensorflow astf
tf.InteractiveSession()
x = tf.range(0, 6)
a = tf.reshape(x, [3, 2])
b = tf.transpose(tf.reshape(x, [2, 3]))
in(x.eval())
in(a.eval())
print(b.eval())
kết quả:
[0 1 2 3 4 5]
[[0 1]
[hai mươi ba]
[4 5]]
[[0 3]
[1 4]
[2 5]]
如您所见,Một
Và b
Mặc dù hình dạng giống nhau nhưng nó có sự khác biệt. Điều này là do lần định hình lại đầu tiên sẽ x
“Chia” thành [0 1]
,[hai mươi ba]
Và [4 5]
, và lần định hình lại thứ hai là [0 1 2]
Và [3 4 5]
.
Tôi là một lập trình viên xuất sắc, rất giỏi!