import numpy as np
from sklearn.neural_network import MLPClassifier
from sklearn.linear_model import LinearRegression
from scipy.io.wavfile import read
from scipy.stats import entropy

# Load training and test data
X_train = read('../X_train.wav')[1].reshape(-1, 784)
y_train = (read('../y_train.wav')[1] * 9).astype(int)
X_test = read('../X_test.wav')[1].reshape(-1, 784)
y_test = (read('../y_test.wav')[1] * 9).astype(int)
X20 = X_test[:1000]
yt20 = y_test[:1000]

w = np.linspace(100,1 * 2 * np.pi,100)
f = MLPClassifier()

i=0
while True:
    idx = np.random.randint(0,60000,100)
    X = X_train[idx]
    X0 = X.copy()
    yt = y_train[idx]
    for k in range(100):
        X += 0.001 * np.sin(w[k] * X)
        f.partial_fit(X,yt,classes=range(10))
    f.partial_fit(X0,yt,classes=range(10))
    print(i, f.score(X20,yt20), f.loss_)
    i+=1


