From bthom at cs.hmc.edu Fri Dec 1 01:02:07 2006 From: bthom at cs.hmc.edu (belinda thom) Date: Fri Dec 1 01:02:11 2006 Subject: [Pyro-users] path question In-Reply-To: <48801.68.34.179.248.1164943399.squirrel@webmail.brynmawr.edu> References: <5C81CFFA-4BB6-4BC1-A282-14AC32FCC088@cs.hmc.edu> <48801.68.34.179.248.1164943399.squirrel@webmail.brynmawr.edu> Message-ID: I decided to go the PYTHONPATH route (in tcsh); it works perfectly--- thanks! On Nov 30, 2006, at 7:23 PM, Douglas S. Blank wrote: > For example, if you have pyrobot in your home directory you could > do this > in bash: > > export PYTHONPATH=$PYTHONPATH:/home/yourid > export PYROBOT=/home/yourid/pyrobot Is there a reason you suggest putting pyrobot at the end of the path? (I'd have thought pyro users would want any naming conflicts to resolve to pyro's files). Before I sent my original email, I checked out: http://www.python.org/doc/2.4.1/inst/search-path.html and was worried that so simple a solution as setting PYTHONPATH to pyrobot's parent would not be enough to tell python to traverse inside pyrobot's directorys recursively (especially since there was no .pth file in the pyrobot directory). Is there a piece of magic in my understanding that's lacking? Thanks again, --b From dblank at brynmawr.edu Fri Dec 1 07:20:40 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Dec 1 07:20:36 2006 Subject: [Pyro-users] path question In-Reply-To: References: <5C81CFFA-4BB6-4BC1-A282-14AC32FCC088@cs.hmc.edu> <48801.68.34.179.248.1164943399.squirrel@webmail.brynmawr.edu> Message-ID: <35489.68.34.179.248.1164975640.squirrel@webmail.brynmawr.edu> On Fri, December 1, 2006 1:02 am, belinda thom said: > I decided to go the PYTHONPATH route (in tcsh); it works perfectly--- > thanks! > > On Nov 30, 2006, at 7:23 PM, Douglas S. Blank wrote: > >> For example, if you have pyrobot in your home directory you could >> do this >> in bash: >> >> export PYTHONPATH=$PYTHONPATH:/home/yourid >> export PYROBOT=/home/yourid/pyrobot > > Is there a reason you suggest putting pyrobot at the end of the path? > (I'd have thought pyro users would want any naming conflicts to > resolve to pyro's files). It shouldn't matter; see below. > Before I sent my original email, I checked out: > > http://www.python.org/doc/2.4.1/inst/search-path.html > > and was worried that so simple a solution as setting PYTHONPATH to > pyrobot's parent would not be enough to tell python to traverse > inside pyrobot's directorys recursively (especially since there was > no .pth file in the pyrobot directory). Is there a piece of magic in > my understanding that's lacking? We always use absolute paths when referring to anything under pyrobot. Therefore, we always import conx these way: import pyrobot.brain.conx from pyrobot.brain.conx import Network Thus, the only module that Python needs to find is "pyrobot". If you install it in the system Python dir, then you are right: you may indeed want to put it first in the PYTHONPATH---just in case students have their own pyrobot directory, it will find the system files first. > Thanks again, You're welcome, -Doug > --b > > > > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 601 From bthom at cs.hmc.edu Sun Dec 3 17:30:39 2006 From: bthom at cs.hmc.edu (belinda thom) Date: Sun Dec 3 17:30:47 2006 Subject: [Pyro-users] conx sweep modification? Message-ID: Hi, Am wondering if an older version of pyro (4.9.2) used to support: # create a network, suppose its named 'n' n = ... (err, correct, total) = n.sweep() The reason I ask is that I've inherited some working code that makes this call and thus doesn't run because the "unpack" fails. The fix is to add an extra argument, e.g. (err, correct, total, ignore) = n.sweep() I'm new to pyro, Python, and the inherited code, so want to make sure this kind of update is in fact the way to proceed. Thanks, --b From dblank at brynmawr.edu Sun Dec 3 17:41:05 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Sun Dec 3 17:41:00 2006 Subject: [Pyro-users] Pyro simulator bug fix Message-ID: <4099.165.106.10.167.1165185665.squirrel@webmail.brynmawr.edu> There was a long standing bug in the Pyrobot Simulator which allowed robots to escape from a boxed-in area (especially when dealing with robots which had evolved behavior). This was a weird bug, and I never could figure out how the little buggers could escape...until now! The short story is that you can get updated versions of Pyro from cvs: http://pyrorobotics.org/?page=PyroDeveloperCVS The long story is an interesting mystery of the life of a bug. Here is that story briefly. The Pyrobot client robots move robots in the simulator by setting their velocities. Then 10 times a second, or so, the simulator will look to see if the robot will hit something, and if the way is clear, it moves the robot by those velocities. Now, there is a kink in this when the robot would run into something. In that case (and only in that case) the velocities are adjusted. If the robot is going to hit something, the simulator tries to slow the robot down a bit to see if it can move a little bit, if it can't move the whole amount. Also, if the robot runs into something that "gives" (a puck) then it even loses a little bit of energy/velocity, and transfers this energy to the puck. (This doesn't work with angular movement, just in the x direction to keep things simple). This generally work fine. However, every once in a while a robot inexplicable runs over an obstacle and runs amuck in the sim wild. This is impossible. Guesses? Spoiler below. It turns out that while the simulator is moving the robot, a change in velocity can come in. Now, when the robot adjusts the velocity during the robot placement, it actually is adjusting the new velocity rather than the one it started with. The first solution I tried was to put a lock/aquire/release on the velocities, but that really slowed down the user interface. The second fix which seems to work is to make a copy of the velocities when the simulator starts to move the robot, and use those during the move. Now, I don't see any more escaping robots! (Somehow I don't think this exciting mystery of the escaping robot would transfer to the big screen...) Any way, try it out. This was big problem when trying to evolve robots, and they kept getting out of their boxes. -Doug -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 601 From bthom at cs.hmc.edu Sun Dec 3 18:28:32 2006 From: bthom at cs.hmc.edu (belinda thom) Date: Sun Dec 3 18:28:51 2006 Subject: [Pyro-users] Pyro simulator bug fix In-Reply-To: <4099.165.106.10.167.1165185665.squirrel@webmail.brynmawr.edu> References: <4099.165.106.10.167.1165185665.squirrel@webmail.brynmawr.edu> Message-ID: <5AA13E66-0635-4705-B800-14ACFA8799B6@cs.hmc.edu> On Dec 3, 2006, at 2:41 PM, Douglas S. Blank wrote: > The short story is that you can get updated versions of Pyro from cvs: > > http://pyrorobotics.org/?page=PyroDeveloperCVS Glad to hear you've figured this out :-)! (When playing w/various configurations, I have occasionally seen robots outside of their world's bounding box and wondered what was up.) What is the intended model for updating? Do we need to rerun "python configure" and "make install" (and something similar for the cluster tool and any other stuff installed by hand) each time we download new CVS code? Is it always the case that we're better off w/the latest CVS code (as opposed to one of the earlier tarballs that is available at the download link page? Recall I had originally downloaded a stale tarball using that 2nd route). I guess what I'm really asking is how stable the latest CVS version is (esp wrt using it in the classroom). Thanks, --b From dblank at brynmawr.edu Sun Dec 3 19:18:11 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Sun Dec 3 19:18:06 2006 Subject: [Pyro-users] Pyro simulator bug fix In-Reply-To: <5AA13E66-0635-4705-B800-14ACFA8799B6@cs.hmc.edu> References: <4099.165.106.10.167.1165185665.squirrel@webmail.brynmawr.edu> <5AA13E66-0635-4705-B800-14ACFA8799B6@cs.hmc.edu> Message-ID: <4124.165.106.10.167.1165191491.squirrel@webmail.brynmawr.edu> I would always work with the cvs version, unless some major revision is in progress that would be announced here. I hope by the end of the year we will release Pyro version 5.0 which will update Player/Stage/Gazebo, clean up a couple of interfaces, release a new Pyro Live CD, new binaries for Linux, Mac, and Windows, and new rpms for Fedora Core 6. Normally, this is all you have to do to stay up-to-date if you have already checked-out Pyro from cvs: cd pyrobot cvs update -d make and that should put everything in order. -Doug On Sun, December 3, 2006 6:28 pm, belinda thom said: > > On Dec 3, 2006, at 2:41 PM, Douglas S. Blank wrote: > >> The short story is that you can get updated versions of Pyro from cvs: >> >> http://pyrorobotics.org/?page=PyroDeveloperCVS > > Glad to hear you've figured this out :-)! (When playing w/various > configurations, I have occasionally seen robots outside of their > world's bounding box and wondered what was up.) > > What is the intended model for updating? > > Do we need to rerun "python configure" and "make install" (and > something similar for the cluster tool and any other stuff installed > by hand) each time we download new CVS code? > > Is it always the case that we're better off w/the latest CVS code (as > opposed to one of the earlier tarballs that is available at the > download link page? Recall I had originally downloaded a stale > tarball using that 2nd route). I guess what I'm really asking is how > stable the latest CVS version is (esp wrt using it in the classroom). > > Thanks, > > --b > > > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 601 From dblank at brynmawr.edu Sun Dec 3 19:22:06 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Sun Dec 3 19:22:00 2006 Subject: [Pyro-users] conx sweep modification? In-Reply-To: References: Message-ID: <4129.165.106.10.167.1165191726.squirrel@webmail.brynmawr.edu> On Sun, December 3, 2006 5:30 pm, belinda thom said: > Hi, > > Am wondering if an older version of pyro (4.9.2) used to support: > > # create a network, suppose its named 'n' > n = ... > (err, correct, total) = n.sweep() > > The reason I ask is that I've inherited some working code that makes > this call and thus doesn't run because the "unpack" fails. The fix is > to add an extra argument, e.g. > > (err, correct, total, ignore) = n.sweep() > > I'm new to pyro, Python, and the inherited code, so want to make sure > this kind of update is in fact the way to proceed. Yes, that should work. Looking at pyrobot/brain/conx.py, searching for "def sweep" and noting the return values, I see that these values are: return (tssError, totalCorrect, totalCount, totalPCorrect) The totalPCorrect is the "total percentage correct" and was added more recently. -Doug > Thanks, > --b -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 601 From bthom at cs.hmc.edu Sun Dec 3 19:47:33 2006 From: bthom at cs.hmc.edu (belinda thom) Date: Sun Dec 3 19:47:40 2006 Subject: [Pyro-users] conx sweep modification? In-Reply-To: <4129.165.106.10.167.1165191726.squirrel@webmail.brynmawr.edu> References: <4129.165.106.10.167.1165191726.squirrel@webmail.brynmawr.edu> Message-ID: On Dec 3, 2006, at 4:22 PM, Douglas S. Blank wrote: > The totalPCorrect is the "total percentage correct" and was added more > recently. Now I'm really confused...:-) Stepping thru the inherited code (where n is a Network of size 16- by-8-by-2) w/the added trainPcorrect I get: >>> print trainPcorrect {'output': [499, 740, 249, 370]} help(Network.sweep) tells me "pcorrect (a dict of layer data)" The meat appears to be in Network.getLayerErrors (called by Network.sweep->Network.step->Network.backprop- >Network.compute_error). Given this context, I'm stilling having a hard time interpreting exactly what the four numbers above should mean. Thx, --b From bthom at cs.hmc.edu Sun Dec 3 20:49:26 2006 From: bthom at cs.hmc.edu (belinda thom) Date: Sun Dec 3 20:49:49 2006 Subject: [Pyro-users] pyrobot.gui.plot.scatter question Message-ID: <728C480A-8E84-4604-9EDE-04FEEBCFB046@cs.hmc.edu> Hello, I'm using the plot utilities that come w/Pyro on Mac OS X (10.4.8) and Python 2.4.3. I'm a tkinter newbie. When I issue the following commands (from Python, not Pyro): >>> from pyrobot.gui.plot.scatter import Scatter >>> p = Scatter(linecount=2,connectPoints=0,xEnd=7.0,yEnd=1.2,legend= ["tr","te"],title="NN Gen",width=400) I get two windows that come up, one that looks like a plotting window, the other that is blank and has the title "tk". If I issue another Scatter command, I get another window (but not another "tk" window). If I close the "tk" window, both plot windows also close. Is this behavior to be expected? And if not, is this likely a platform issue? I'd prefer having a SINGLE plot window open each time I give a "Scatter" command. A bit of context about how Tkinter works in this context could perhaps be very helpful to me. Thanks, --b From dblank at brynmawr.edu Sun Dec 3 22:13:38 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Sun Dec 3 22:13:33 2006 Subject: [Pyro-users] pyrobot.gui.plot.scatter question In-Reply-To: <728C480A-8E84-4604-9EDE-04FEEBCFB046@cs.hmc.edu> References: <728C480A-8E84-4604-9EDE-04FEEBCFB046@cs.hmc.edu> Message-ID: <4475.165.106.10.167.1165202018.squirrel@webmail.brynmawr.edu> On Sun, December 3, 2006 8:49 pm, belinda thom said: > Hello, > > I'm using the plot utilities that come w/Pyro on Mac OS X (10.4.8) > and Python 2.4.3. I'm a tkinter newbie. > > When I issue the following commands (from Python, not Pyro): > > >>> from pyrobot.gui.plot.scatter import Scatter > >>> p = Scatter(linecount=2,connectPoints=0,xEnd=7.0,yEnd=1.2,legend= > ["tr","te"],title="NN Gen",width=400) > > I get two windows that come up, one that looks like a plotting > window, the other that is blank and has the title "tk". If I issue > another Scatter command, I get another window (but not another "tk" > window). If I close the "tk" window, both plot windows also close. > > Is this behavior to be expected? And if not, is this likely a > platform issue? I'd prefer having a SINGLE plot window open each time > I give a "Scatter" command. > > A bit of context about how Tkinter works in this context could > perhaps be very helpful to me. This is normal. The fix is a little tricky, and I'm not sure exactly what should be done, in general. Here's the issue: A default main window (sometimes called a "listener" window) is always needed by Tkinter; if you don't do it manually it will do it automatically. I usually do create it manually, like so: >>> import Tkinter >>> tk = Tkinter.Tk() Now, you can hide it if you wish: >>> tk.withdraw() but it is still there just invisible. Tkinter windows usually take this root default window as the first argument, and Scatter does: scatter = Scatter(tk, ...) and this somehow ties all of the windows together with the same toplevel window. Now the problem is: what do you want to have happen when you close the scatter window? You could override the destroy() method so that it kills the listener window too (if we saved a handle to it): def destroy(self): self.app.destroy() but you don't always want to shutdown everything (such as if you are running pyro and just want to shut the scatter plot). I think the solution might be to make scatter (and similar windows) take a flag so you can make it close everything when it closes if the flag is true. Until that happens, you can: 1. override scatter, and define destroy to kill the root 2. hide the tk window (but that requires that you control+c) 3. leave it showing, and just close both 4. other options? -Doug > Thanks, > --b > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 601 From dblank at brynmawr.edu Sun Dec 3 22:20:30 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Sun Dec 3 22:20:24 2006 Subject: [Pyro-users] conx sweep modification? In-Reply-To: References: <4129.165.106.10.167.1165191726.squirrel@webmail.brynmawr.edu> Message-ID: <4481.165.106.10.167.1165202430.squirrel@webmail.brynmawr.edu> On Sun, December 3, 2006 7:47 pm, belinda thom said: > > On Dec 3, 2006, at 4:22 PM, Douglas S. Blank wrote: > >> The totalPCorrect is the "total percentage correct" and was added more >> recently. > > Now I'm really confused...:-) My fault! That should be the "total patterns correct" which I think is the total number of outputs across all training patterns. I'd have to dig into the code to figure out what it exactly means. I think I like your ignore option better... :( -Doug > Stepping thru the inherited code (where n is a Network of size 16- > by-8-by-2) w/the added trainPcorrect I get: > > >>> print trainPcorrect > {'output': [499, 740, 249, 370]} > > help(Network.sweep) tells me "pcorrect (a dict of layer data)" > > The meat appears to be in Network.getLayerErrors (called by > Network.sweep->Network.step->Network.backprop- > >Network.compute_error). Given this context, I'm stilling having a > hard time interpreting exactly what the four numbers above should mean. > > Thx, > > --b > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 601 From bthom at cs.hmc.edu Sun Dec 3 22:25:29 2006 From: bthom at cs.hmc.edu (belinda thom) Date: Sun Dec 3 22:25:52 2006 Subject: [Pyro-users] conx sweep modification? In-Reply-To: <4481.165.106.10.167.1165202430.squirrel@webmail.brynmawr.edu> References: <4129.165.106.10.167.1165191726.squirrel@webmail.brynmawr.edu> <4481.165.106.10.167.1165202430.squirrel@webmail.brynmawr.edu> Message-ID: <878556ED-4AE3-41CD-B834-2D99694C750E@cs.hmc.edu> I've dug thru the code; its complicated. But for future reference, my current inference about this "dictionary" is: >> {'output': [499, 740, 249, 370]} 1st number: number of outputs in network that are "correct" (w/in threshold) 2nd number: total number of outputs (amount of data * number of outputs) 3rd number: total number of output vectors that are "correct" (after thresholding) 4th number: total number of output vectors (amount of data) It probably should be better documented, but I'm not sure where. --b From mukesh.kumar123 at gmail.com Mon Dec 4 01:50:02 2006 From: mukesh.kumar123 at gmail.com (mukesh.kumar123@gmail.com) Date: Mon Dec 4 01:50:08 2006 Subject: [Pyro-users] Mukesh Kumar has invited you to join Yaari Message-ID: An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20061204/68b9ce57/attachment-0001.htm From Matthew2.Studley at uwe.ac.uk Mon Dec 11 05:01:03 2006 From: Matthew2.Studley at uwe.ac.uk (matthew studley) Date: Mon Dec 11 05:07:47 2006 Subject: [Pyro-users] e-puck Message-ID: <1165831264.10348.130.camel@localhost.localdomain> Hi I've just come across pyro - python and robotics, my sort of thing! I python'd the robots here ( http://www.ias.uwe.ac.uk/~a-winfie/linuxbot/linuxbot.htm ) using C, SWIG and XMLRPC but it was a heavyweight approach! Has anybody played with e-pucks yet using pyro? http://www.e-puck.org/ regards Matt -- Dr Matthew Studley Artificial Intelligence Group Faculty of Computer Science, Engineering and Mathematics University of the West of England Coldharbour Lane Frenchay Bristol UK BS16 1QY ================================= tel: +44 (0) 11732 83177 mob: +44 (0) 7712 659022 This email was independently scanned for viruses by McAfee anti-virus software and none were found From dblank at brynmawr.edu Mon Dec 11 11:52:10 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Mon Dec 11 11:53:31 2006 Subject: [Pyro-users] e-puck In-Reply-To: <1165831264.10348.130.camel@localhost.localdomain> References: <1165831264.10348.130.camel@localhost.localdomain> Message-ID: <457D8CBA.5030703@brynmawr.edu> matthew studley wrote: > Hi > > I've just come across pyro - python and robotics, my sort of thing! I > python'd the robots here > ( http://www.ias.uwe.ac.uk/~a-winfie/linuxbot/linuxbot.htm ) using C, > SWIG and XMLRPC but it was a heavyweight approach! > > Has anybody played with e-pucks yet using pyro? > > http://www.e-puck.org/ > > regards > > Matt Matt, The e-puck is next on my list of robots to explore. I have one ready to go in the lab. It should be trivial, and may even work with the current Pyro Khepera interface(s) (there is one in Player I think, and ours---the direct communication over serial in pyrobot/plugins/robots/khepera.py) As soon as I get it up and running, I'll document my findings about the robot in general here: http://blog.roboteducation.org/ and make an announcement here for the Pyro code. As always, if you get something written before I do: patches accepted! -Doug From Matthew2.Studley at uwe.ac.uk Tue Dec 12 05:24:43 2006 From: Matthew2.Studley at uwe.ac.uk (matthew studley) Date: Tue Dec 12 05:31:32 2006 Subject: [Pyro-users] e-puck In-Reply-To: <457D8CBA.5030703@brynmawr.edu> References: <1165831264.10348.130.camel@localhost.localdomain> <457D8CBA.5030703@brynmawr.edu> Message-ID: <1165919083.2930.10.camel@localhost.localdomain> Thanks for your prompt reply Doug I probably won't get my e-pucks for a few months. Will report back when I get something going! M On Mon, 2006-12-11 at 11:52 -0500, Douglas S. Blank wrote: > matthew studley wrote: > > Hi > > > > I've just come across pyro - python and robotics, my sort of thing! I > > python'd the robots here > > ( http://www.ias.uwe.ac.uk/~a-winfie/linuxbot/linuxbot.htm ) using C, > > SWIG and XMLRPC but it was a heavyweight approach! > > > > Has anybody played with e-pucks yet using pyro? > > > > http://www.e-puck.org/ > > > > regards > > > > Matt > > Matt, > > The e-puck is next on my list of robots to explore. I have one ready to > go in the lab. It should be trivial, and may even work with the current > Pyro Khepera interface(s) (there is one in Player I think, and > ours---the direct communication over serial in > pyrobot/plugins/robots/khepera.py) As soon as I get it up and running, > I'll document my findings about the robot in general here: > > http://blog.roboteducation.org/ > > and make an announcement here for the Pyro code. As always, if you get > something written before I do: patches accepted! > > -Doug > > > > This incoming email to UWE has been independently scanned for viruses by McAfee anti-virus software and none were detected -- Dr Matthew Studley Artificial Intelligence Group Faculty of Computer Science, Engineering and Mathematics University of the West of England Coldharbour Lane Frenchay Bristol UK BS16 1QY ================================= tel: +44 (0) 11732 83177 mob: +44 (0) 7712 659022 This email was independently scanned for viruses by McAfee anti-virus software and none were found From chrisspen at gmail.com Wed Dec 13 09:25:52 2006 From: chrisspen at gmail.com (Chris S) Date: Wed Dec 13 09:26:00 2006 Subject: [Pyro-users] Conx with Reinforcement Learning Message-ID: Can a Conx NN currently be trained via reinforcement learning techniques, such as TD(lambda)? Regards, Chris From dblank at brynmawr.edu Tue Dec 19 10:59:08 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue Dec 19 11:00:36 2006 Subject: [Pyro-users] Conx with Reinforcement Learning In-Reply-To: References: Message-ID: <45880C4C.5000304@brynmawr.edu> Chris S wrote: > Can a Conx NN currently be trained via reinforcement learning > techniques, such as TD(lambda)? Chris, Yes, there is the beginning of some support in Conx for similar techniques. You can at least use this as an example. Take a look at the SigmaNetwork in pyrobot/brain/conx.py. It is an example of a type of CRBP (complimentary reinforcement backprop). It works like this: 1. Propagate the activations through the network 2. Flip a coin for each output, using the output as a bias. For example, if the output is .75, then the flip will be biased to be 1.0, otherwise it will be 0.0. 3. Sum up those 1 and 0 values. Use those as "votes", where majority rules. Ie, if a majority have a value of 1, then the network says 1. 4. Compare that vote with the target (just one value in this example). If it matches, then train the net with the vector from step 2 as a target vector. If it doesn't match, then use the complement of the vector from step 2 as the target vector. 5. Set the error of the output layer with the difference from step 5. 6. Do backprop as usual. 7. repeat Here is a CRBP network for learning XOR with the SigmaNetwork: from pyrobot.brain.conx import SigmaNetwork net = SigmaNetwork() net.addLayers(2, 5, 11) net.setInputs( [[0, 0], [0, 1], [1, 0], [1, 1]] ) net.setTargets( [[0], [1], [1], [0]] ) net.train() net.interactive = 1 net.learning = 0 net.sweep() Notice that the output layer has 11 nodes. You can have as many as you want, because it is the sum that is important. (The hidden can be any size too). The network is free to create a self-organized output representation. See: Ackley and Littman http://www.cs.duke.edu/~mlittman/docs/nips-crbp.ps for more information on CRBP. The SigmaNetwork shows how you can separate the backprop steps in order to get in there and set the target and error independently of the normal BP process. Hope that helps, -Doug > Regards, > Chris > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > > From Matthew2.Studley at uwe.ac.uk Wed Dec 20 05:05:01 2006 From: Matthew2.Studley at uwe.ac.uk (matthew studley) Date: Wed Dec 20 05:12:02 2006 Subject: [Pyro-users] webots jython and pyro Message-ID: <1166609102.2377.64.camel@localhost.localdomain> Hi all has anybody tried using the webots 3d simulation environment with jython and pyrorobotics? Merry Christmas! Matt -- Dr Matthew Studley Artificial Intelligence Group Faculty of Computer Science, Engineering and Mathematics University of the West of England Coldharbour Lane Frenchay Bristol UK BS16 1QY ================================= tel: +44 (0) 11732 83177 mob: +44 (0) 7712 659022 This email was independently scanned for viruses by McAfee anti-virus software and none were found