def initialize(layer_dims):
para={}
L=len(layer_dims)
for l in range(1,L):
para['W'+str(l)]=np.random.randn(layer_dims[l],layer_dims[l-1])*0.01
para['b'+str(l)]=np.zeros((layer_dims[l],1))
return para
def forward(X,layer_dims,para):
cache={}
L=len(layer_dims)-1
A_pre = X
for l in range(1,L):
Wl=para['W'+str(1)]
bl=para['b'+str(l)]
Zl = np.dot(Wl,A_pre)+bl
assert(Zl.shape == (Wl.shape[0],A_pre.shape[1]))
layer_dims = [12288, 20, 7, 5, 1]
X的维度是(12288,209)
W1的维度应该是(20,12288)但是在用Wl.shape[0]输出时结果却是20 20
为什么shape[0]会有2个输出结果,Wl.shape[1]也有2个输出结果 :12288 12288
然后在计算上面的代码段时就出现了

是啊这行,Wl=para['W'+str(1)]
这个小写字母l和数字1傻傻分不清啊,小写字母l和大小写字母o不应该作为变量,请参考clean code