Example #1
0
'''
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])
Example #2
0
            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)

            ek = nextEpoch(lrk=lrk, lr=lr, epochCode=epochCode)
            #             sleepPeriod = defSleepPeriod if ek < 2 else defSleepPeriod / 2.0
Example #3
0
        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)
            
            ek = nextEpoch(lrk=lrk, lr=lr, epochCode=epochCode)
#             sleepPeriod = defSleepPeriod if ek < 2 else defSleepPeriod / 2.0
            
            # Speculated run ...
            fann.config(momentum = mk, learning_rate = lrk)
            rmsePost=fann.train(measurement.numberOfUsers(), (cpu, mem), trainTimes=1, revert = True)
            
            lrkBuff = lrk