Skip to content
This repository has been archived by the owner on Jul 10, 2021. It is now read-only.

Commit

Permalink
Test for various layer types including Gaussian dropout and leaky rec…
Browse files Browse the repository at this point in the history
…tifier.
  • Loading branch information
alexjc committed Apr 2, 2016
1 parent 0dd8d26 commit 5df1253
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 6 deletions.
2 changes: 2 additions & 0 deletions sknn/backend/lasagne/mlp.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ def _create_convolution_layer(self, name, layer, network):
return network

def _create_native_layer(self, name, layer, network):
if layer.units and 'num_units' not in layer.keywords:
layer.keywords['num_units'] = layer.units
return layer.type(network, *layer.args, **layer.keywords)

def _create_layer(self, name, layer, network):
Expand Down
6 changes: 3 additions & 3 deletions sknn/nn.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ class ansi:

class Native(object):

def __init__(self, constructor, *args, **keywords):
self.name = None
self.units = None
def __init__(self, constructor, *args, name=None, units=None, **keywords):
self.name = name
self.units = units

self.frozen = None
self.weight_decay = None
Expand Down
18 changes: 15 additions & 3 deletions sknn/tests/test_native.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,27 @@
import numpy

from sknn.mlp import Regressor as MLPR
from sknn.mlp import Native as N
from sknn.mlp import Native as N, Layer as L

import lasagne.layers as ly
import lasagne.nonlinearities as nl


class TestNativeLasagneLayer(unittest.TestCase):

def test_DenseLinear(self):
nn = MLPR(layers=[N(ly.DenseLayer, num_units=4, nonlinearity=nl.linear)], n_iter=1)
def _run(self, nn):
a_in, a_out = numpy.ones((8,16)), numpy.ones((8,4))
nn.fit(a_in, a_out)

def test_DenseLinear(self):
nn = MLPR(layers=[N(ly.DenseLayer, num_units=4, nonlinearity=nl.linear)], n_iter=1)
self._run(nn)

def test_GaussianNoise(self):
nn = MLPR(layers=[L("Rectifier", units=12), N(ly.GaussianNoiseLayer), L("Linear")], n_iter=1)
self._run(nn)

def test_LeakyRectifier(self):
nn = MLPR(layers=[N(ly.DenseLayer, units=24, nonlinearity=nl.leaky_rectify),
L("Linear")], n_iter=1)
self._run(nn)

0 comments on commit 5df1253

Please sign in to comment.