Beispiel #1
0
 def test_jacobian_cnn_11_11(self):
     image = [random.randint(0, 255) for _ in range(2)]
     image = Image(image_data=image, shape=(1, 2))
     cnn_a = CNN(reLU(), (1, 1), (0, 0), name='a')
     cnn_b = CNN(reLU(), (1, 1), (0, 0), name='b')
     model = Model(layers=[
         image,
         cnn_a,
         cnn_b,
     ])
     self._run_derivatives_test(model)
Beispiel #2
0
 def test_jacobian_cnn_33_33_33_dense_11(self):
     image = [random.randint(0, 255) for _ in range(49)]
     image = Image(image_data=image)
     cnn_a = CNN(reLU(), (3, 3), name='a')
     cnn_b = CNN(reLU(), (3, 3), name='b')
     cnn_c = CNN(reLU(), (3, 3), name='c')
     dense = Dense(reLU(), (1, 1), name='d')
     model = Model(layers=[
         image,
         cnn_a,
         cnn_b,
         cnn_c,
         dense,
     ])
     self._run_derivatives_test(model)
Beispiel #3
0
 def test_jacobian_dense_11_cnn_11(self):
     image = [random.randint(0, 255) for _ in range(1)]
     small_image = Image(image_data=image)
     dense = Dense(reLU(), (1, 1))
     cnn = CNN(reLU(), (1, 1), (0, 0))
     model = Model(layers=[small_image, cnn, dense])
     self._run_derivatives_test(model)
Beispiel #4
0
    def test_mnist_image(self):
        image_data = [
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 44.25, 122.75, 126.5, 70.5,
            0.0, 0.0, 0.0, 0.0, 0.0, 6.5, 1.5, 0.0, 16.75, 203.75, 249.5,
            252.0, 252.0, 246.5, 214.75, 37.5, 0.0, 0.0, 0.0, 25.25, 6.0, 0.0,
            7.0, 123.5, 166.75, 162.25, 201.25, 252.5, 181.5, 9.25, 0.0, 0.0,
            0.0, 0.0, 0.0, 0.0, 0.0, 30.0, 167.5, 248.75, 240.5, 129.0, 27.5,
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 212.75, 252.5, 208.75,
            26.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 34.25,
            71.5, 214.75, 202.0, 31.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
            0.0, 0.0, 0.0, 13.25, 169.5, 167.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 148.25, 190.5, 0.0, 0.0, 0.0, 0.0,
            0.0, 0.0, 12.75, 210.0, 159.5, 65.75, 167.5, 209.75, 252.5, 78.25,
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.25, 168.0, 252.5, 251.25, 238.25,
            163.75, 58.75, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 15.75,
            106.5, 60.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
            0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
        ]

        model = Model(layers=[
            Image(image_data=image_data, maximum=256),
            CNN(reLU(), (3, 3)),
            Dense(reLU(), (3, 1)),
            Category([1, 2, 3]),
        ])
        model.compile(build=True)
        model.jacobian()
        weights = model.weights()
        derivatives = [w.derivative() for w in weights]
        pass
Beispiel #5
0
 def test_jacobian_cnn_31(self):
     image = [random.randint(0, 255) for _ in range(3)]
     model = Model(layers=[
         Image(image_data=image, shape=(3, 1)),
         CNN(reLU(), (3, 1), (0, 0), name='a'),
     ])
     weights = self._run_derivatives_test(model)
     self.assertEqual(len(weights), 7)
Beispiel #6
0
 def test_jacobian_cnn_31_dense_11(self):
     random.seed(44009)
     image = [random.randint(0, 255) for _ in range(3)]
     model = Model(layers=[
         Image(image_data=image, shape=(3, 1)),
         CNN(reLU(), (3, 1), name='a'),
         Dense(reLU(), (1, 1), name='d'),
     ])
     self._run_derivatives_test(model)
Beispiel #7
0
from j2learn.data.mnist_images import MNISTData
from j2learn.function.function import reLU
from j2learn.layer.category import Category
from j2learn.layer.cnn import CNN
from j2learn.layer.dense import Dense
from j2learn.layer.image import Image
from j2learn.model.model import Model
from j2learn.etc.tools import finite_difference

mndata = MNISTData(path='../mnist')

images, labels = mndata.training()

r = 49  # a nice number three
image_layer = Image(image_data=images[r], label=labels[r])
cnn = CNN(reLU(), (3, 3), (0, 0))
dense = Dense(reLU(), (10, 1))
category = Category([i for i in range(10)])

model = Model(layers=[image_layer, cnn, dense, category])
model.compile(build=True)

cat = model.predict()
print(cat)
prob = model.probability()
print(prob)

n_weights = model.weight_count()

gradient = 0
i = 0
Beispiel #8
0
from j2learn.data.mnist_images import MNISTData
from j2learn.function.function import reLU
from j2learn.layer.category import Category
from j2learn.layer.cnn import CNN
from j2learn.layer.dense import Dense
from j2learn.layer.image import Image

mndata = MNISTData(path='../mnist')

images, labels = mndata.training()

r = 49  # a nice number three
image_layer = Image(image_data=images[r], label=labels[r])
print(image_layer.display())
### test a non-convoluted CNN. Need the same output
identity_cnn = CNN(reLU(), (1, 1), (0, 0), image_layer, weight=1)
for i in range(identity_cnn.shape()[0] * identity_cnn.shape()[1]):
    assert identity_cnn.node(i).value() == identity_cnn._underlying_layer.node(
        i).value()
print(identity_cnn.display())

### test convolution
first_cnn = CNN(reLU(), (3, 3), (0, 0), identity_cnn)
print(first_cnn.display(threshold=0.5))
second_cnn = CNN(reLU(), (3, 3), (0, 0), first_cnn)
print(second_cnn.display(threshold=0.5))

### more layers
dense = Dense(reLU(), (10, 1), second_cnn)
category = Category([i for i in range(10)], dense)
print(category.node(0).value())
Beispiel #9
0
 def test_jacobian_dense_21_cnn_12(self):
     image = Image(image_data=[random.randint(0, 255) for _ in range(4)])
     dense = Dense(reLU(), (2, 1))
     cnn = CNN(reLU(), (1, 2), (0, 0))
     model = Model(layers=[image, cnn, dense])
     self._run_derivatives_test(model)
Beispiel #10
0
 def test_jacobian_cnn_11(self):
     image = [random.randint(0, 255) for _ in range(2)]
     image = Image(image_data=image, shape=(2, 1))
     cnn = CNN(reLU(), (1, 1), (0, 0))
     model = Model(layers=[image, cnn])
     self._run_derivatives_test(model)
Beispiel #11
0
import random

from j2learn.etc.tools import finite_differences
from j2learn.function.function import reLU
from j2learn.layer.cnn import CNN
from j2learn.layer.dense import Dense
from j2learn.layer.category import Category
from j2learn.layer.image import Image
from j2learn.model.model import Model

pixels = 81
image = Image(image_data=[random.randint(59, 59) for _ in range(pixels)])
cnn_a = CNN(reLU(), (3, 3), name='a')
cnn_b = CNN(reLU(), (3, 3), name='b')
cnn_c = CNN(reLU(), (3, 3), name='c')
dense = Dense(reLU(), (10, 1), name='d')
category = Category([i for i in range(10)])
model = Model(layers=[
    image,
    cnn_a,
    cnn_b,
    cnn_c,
    dense,
    category,
])

model.compile(build=True)

v = model.value()
# v = model.probability()
analytic_jacobian = model.jacobian()