''' Created on 05/06/2014 @author: nikolay ''' from __builtin__ import map import sys import time import collections import logging from os.path import os from sys import maxint from autoscale.FANNWrapper import FANNWrapper from math import * fann = FANNWrapper(topology=(1, 250, 2)); for k in range(1, 1000): for i in range(k, 10000, k): expOutput = [log(i * 10), log(i * 10)] rmse = fann.train(n=i, expOutput=expOutput, trainTimes = 1, revert=False, maxRMSE=0.05) print "Training with i = %d, RMSE: %.4f, output=[%.4f, %.4f]" % (i, rmse, expOutput[0], expOutput[1]) for i in range(1, 10000, 100): result = fann.run(i) rmse = fann.rmse(i, result) print "Result: %d, RMSE: %.4f, output=[%.4f, %.4f]" % (i, rmse, result[0], result[1])
ank = measurement.anomaly if measurement is not None and iteration > 105 else 0 cpu = measurement.normaliseCpuUtil() if measurement is not None else 0 mem = measurement.normaliseRAMUtil() if measurement is not None else 0 if measurement is not None: annomalies.append(ank) serverMeasurements.append(measurement) if measurement is not None and measurement.isValid(): minUsers, maxUsers = (min(measurement.numberOfUsers(), minUsers), max(measurement.numberOfUsers(), maxUsers)) if k % 50 == 0: statHeader(trainingResFile, overwrite=False) rmsePre = fann.rmse(measurement.numberOfUsers(), (cpu, mem)) avgRMSE = rmsePre if len(rmses) == 0 else sum(rmses) / len(rmses) if rmsePre < 0.01: log.info("Predicted well!!! RMSE: %.5f" % (rmsePre)) time.sleep(sleepPeriod) continue rmses.append(rmsePre) run = fann.run(measurement.numberOfUsers()) annPart = 2**len(annomalies) * reduce( lambda x, y: x * y, map(lambda x: sigmoid(x), annomalies)) rmsePart = max(1.0, rmsePre / avgRMSE) lrk = getLrk(k=k,
ank = measurement.anomaly if measurement is not None and iteration > 105 else 0 cpu = measurement.normaliseCpuUtil() if measurement is not None else 0 mem = measurement.normaliseRAMUtil() if measurement is not None else 0 if measurement is not None: annomalies.append(ank) serverMeasurements.append(measurement) if measurement is not None and measurement.isValid() : minUsers, maxUsers = (min(measurement.numberOfUsers(), minUsers), max(measurement.numberOfUsers(), maxUsers)) if k % 50 == 0: statHeader(trainingResFile, overwrite=False); rmsePre = fann.rmse(measurement.numberOfUsers(), (cpu, mem)) avgRMSE = rmsePre if len(rmses) == 0 else sum(rmses) / len(rmses) if rmsePre < 0.01: log.info("Predicted well!!! RMSE: %.5f" % (rmsePre)) time.sleep(sleepPeriod) continue rmses.append(rmsePre) run = fann.run(measurement.numberOfUsers()) annPart = 2**len(annomalies) * reduce(lambda x, y : x * y, map(lambda x : sigmoid(x), annomalies)) rmsePart = max(1.0, rmsePre / avgRMSE) lrk = getLrk(k=k, lr=lr, rmsePart=rmsePart, annPart=annPart, epochCode = epochCode) mk = getMk(k=k, lr=lr, lrk = lrk, epochCode = epochCode)