def testCopyable(self): net = pybrainbridge._RecurrentNetwork() self.lstm_network(net) success = False try: copied = net.copy() success = True except TypeError, e: success = False self.assert_(success, e)
def testParametersDerivatives(self): rnet = pybrainbridge._RecurrentNetwork() self.lstm_network(rnet) rnet.sortModules() self.assert_(getattr(rnet, '_derivs', None) is not None) fnet = pybrainbridge._FeedForwardNetwork() self.two_layer_network(fnet) fnet.sortModules() self.assert_(getattr(fnet, '_derivs', None) is not None)
def testTimesteps(self): _net = pybrainbridge._RecurrentNetwork() self.rec_two_layer_network(_net) _net.sortModules() netproxy = _net.proxies[_net] inproxy = _net.proxies[_net['in']] outproxy = _net.proxies[_net['out']] conproxy = _net.proxies[_net.connections[_net['in']][0]] rconproxy = _net.proxies[_net.recurrentConns[0]] proxies = netproxy, inproxy, outproxy, conproxy, rconproxy for proxy in proxies: self.assertEqual(proxy.get_mode(), 2) self.assertEqual(_net.offset, 0) for proxy in proxies: self.assertEqual(proxy.timestep(), 0, "%s has wrong timestep." % proxy) _net.activate((0., 0.)) for proxy in proxies: self.assertEqual(proxy.timestep(), 1) _net.activate((0., 0.)) for proxy in proxies: self.assertEqual(proxy.timestep(), 2) _net.activate((0., 0.)) for proxy in proxies: self.assertEqual(proxy.timestep(), 3) _net.backActivate((0., 0.)) self.assertEqual(_net.offset, 2) for proxy in proxies: self.assertEqual(proxy.timestep(), 2) _net.backActivate((0., 0.)) self.assertEqual(_net.offset, 1) for proxy in proxies: self.assertEqual(proxy.timestep(), 1) _net.backActivate((0., 0.)) self.assertEqual(_net.offset, 0) for proxy in proxies: self.assertEqual(proxy.timestep(), 0)
def convertToFastNetwork(self): """ Attempt to transform the network into a fast network. If fast networks are not available, or the network cannot be converted, it returns None. """ from pybrain.structure.networks import FeedForwardNetwork, RecurrentNetwork try: from arac.pybrainbridge import _RecurrentNetwork, _FeedForwardNetwork # @UnresolvedImport except: print "No fast networks available." return None net = self.copy() if isinstance(net, FeedForwardNetwork): cnet = _FeedForwardNetwork() elif isinstance(net, RecurrentNetwork): cnet = _RecurrentNetwork() for m in net.inmodules: cnet.addInputModule(m) for m in net.outmodules: cnet.addOutputModule(m) for m in net.modules: cnet.addModule(m) for clist in net.connections.values(): for c in clist: cnet.addConnection(c) if isinstance(net, RecurrentNetwork): for c in net.recurrentConns: cnet.addRecurrentConnection(c) try: cnet.sortModules() except ValueError: print "Network cannot be converted." return None cnet.owner = cnet return cnet
def convertToFastNetwork(self): """ Attempt to transform the network into a fast network. If fast networks are not available, or the network cannot be converted, it returns None. """ from pybrain.structure.networks import FeedForwardNetwork, RecurrentNetwork try: from arac.pybrainbridge import _RecurrentNetwork, _FeedForwardNetwork #@UnresolvedImport except: print("No fast networks available.") return None net = self.copy() if isinstance(net, FeedForwardNetwork): cnet = _FeedForwardNetwork() elif isinstance(net, RecurrentNetwork): cnet = _RecurrentNetwork() for m in net.inmodules: cnet.addInputModule(m) for m in net.outmodules: cnet.addOutputModule(m) for m in net.modules: cnet.addModule(m) for clist in list(net.connections.values()): for c in clist: cnet.addConnection(c) if isinstance(net, RecurrentNetwork): for c in net.recurrentConns: cnet.addRecurrentConnection(c) try: cnet.sortModules() except ValueError: print("Network cannot be converted.") return None cnet.owner = cnet return cnet
def equivalence_recurrent(self, builder): _net = pybrainbridge._RecurrentNetwork() builder(_net) net = RecurrentNetwork() builder(net) super(TestNetworkEquivalence, self).equivalence_recurrent(net, _net)