예제 #1
0
파일: basicNN.py 프로젝트: Xfinax/PSNN
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np
from PSNN import model, layers, activation

netmodel = model([
    layers.dense(2, activation.sigmoid()),
    layers.dense(1, activation.sigmoid())
])

netmodel.debug = True

netmodel.create(inputs=(3, ))

inputs = np.array([
    [0, 0, 1],  #0
    [0, 0, 0],  #0
    [1, 0, 0],  #1
    [1, 1, 1],  #1
    [0, 1, 0],  #1
    [0, 1, 1]  #1
])

targets = np.array([
    [0],
    [0],
    [1],
    [1],
    [1],
    [1],
예제 #2
0
    imgs = glob.glob(directory + "/*.png")
    out = ([], [])
    for loc in imgs:
        img = Image.open(loc).convert('L')  # convert image to 8-bit grayscale
        WIDTH, HEIGHT = img.size
        data = list(img.getdata())  # convert image data to a list of integers
        out[0].append([
            data[offset:offset + WIDTH]
            for offset in range(0, WIDTH * HEIGHT, WIDTH)
        ])
        out[1].append(target)

    return out


netmodel = model()
netmodel.get("PSNN/mnist")

# load images for test
test = np.array(getITArray("mnist/testing", None)[0])

# we dont need train model. The model is already trained
print("try predict")
print("\n")
for sample in test:
    # print image
    print('\n'.join(
        [''.join(['{:4}'.format(item) for item in row]) for row in sample]))
    print("\n")
    # predict with image as inputs
    predict = netmodel.predict(sample)
예제 #3
0
파일: convolve.py 프로젝트: Xfinax/PSNN
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np
from PSNN import model, layers, activation

netmodel = model([
    layers.convolve((2, 2)),
    layers.flatten(),
    layers.dense(1, activation.sigmoid())
])

netmodel.debug = True

netmodel.create(inputs=(3, 3))

inputs = np.array([
    [  # 1
        [1, 0, 1],
        [0, 1, 0],
        [1, 0, 1],
    ],
    [  # 0
        [0, 0, 1],
        [0, 1, 0],
        [1, 0, 0],
    ],
    [  # 0
        [1, 0, 0],
        [0, 1, 0],
        [0, 0, 1],
예제 #4
0
파일: mathsolver.py 프로젝트: Xfinax/PSNN
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#use evolutionFit to solve math problem

import numpy as np
from PSNN import model, layers

netmodel = model([layers.dense(1)])

inaccuracy = 1e-14


def mycubic(model):
    # 2*x*x*x + 5*x*x = 10

    x = model.predict([])[0]
    loss = abs(10 - (2 * x * x * x + 5 * x * x))

    return loss


netmodel.create(inputs=(0, ))

drate = 1
lastlost = 0

while True:
    loss = netmodel.evolutionFit(rate=drate,
                                 replication=200,
                                 lossfunc=mycubic,
예제 #5
0
def getITArray(directory, target):
  imgs = glob.glob(directory + "/*.png")
  out = ([], [])
  for loc in imgs:
    img = Image.open(loc).convert('L')  # convert image to 8-bit grayscale
    WIDTH, HEIGHT = img.size
    data = list(img.getdata()) # convert image data to a list of integers
    out[0].append([data[offset:offset+WIDTH] for offset in range(0, WIDTH*HEIGHT, WIDTH)])
    out[1].append(target)

  return out

netmodel = model([
  layers.flatten(),
  layers.activation(activation.tanh()),
  layers.dense(30, activation.tanh()),
  layers.dense(20, activation.tanh()),
  layers.dense(10, activation.sigmoid())
])

netmodel.debug = True

netmodel.create(
  inputs=(28,28)
)

# get learn data from images
learn = {
  "inputs": [],
  "targets": []
}