body_spec = BodyImplementation({ ("CoreComponent", "E"): PartSpec(arity=2, outputs=1, inputs=2), "2Params": PartSpec(arity=2, inputs=2, outputs=2, params=[ ParamSpec("param_a", default=-1), ParamSpec("param_b", default=15) ]) }) brain_spec = NeuralNetImplementation({ "Simple": NeuronSpec(params=["bias"]), "Oscillator": NeuronSpec(params=["period", "phaseOffset", "amplitude"]) }) def main(): args = parser.parse_args() # brain_spec = get_brain_spec(args) # body_spec = get_body_spec(args) brain_parser = NeuralNetworkParser(brain_spec) pb_robot = yaml_to_robot(body_spec, brain_spec, yaml_robot) print "yaml converted to pb"
import random import unittest from revolve.generate import NeuralNetworkGenerator from revolve.spec import NeuralNetImplementation, NeuronSpec brain_spec = NeuralNetImplementation( { "Simple": NeuronSpec( params=["bias"], layers=["hidden"], ), "Oscillator": NeuronSpec( params=[ "period", "phase_offset", "amplitude", ], layers=[ "hidden", "output", ], ), }, ) class TestNeuralNetGenerator(unittest.TestCase): """ Some simple tests for generating a neural network
outputs=2, params=[ ParamSpec( "param_a", default=-1 ), ParamSpec( "param_b", default=15 ), ], ), }, ) brain_spec = NeuralNetImplementation({ "Simple" : NeuronSpec(params=["bias"]), "Oscillator": NeuronSpec( params=["period", "phaseOffset", "amplitude"] ) }) # Enter the test cases below (make alterations to the basic yaml object) # Body test cases missing_body = yaml_to_robot(body_spec, brain_spec, basic_yaml_object) missing_body.body.root.Clear() missing_id = yaml_to_robot(body_spec, brain_spec, basic_yaml_object) missing_id.body.root.id = "" missing_part_type = yaml_to_robot(body_spec, brain_spec, basic_yaml_object) missing_part_type.body.root.type = ""
import random import unittest from revolve.generate import NeuralNetworkGenerator from revolve.spec import NeuralNetImplementation, NeuronSpec brain_spec = NeuralNetImplementation( { "Simple": NeuronSpec(params=["bias"], layers=["hidden"]), "Oscillator": NeuronSpec( params=["period", "phase_offset", "amplitude"], layers=["hidden", "output"] ) } ) class TestNeuralNetGenerator(unittest.TestCase): """ Some simple tests for generating a neural network """ def test_valid(self): """ Tests a valid neural network is generated :return: """ seed = random.randint(0, 10000) random.seed(seed) gen = NeuralNetworkGenerator(
def get_extended_brain_spec(conf): """ Returns the brain specification corresponding to the given config. :param conf: :return: """ epsilon = conf.brain_mutation_epsilon return NeuralNetImplementation({ "Input": NeuronSpec( layers=["input"] ), "Sigmoid": NeuronSpec( params=[ ParamSpec("bias", min_value=-1, max_value=1, default=0, epsilon=epsilon), ParamSpec("gain", min_value=0, max_value=1, default=.5, epsilon=epsilon) ], layers=["output", "hidden"] ), "Simple": NeuronSpec( params=[ ParamSpec("bias", min_value=-1, max_value=1, epsilon=epsilon), ParamSpec("gain", min_value=0, max_value=1, default=.5, epsilon=epsilon) ], layers=["output", "hidden"] ), # "Gain": NeuronSpec( # params=[ # ParamSpec("gain", min_value=0, max_value=1, default=.5, epsilon=epsilon) # ], # layers=["output", "hidden"] # ), "Bias": NeuronSpec( params=[ ParamSpec("bias", min_value=-1.0, max_value=1.0, epsilon=epsilon), ], layers=["output", "hidden"] ), "Oscillator": NeuronSpec( params=[ ParamSpec("period", min_value=0, max_value=10, epsilon=epsilon), ParamSpec("phase_offset", min_value=0, max_value=3.14, epsilon=epsilon), ParamSpec("amplitude", min_value=0, default=1, max_value=10000, epsilon=epsilon) ], layers=["output", "hidden"] ), # these neurons are for the nonlinear oscillator CPG model found in Ijspeert (2005): "V-Neuron": NeuronSpec( params=[ ParamSpec("alpha", min_value = 0.05, max_value = 10.0, epsilon = epsilon), ParamSpec("tau", min_value = 1.0, max_value = 50.0, epsilon = epsilon), ParamSpec("energy", min_value = 0.0, max_value = 25.0, epsilon = epsilon) ], layers = ["output", "hidden"] ), "X-Neuron": NeuronSpec( params=[ ParamSpec("tau", min_value = 0.01, max_value = 5.0, epsilon = epsilon), ], layers = ["output", "hidden"] ), "DifferentialCPG": NeuronSpec( params=[ ParamSpec("bias", min_value = -1.0, max_value = 1.0, epsilon = epsilon), ], layers = ["output", "hidden"] ), # # Leaky integrator # "Leaky": NeuronSpec( # params=[ # ParamSpec("bias", min_value = 0.01, max_value = 10.0, epsilon = epsilon), # ParamSpec("tau", min_value = 0.01, max_value = 10.0, epsilon = epsilon), # ], # layers = ["output", "hidden"] # ), # "NL-Main": NeuronSpec( # params=[ # ParamSpec("a", min_value = 0.01, max_value = 10.0, epsilon = epsilon), # ParamSpec("amplitude", min_value = 0.01, max_value = 10.0, epsilon = epsilon) # ], # layers = ["output", "hidden"] # ) # "NL-Theta": NeuronSpec( # params=[ # ParamSpec("freq", min_value = 0.01, max_value = 10.0, epsilon = epsilon) # ], # layers = ["output", "hidden"] # ) # "QuadNeuron": NeuronSpec( # params=[], # layers = ["output", "hidden"] # ) })