初始化两层网络和L层神经网络
时间: 2024-02-26 14:05:57 浏览: 50
好的,我来回答你的问题。
对于两层的网络,我们可以使用下面的代码进行初始化:
```python
import numpy as np
def initialize_parameters(n_x, n_h, n_y):
np.random.seed(1)
W1 = np.random.randn(n_h, n_x) * 0.01
b1 = np.zeros((n_h, 1))
W2 = np.random.randn(n_y, n_h) * 0.01
b2 = np.zeros((n_y, 1))
parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2}
return parameters
```
其中,n_x 是输入层的节点数,n_h 是隐藏层的节点数,n_y 是输出层的节点数。这个函数会返回一个字典,包含了初始化后的参数。
对于 L 层神经网络,我们可以使用下面的代码进行初始化:
```python
def initialize_parameters_deep(layer_dims):
np.random.seed(3)
parameters = {}
L = len(layer_dims)
for l in range(1, L):
parameters['W' + str(l)] = np.random.randn(layer_dims[l], layer_dims[l-1]) * 0.01
parameters['b' + str(l)] = np.zeros((layer_dims[l], 1))
return parameters
```
其中,layer_dims 是一个列表,它包含了每一层的节点数。这个函数会返回一个字典,包含了初始化后的参数。
阅读全文