übung 3 fertig
parent
d9efd7c0ff
commit
cd7ec4b7a6
|
|
@ -3,7 +3,7 @@ import nnwplot
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
|
||||||
def ErrorRate(Y, T):
|
def error_rate(Y, T):
|
||||||
if Y.ndim == 1 or Y.shape[0] == 1:
|
if Y.ndim == 1 or Y.shape[0] == 1:
|
||||||
errors = Y - T
|
errors = Y - T
|
||||||
return errors.sum() / Y.size
|
return errors.sum() / Y.size
|
||||||
|
|
@ -29,15 +29,15 @@ class SLN:
|
||||||
for i in range(self.dIn):
|
for i in range(self.dIn):
|
||||||
value += X[i, n] * self._W[i][0]
|
value += X[i, n] * self._W[i][0]
|
||||||
net[n] += value + self._b[0][0]
|
net[n] += value + self._b[0][0]
|
||||||
return net >= 0
|
return net
|
||||||
|
|
||||||
def delta_train(self, X, T, eta, maxIter, maxErrorRate):
|
def delta_train(self, X, T, eta, maxIter, maxErrorRate):
|
||||||
N = X.shape[1] # Anzahl Trainingsdaten
|
N = X.shape[1] # Anzahl Trainingsdaten
|
||||||
plt.ion() # interactive mode on
|
plt.ion() # interactive mode on
|
||||||
for it in range(maxIter):
|
for it in range(maxIter):
|
||||||
Y = self.neuron(X) # nur ein Aufruf
|
Y = self.neuron(X) # nur ein Aufruf
|
||||||
err = ErrorRate(Y, T)
|
err = error_rate(Y, T)
|
||||||
if (it % 20) == 0:
|
if (it % 10) == 0:
|
||||||
print('#{} err:{}\n{}\n{}'.format(it, err, self._W, self._b))
|
print('#{} err:{}\n{}\n{}'.format(it, err, self._W, self._b))
|
||||||
nnwplot.plotTwoFeatures(X, T, self.neuron)
|
nnwplot.plotTwoFeatures(X, T, self.neuron)
|
||||||
plt.pause(0.05) # warte auf GUI event loop (je nach python Version notwendig oder nicht)
|
plt.pause(0.05) # warte auf GUI event loop (je nach python Version notwendig oder nicht)
|
||||||
|
|
@ -45,7 +45,6 @@ class SLN:
|
||||||
break
|
break
|
||||||
# update _W
|
# update _W
|
||||||
for n in range(N):
|
for n in range(N):
|
||||||
error = T[n] - Y[n]
|
|
||||||
for j in range(self.dIn):
|
for j in range(self.dIn):
|
||||||
weighted_error = err * X[j, n]
|
weighted_error = err * X[j, n]
|
||||||
to_learn = weighted_error * eta
|
to_learn = weighted_error * eta
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue