bench

package
v1.6.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2022 License: BSD-3-Clause Imports: 12 Imported by: 0

README

bench

This is a standard benchmarking system for leabra. It runs 5 layer fully connected networks of various sizes, with the number of events and epochs adjusted to take roughly an equal amount of time overall.

First, build the executable:

$ go build
  • run_bench.sh is a script that runs standard configurations -- can pass additional args like threads=2 to test different threading levels.

  • bench_results.md has the algorithmic / implementational history for different versions of the code, on the same platform (macbook pro).

  • run_hardware.sh is a script specifically for hardware testing, running standard 1, 2, 4 threads for each network size, and only reporting the final result, in the form shown in:

  • bench_hardware.md has standard results for different hardware.

Documentation

Overview

bench runs a benchmark model with 5 layers (3 hidden, Input, Output) all of the same size, for benchmarking different size networks. These are not particularly realistic models for actual applications (e.g., large models tend to have much more topographic patterns of connectivity and larger layers with fewer connections), but they are easy to run..

Index

Constants

This section is empty.

Variables

View Source
var ParamSets = params.Sets{
	{Name: "Base", Desc: "these are the best params", Sheets: params.Sheets{
		"Network": &params.Sheet{
			{Sel: "Prjn", Desc: "",
				Params: params.Params{
					"Prjn.Learn.Trace.NeuronCa": "true",
					"Prjn.Learn.Lrate.Base":     "0.1",
					"Prjn.SWt.Adapt.Lrate":      "0.1",
					"Prjn.SWt.Init.SPct":        "0.5",
				}},
			{Sel: "Layer", Desc: "",
				Params: params.Params{
					"Layer.Inhib.ActAvg.Init": "0.08",
					"Layer.Inhib.Layer.Gi":    "1.05",
					"Layer.Act.Gbar.L":        "0.2",
				}},
			{Sel: "#Input", Desc: "",
				Params: params.Params{
					"Layer.Inhib.Layer.Gi": "0.9",
					"Layer.Act.Clamp.Ge":   "1.5",
				}},
			{Sel: "#Output", Desc: "",
				Params: params.Params{
					"Layer.Inhib.Layer.Gi": "0.70",
					"Layer.Act.Clamp.Ge":   "0.8",
				}},
			{Sel: ".Back", Desc: "top-down back-projections MUST have lower relative weight scale, otherwise network hallucinates",
				Params: params.Params{
					"Prjn.PrjnScale.Rel": "0.2",
				}},
		},
	}},
}

Functions

func ConfigEpcLog

func ConfigEpcLog(dt *etable.Table)

func ConfigNet

func ConfigNet(net *axon.Network, threads, units int, verbose bool)

func ConfigPats

func ConfigPats(dt *etable.Table, pats, units int)

func TrainNet

func TrainNet(net *axon.Network, pats, epcLog *etable.Table, epcs int, verbose bool)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL