Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Place for common configs #1058

Closed
jgosmann opened this issue May 6, 2016 · 8 comments
Closed

Place for common configs #1058

jgosmann opened this issue May 6, 2016 · 8 comments

Comments

@jgosmann
Copy link
Collaborator

jgosmann commented May 6, 2016

I repeatedly run across situations where I want to create thresholding ensembles and it would be nice to sort of have a network for that. But it is not really a network, but only a set of config options set on the ensemble. So I was wondering if we should have a place for functions that create such configs?

Not sure if there are other common sets of configuration options that get used?

In the thresholding case it would look somewhat like this:

def ThresholdingConfig(threshold):
    config = nengo.Config(nengo.Ensemble)
    config[nengo.Ensemble].dimensions = 1
    config[nengo.Ensemble].intercepts = nengo.dists.Exponential(0.15, threshold, 1.)
    config[nengo.Ensemble].encoders = nengo.dists.Choice([[1]])
    config[nengo.Ensemble].eval_points = nengo.dists.Uniform(threshold, 1.)
    return config

and be used like this

with ThresholdingConfig(0.3):
    threshold = nengo.Ensemble(50)  # might be better to give dimensions explicitely?
@tbekolay
Copy link
Member

tbekolay commented May 8, 2016

This is a great idea! Never occurred to me, but I can already think of a bunch of places that this would be super useful. It's a nice level of abstraction above the regular objects, but below networks... Could make our network construction code more concise / consistent. Exciting!

@tbekolay
Copy link
Member

From the meeting: let's steal Handbrake's terminology and call these "presets".

@jgosmann
Copy link
Collaborator Author

Any other presets than thresholding that people have and want to see included?

@tbekolay
Copy link
Member

Presets for different receptor types could be useful; networks.BasalGanglia makes configs for AMPA and GABA receptors.

@Seanny123
Copy link
Contributor

Seanny123 commented May 31, 2016

@xchoo has a wide variety of configs that he uses for Spaun, including one for a ramp network if I remember correctly, but I think those more esoteric configs can wait until later.

Is the next step for this issue to make a pull request? And by pull request, I mean one containing:

  • Threshold config
  • Documentation indicating that these configs are available

@jgosmann jgosmann self-assigned this May 31, 2016
@jgosmann
Copy link
Collaborator Author

Yes, I will add my thresholding config (I think the example above needed some minor changes, I have a working version lying around).

jgosmann added a commit that referenced this issue May 31, 2016
@jgosmann jgosmann mentioned this issue May 31, 2016
10 tasks
@jgosmann jgosmann removed their assignment May 31, 2016
@jgosmann
Copy link
Collaborator Author

Added a PR for this.

jgosmann added a commit that referenced this issue Jul 20, 2016
drasmuss pushed a commit that referenced this issue Jul 28, 2016
@tbekolay
Copy link
Member

#1077 was merged, so this has been done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants