コード例 #1
0
ファイル: robot-to-genes.py プロジェクト: egdman/tol-revolve
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"
コード例 #2
0
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
コード例 #3
0
ファイル: test_encode.py プロジェクト: karinemiras/revolve
            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 = ""
コード例 #4
0
ファイル: test_neural_network.py プロジェクト: lromor/revolve
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(
コード例 #5
0
ファイル: extended_brain.py プロジェクト: egdman/tol-revolve
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"]
        # )

    })