args = parser.parse_args()
number = int(args.number)
iterations = int(args.iterations)

pf = strengthen_functions.PF81
nn = NeuralNetwork(strength_function=pf,
                   image_scale=8,
                   transmission_history_len=10**4)
'''
train_imgs, _ = skl.load_data()
train_imgs = train_imgs[number]
size = len(train_imgs)
'''

# average_img = skl.average_img_by_number(number)
train_imgs = skl.get_imgs_by_number(number)

plotting_strength = True
if plotting_strength: strength_stats = []
start_time = datetime.datetime.now()
for i in range(iterations):
    _, img = random.choice(train_imgs)
    nn.propagate_once(img, gray_max=16)
    if plotting_strength:
        if i % 10 == 0: strength_stats.append(nn.stats()['strength'])
end_time = datetime.datetime.now()

print('%s: ' % number, 'start time:', start_time, 'stop time: ', end_time)

if plotting_strength:
    plt.plot(strength_stats)
예제 #2
0
# import random
# import argparse
import matplotlib as mpl
mpl.use('Agg', warn=False)
import matplotlib.pyplot as plt
from nn_growable import NeuralNetwork
# import mnist
import skl
import utils
# import seaborn as sns
# import sys
import random

iters = 5 * 10**4

imgs_l = [skl.get_imgs_by_number(i) for i in range(10)]
strength_matrix_l = [
    utils.read_pickle('pkl/nn_growable_' + str(i) + '.pkl') for i in range(10)
]

fig, axes = plt.subplots(2, 2, figsize=(10, 5), sharex=True, sharey=False)
axes = axes.flatten()

pfs = [
    lambda img, matrix: NeuralNetwork.validate_linear(
        img, matrix, gray_max=16, power=0, weight=10),
    lambda img, matrix: NeuralNetwork.validate_linear(
        img, matrix, gray_max=16, power=1, weight=10),
    lambda img, matrix: NeuralNetwork.validate_linear(
        img, matrix, gray_max=16, power=3, weight=10),
    lambda img, matrix: NeuralNetwork.validate_threshold(
예제 #3
0
# the number of 0~9 to train NN with
parser = argparse.ArgumentParser()
parser.add_argument('-i', action="store", dest="iterations", default=1000)
parser.add_argument('-j', action="store", dest="num", default=-1)
args = parser.parse_args()
iterations = int(args.iterations)
num = int(args.num)

'''
threshhold = 0.8
weight = 100
print('threshhold %s weight %s' % (threshhold, weight))
'''

if num >=0:
    imgs = skl.get_imgs_by_number(num)
else:
    imgs = skl.get_imgs_by_number()

strength_matrix_l = [utils.read_pickle('pkl/nn_meshed_' + str(i) + '.pkl') for i in range(10)]

correct = .0
trails = .0
for i in range(iterations):
    trails += 1
    label, img = random.choice(imgs)
    scores_a = np.array([NeuralNetwork.validate(img, strength_matrix, gray_max=16.) for strength_matrix in strength_matrix_l])
    if label == random.choice(np.where(scores_a == scores_a.max())[0]):
        correct += 1
        if not (i % 10) and  i > 0:
            # print(round(correct / trails * 100, 2), label, scores_a)
예제 #4
0
from __future__ import print_function
import numpy as np
import random
# import argparse
# import matplotlib as mpl
# mpl.use('Agg', warn=False)
import matplotlib.pyplot as plt
from nn_mnist_jellyfish import NeuralNetwork
# import mnist
import skl
import utils

imgs1 = skl.get_imgs_by_number(0)
imgs2 = skl.get_imgs_by_number(3)

strength_matrix = utils.read_pickle('pkl/nn_mnist_jellyfish_0.pkl')

# for label, img in imgs1:
propagated_1 = []
propagated_2 = []
r = range(np.min([len(imgs1), len(imgs2)]))
index = random.choice(r)
for i in range(10000):
    propagated_1.append(
        NeuralNetwork.validate(imgs1[index][1], strength_matrix))
    propagated_2.append(
        NeuralNetwork.validate(imgs2[index][1], strength_matrix))
propagated_1 = np.array(propagated_1)
propagated_2 = np.array(propagated_2)

fig, axes = plt.subplots(2, 1, figsize=(3, 3))
import argparse
from nn_growable import NeuralNetwork
import skl
import utils

random.seed()

iterations = 50000

validators = [
    lambda img, matrix: NeuralNetwork.validate_original(img, matrix),
    lambda img, matrix: NeuralNetwork.validate_step(img, matrix, threshold=.6),
    lambda img, matrix: NeuralNetwork.validate_linear(img, matrix, power=3, weight=100),
    lambda img, matrix: NeuralNetwork.validate_threshold(img, matrix, power=3, threshhold=.2, weight=10)]

imgs = skl.get_imgs_by_number(1)
label, img = imgs[100]

strength_matrix_l = [utils.read_pickle('pkl/nn_growable_' + str(i) + '.pkl') for i in range(10)]

trails = .0
targets_l = [0] * 10
for i in range(iterations):
    # label, img = random.choice(imgs)
    scores_a = np.array([validators[3](img, strength_matrix) for strength_matrix in strength_matrix_l])
    target = random.choice(np.where(scores_a == scores_a.max())[0])
    targets_l[target] += 1
    trails += 1

targets_a = np.array(targets_l)
print((targets_a / trails * 100).round(2).tolist())
예제 #6
0
parser.add_argument('-n', action="store", dest="mnist_number")
parser.add_argument('-i',
                    action="store",
                    dest="iterations",
                    default=25000,
                    help="default: 25000")
args = parser.parse_args()
mnist_number = int(args.mnist_number)
iterations = int(args.iterations)

# images choice indexes = [181, 100, 333, 100, 3282, 5239, 5070, 893, 2117, 5712]

pf = lambda x: (1 / (1 + np.exp(-1 * 10 * x)) - .5) * 1.8 + .05
nn = NeuralNetwork(strength_function=pf, image_scale=8)

imgs = skl.get_imgs_by_number(mnist_number)
i = random.choice(range(len(imgs)))
img = imgs[i][1]
print('%s: #%s' % (mnist_number, i))

start_time = datetime.datetime.now()

plotting_strength = True
if plotting_strength: strength_stats = []

for i in range(iterations):
    nn.propagate_once(img, gray_max=16)
    if plotting_strength:
        if i % 10 == 0: strength_stats.append(nn.stats()['strength'])

end_time = datetime.datetime.now()