Exemple #1
0
def save_weights():
    #loop through all perceptrons and save weights to file
    weights = []
    for percep in perceptrons:
        weights.append(percep.label + ":" + str(percep.weight) + '\n')
    fm.write_file('data/weights.txt', weights, 'w+')
    return
Exemple #2
0
def check_progress():
    tmp = fm.read_file("data/progress.txt")
    if tmp != None:
        return tmp
    else:
        print("Progress File Not Found: Creating One...")
        fm.write_file("data/progress.txt", '', "w+")
        print("Progress File Created!")
        return []
Exemple #3
0
def get_user():
    tmp = fm.read_file("data/user.txt")
    if tmp != None:
        return tmp
    else:
        print("User File Not Found: Creating One...")
        user_email = input('User Email: ') + "\n"
        print("Retrieving User Token...")
        token = json.dumps(get_token(user_email))
        print("Token Collected!")
        fm.write_file("data/user.txt", [user_email, token], 'w')
        return [user_email, token]
Exemple #4
0
def save_progress(last_output):
    fm.write_file("data/progress.txt", last_output + '\n', 'a')
    return
Exemple #5
0
def save_hash(line):
    fm.write_file('data/hashes.txt', line, 'a')
    return
Exemple #6
0
def save_training_data(target, blob):
    #save server challenge and answer in a training file
    line = target + ":" + blob + "\n"
    fm.write_file('data/scipio_training_data.txt', line, 'a')
Exemple #7
0
def execute():
    counter = 0
    streak = 0
    top_streak = 0
    time_start = time.time()
    while True:
        (targets, blob) = request()

        #set all outputs
        for percep in perceptrons:
            percep.input = compute_frequency(blob, percep.chunk)
            percep.get_output()

        count = {}
        for percep in perceptrons:
            if percep.output == 1 and targets.__contains__(percep.label):
                if percep.label in count.keys():
                    count[percep.label] = count[percep.label] + 1
                else:
                    count[percep.label] = 1

        try:
            guess = max(count, key=count.get)

            #if confidence low ie low fire rate .. raise and pull
            net_conf = int(count.get(guess))
            if net_conf <= confidence:
                print('low answer confidence...low fire[' +
                      str(int(count.get(guess))) + "]")
                raise ('')

            print("Guess:\t" + guess + '\tConfidence: ' + str(net_conf))

            response = solve(guess)

            correct_resp = response.json()['correct']
            target = response.json()['target']
            accuracy = response.json()['accuracy']

            try:
                hash_resp = response.json()['hash']
                print("HASH COLLECTED!")
                time_stop = time.time()
                time_total = time_stop - time_start
                save_hash("Streak: " +
                          str(fm.read_file('data/top_streak.txt')) +
                          "Correct: " + str(correct_resp) + "\tAccuracy: " +
                          str(accuracy) + "\tTotal Time: " + str(time_total) +
                          "\nHash: " + hash_resp + "\n")
                # ask_hash(email)
            except:
                hash_resp = "None"

            print('Answer: ' + target + '\tNumber: ' + str(correct_resp) +
                  "\tAccuracy: " + str(accuracy))

            if (target == guess):
                streak = streak + 1
                # if streak > top_streak:
                #     top_streak=streak
                print("streak: " + str(streak) + '\n')
            else:
                if int(fm.read_file('data/top_streak.txt')) < streak:
                    fm.write_file('data/top_streak.txt', top_streak, 'w+')
                print('streak reset...\n')
                streak = 0

            for percep in perceptrons:
                percep.adjust_weight(target)
                percep.mod = random.choice([0, 1])

            counter = counter + 1

            save_training_data(target, blob)

            #save weights every 10 cycles
            if counter % 10 == 0:
                print("Weights saved!")
                save_weights()

        except:
            pass
    return