Exemplo n.º 1
0
 def setup(self):
     """ Create the network. """
     self.sensorCount = self.robot.range.count
     self.net = Network()
     self.net.addThreeLayers(self.sensorCount, 16, 2)
     self.net.initialize()
     self.net.setVerbosity(0)
     self.net.setEpsilon(0.5)
     self.net.setMomentum(.1)
     self.net.setLearning(1)
     self.trans = 0
     self.rotate = 0
     self.counter = 0
     self.maxvalue = self.robot.range.getMaxvalue()
     self.new = [self.scale(s.distance()) for s in self.robot.range["all"]]
     self.plot = Scatter(app=share.gui,
                         linecount=2,
                         connectPoints=0,
                         xEnd=10.0,
                         yEnd=1.0,
                         legend=["Trained", "Test"],
                         title="NN Generalization",
                         width=400,
                         xLabel="Distance to wall",
                         yLabel="Speed")
     self.plot.addLine(0, .5, 10, .5, color="green")
     self.min = 0.0
     self.robot.range._noise = [0.0] * self.robot.range.count
Exemplo n.º 2
0
            return self.INFTY

        for i in range(self.vectorSize):
            d += (v1[i] - v2[i])*(v1[i] - v2[i])
        return sqrt(d)

    def __str__(self):
        result = ""
        for i in range(len(self.nodes)):
            result += str(self.nodes[i])+"\n"
        result += "Net Error: "+str(self.error)
        return result
        
if __name__ == '__main__':
    from pyrobot.gui.plot.scatter import Scatter
    sp = Scatter(connectPoints = 0, linecount=3)
    length = 2
    gng = GNG(length, .05) # make second number smaller to match better
    print(gng)
    print("\n------------------------------------------------\n")
    for i in range(100):
        #vector = [(1 + sin((i+n) * 2 * pi * 3.0/70.0))/2 for n in range(2)]
        vector = [random() for x in range(length)]
        sp.addPoint(vector[0], vector[1], line = 1)
        gng.newInput(vector)
        if (i%10 == 0):
            print(gng)
            print("\n------------------------------------------------\n")
            sp.clear(2)
            for node in gng.nodes:
                sp.addPoint(node.modelVector[0], node.modelVector[1],