ioam / topographica

A general-purpose neural simulator focusing on topographic maps.
topographica.org
BSD 3-Clause "New" or "Revised" License
53 stars 32 forks source link

Copying weights #634

Open rytp opened 8 years ago

rytp commented 8 years ago

HI,

I have 3 layers say A, B, C. B and C layers are of the same size. I am connecting layer A to layers B and C using the CFProjection. The weights between nodes in layer A and B are to be trained using the normalized hebbian mechanism. I now want the weights between nodes in layer A and C to be a replica of those between layers A and B. I have a different output function for layer C as compared to B.

Could someone suggest a way to copy these weights during every iteration of training.

mjabri commented 8 years ago

If input is same why not create a sheet A' and then connect A to A' using CFProjection, and then A' to B and C with no weights, and just the output functions of B and C as needed?

On Thu, Oct 8, 2015 at 12:49 AM, rytp notifications@github.com wrote:

HI,

I have 3 layers say A, B, C. B and C layers are of the same size. I am connecting layer A to layers B and C using the CFProjection. The weights between nodes in layer A and B are to be trained using the normalized hebbian mechanism. I now want the weights between nodes in layer A and C to be a replica of those between layers A and B. I have a different output function for layer C as compared to B.

Could someone suggest a way to copy these weights during every iteration of training.

— Reply to this email directly or view it on GitHub https://github.com/ioam/topographica/issues/634.

rytp commented 8 years ago

Thanks for the reply.

The issue with the suggestion is that the weights between A and A' will now be trained based on the values of the nodes in A and A', using the hebbian mechanism, and not the values of the nodes in A and B as required in the original question asked.

mjabri commented 8 years ago

I see, but then replicating the weights A -> B training using inputs to A and outputs of B will then not be applicable to A -> C if output functions of C are different than B.

rytp commented 8 years ago

Exactly. I do not want the weights between A and C to be trained. They should just be a copy of those between A and B.

mjabri commented 8 years ago

I think they are various ways yo can do this, and I think somethng (not exactly this) by creating a sheet (not projection sheet) that takes as port activities (before o/p functions) from other sheets. I passed the activities as through Dict in the ports.

rytp commented 8 years ago

Thanks. I will try that

mjabri commented 8 years ago

Good luck! Actually i found the example ./examples/saccade_demo.ty helps understanding sending stuff to ports...