From dac0a4a0cde1ff0454cf8825b89fb4bc663502ac Mon Sep 17 00:00:00 2001 From: art Date: Thu, 5 Mar 2020 12:28:16 -0600 Subject: [PATCH] analysis.py v 1.1.13.000 --- .../__pycache__/analysis.cpython-37.pyc | Bin 33778 -> 34099 bytes analysis-master/analysis/analysis.py | 91 ++++++++++++++---- 2 files changed, 73 insertions(+), 18 deletions(-) diff --git a/analysis-master/analysis/__pycache__/analysis.cpython-37.pyc b/analysis-master/analysis/__pycache__/analysis.cpython-37.pyc index 0dbe6b5802ece4c6efa567ef02f0e3a0d4bff5dc..e2c59aa32a88df5185bf903c93398bf8442fd8d1 100644 GIT binary patch delta 9426 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 delta 9070 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 diff --git a/analysis-master/analysis/analysis.py b/analysis-master/analysis/analysis.py index 36e17a08..b73d37a3 100644 --- a/analysis-master/analysis/analysis.py +++ b/analysis-master/analysis/analysis.py @@ -7,10 +7,12 @@ # current benchmark of optimization: 1.33 times faster # setup: -__version__ = "1.1.12.006" +__version__ = "1.1.13.000" # changelog should be viewed using print(analysis.__changelog__) __changelog__ = """changelog: + 1.1.13.000: + - fixed all regressions to now properly work 1.1.12.006: - fixed bg with a division by zero in histo_analysis 1.1.12.005: @@ -268,6 +270,8 @@ import numba from numba import jit import numpy as np import math +import scipy +from scipy import * import sklearn from sklearn import * import torch @@ -346,24 +350,62 @@ def regression(ndevice, inputs, outputs, args, loss = torch.nn.MSELoss(), _itera if 'lin' in args: # formula: ax + b - model = Regression().SGDTrain(Regression.LinearRegKernel(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor([outputs]).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) - params = model[0].parameters - params[:] = map(lambda x: x.item(), params) - regressions.append((params, model[1][::-1][0])) + try: + + X = np.array(inputs).reshape(-1,1) + y = np.array(outputs) + + model = sklearn.linear_model.LinearRegression().fit(X, y) + + ret = model.coef_.flatten().tolist() + ret.append(model.intercept_) + + regressions.append((ret, model.score(X,y))) + + except Exception as e: + + print(e) + pass if 'log' in args: # formula: a log (b(x + c)) + d - model = Regression().SGDTrain(Regression.LogRegKernel(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor(outputs).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) - params = model[0].parameters - params[:] = map(lambda x: x.item(), params) - regressions.append((params, model[1][::-1][0])) + try: + + X = np.array(inputs) + y = np.array(outputs) + + def func(x, a, b, c, d): + + return a * np.log(b*(x + c)) + d + + popt, pcov = scipy.optimize.curve_fit(func, X, y) + + regressions.append((popt.flatten().tolist(), None)) + + except Exception as e: + + print(e) + pass if 'exp' in args: # formula: a e ^ (b(x + c)) + d - model = Regression().SGDTrain(Regression.ExpRegKernel(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor(outputs).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) - params = model[0].parameters - params[:] = map(lambda x: x.item(), params) - regressions.append((params, model[1][::-1][0])) + try: + + X = np.array(inputs) + y = np.array(outputs) + + def func(x, a, b, c, d): + + return a * np.exp(b*(x + c)) + d + + popt, pcov = scipy.optimize.curve_fit(func, X, y) + + regressions.append((popt.flatten().tolist(), None)) + + except Exception as e: + + print(e) + pass if 'ply' in args: # formula: a + bx^1 + cx^2 + dx^3 + ... @@ -385,12 +427,25 @@ def regression(ndevice, inputs, outputs, args, loss = torch.nn.MSELoss(), _itera regressions.append(plys) - if 'sig' in args: # formula: a sig (b(x + c)) + d | sig() = 1/(1 + e ^ -x) + if 'sig' in args: # formula: a tanh (b(x + c)) + d - model = Regression().SGDTrain(Regression.SigmoidalRegKernelArthur(len(inputs)), torch.tensor(inputs).to(torch.float).to(device), torch.tensor(outputs).to(torch.float).to(device), iterations=_iterations, learning_rate=lr, return_losses=True) - params = model[0].parameters - params[:] = map(lambda x: x.item(), params) - regressions.append((params, model[1][::-1][0])) + try: + + X = np.array(inputs) + y = np.array(outputs) + + def func(x, a, b, c, d): + + return a * np.tanh(b*(x + c)) + d + + popt, pcov = scipy.optimize.curve_fit(func, X, y) + + regressions.append((popt.flatten().tolist(), None)) + + except Exception as e: + + print(e) + pass return regressions