by Anonymous » 17 Aug 2025, 09:54
Ich arbeite daran, zu verstehen, wie ich meine eigene Ann von Grund auf neu erstellt.
Code: Select all
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>
Dies folgt dem MNIST -Datensatz. Ich verstehe, dass die Eingabeschicht für jedes
784 < /code> beträgt28x28
Eingabebild. Für die versteckte Schicht ist es 10 , wenn ich den bereitgestellten Code verstehe. Zuletzt ist die Ausgabeschicht 10 für jede Zahl von 0 bis 9 .
Mein Ziel ist es, die Anzahl der Neuronen in der versteckten Schicht zu erhöhen.
Code: Select all
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>
Dies gibt mir einen Fehler bei der Verwendung meiner Funktion `vorwärts_prop´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>
Fehler: < /p>
-> Z1 = W1.dot(X) + b1
ValueError: operands could not be broadcast together with shapes (20,29400) (10,1)
Aus dem Fehler scheint der B1 nicht übereinstimmt. />
Code: Select all
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
Habe ich das Neuron in der versteckten Schicht tatsächlich erhöht und ist dies der richtige Ansatz für das, was ich erreichen möchte?
Ich arbeite daran, zu verstehen, wie ich meine eigene Ann von Grund auf neu erstellt.[code]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>
Dies folgt dem MNIST -Datensatz. Ich verstehe, dass die Eingabeschicht für jedes
784 < /code> beträgt28x28[/code] Eingabebild. Für die versteckte Schicht ist es 10 , wenn ich den bereitgestellten Code verstehe. Zuletzt ist die Ausgabeschicht 10 für jede Zahl von 0 bis 9 .
Mein Ziel ist es, die Anzahl der Neuronen in der versteckten Schicht zu erhöhen.[code] 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>
Dies gibt mir einen Fehler bei der Verwendung meiner Funktion `vorwärts_prop´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>
Fehler: < /p>
-> Z1 = W1.dot(X) + b1
ValueError: operands could not be broadcast together with shapes (20,29400) (10,1)
[/code]
Aus dem Fehler scheint der B1 nicht übereinstimmt. />
[code]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
[/code]
Habe ich das Neuron in der versteckten Schicht tatsächlich erhöht und ist dies der richtige Ansatz für das, was ich erreichen möchte?