Код: Выделить всё
def init_parameters():
W1 = np.random.normal(size=(10, 784)) * np.sqrt(1./(784))
b1 = np.random.normal(size=(10, 1)) * np.sqrt(1./10)
W2 = np.random.normal(size=(10, 10)) * np.sqrt(1./20)
b2 = np.random.normal(size=(10, 1)) * np.sqrt(1./(784))
return W1, b1, W2, b2
< /code>
Это следует за набором данных MNIST. Я понимаю, что входной слой составляет 784 < /code> для каждого
28x28
Моя цель-увеличить количество нейронов в скрытом слое.
Код: Выделить всё
def init_parameters():
W1 = np.random.normal(size=(20, 784)) * np.sqrt(1./(784))
b1 = np.random.normal(size=(10, 1)) * np.sqrt(1./10)
W2 = np.random.normal(size=(10, 20)) * np.sqrt(1./20)
b2 = np.random.normal(size=(10, 1)) * np.sqrt(1./(784))
return W1, b1, W2, b2
< /code>
Это дает мне ошибку при использовании моей функции `forward_prop´ < /p>
def forward_prop(W1, b1, W2, b2, X):
Z1 = W1.dot(X) + b1
A1 = ReLU(Z1)
Z2 = W2.dot(A1) + b2
A2 = softmax(Z2)
return Z1, A1, Z2, A2
< /code>
ошибка: < /p>
-> Z1 = W1.dot(X) + b1
ValueError: operands could not be broadcast together with shapes (20,29400) (10,1)
Код: Выделить всё
def init_parameters():
W1 = np.random.normal(size=(20, 784)) * np.sqrt(1./(784))
b1 = np.random.normal(size=(20, 1)) * np.sqrt(1./10)
W2 = np.random.normal(size=(10, 20)) * np.sqrt(1./20)
b2 = np.random.normal(size=(10, 1)) * np.sqrt(1./(784))
return W1, b1, W2, b2
Подробнее здесь: https://stackoverflow.com/questions/763 ... dden-layer