def linear_forward(A, W, b):

 Z = W.dot(A) + b

 assert(Z.shape == (W.shape[0], A.shape[1]))

 cache = (A, W, b)

 return Z, cache


이게 뭐야