Beispiel #1
0
  def readFromProto(cls, proto):
    """    
    Overrides :meth:`nupic.bindings.regions.PyRegion.PyRegion.readFromProto`.
    """
    instance = cls()

    instance.encoder = MultiEncoder.read(proto.encoder)
    if proto.disabledEncoder is not None:
      instance.disabledEncoder = MultiEncoder.read(proto.disabledEncoder)
    instance.topDownMode = bool(proto.topDownMode)
    instance.verbosity = proto.verbosity
    instance.numCategories = proto.numCategories

    return instance
Beispiel #2
0
  def readFromProto(cls, proto):
    """Read state from proto object.

    proto: RecordSensorProto capnproto object
    """
    instance = cls()

    instance.encoder = MultiEncoder.read(proto.encoder)
    instance.disabledEncoder = MultiEncoder.read(proto.disabledEncoder)
    instance.topDownMode = proto.topDownMode
    instance.verbosity = proto.verbosity
    instance.numCategories = proto.numCategories

    return instance
Beispiel #3
0
    def readFromProto(cls, proto):
        """    
    Overrides :meth:`nupic.bindings.regions.PyRegion.PyRegion.readFromProto`.
    """
        instance = cls()

        instance.encoder = MultiEncoder.read(proto.encoder)
        if proto.disabledEncoder is not None:
            instance.disabledEncoder = MultiEncoder.read(proto.disabledEncoder)
        instance.topDownMode = bool(proto.topDownMode)
        instance.verbosity = proto.verbosity
        instance.numCategories = proto.numCategories

        return instance
Beispiel #4
0
    def readFromProto(cls, proto):
        """Read state from proto object.

    proto: RecordSensorProto capnproto object
    """
        instance = cls()

        instance.encoder = MultiEncoder.read(proto.encoder)
        instance.disabledEncoder = MultiEncoder.read(proto.disabledEncoder)
        instance.topDownMode = proto.topDownMode
        instance.verbosity = proto.verbosity
        instance.numCategories = proto.numCategories

        return instance
Beispiel #5
0
  def read(cls, proto):
    """Read state from proto object.

    proto: PyRegionProto capnproto object
    """
    regionImpl = proto.regionImpl.as_struct(RecordSensorProto)
    instance = cls()

    instance.encoder = MultiEncoder.read(regionImpl.encoder)
    instance.disabledEncoder = MultiEncoder.read(regionImpl.disabledEncoder)
    instance.topDownMode = regionImpl.topDownMode
    instance.verbosity = regionImpl.verbosity
    instance.numCategories = regionImpl.numCategories

    return instance
Beispiel #6
0
    def testReadWrite(self):
        original = MultiEncoder()
        original.addEncoder(
            "dow", ScalarEncoder(w=3, resolution=1, minval=1, maxval=8, periodic=True, name="day of week", forced=True)
        )
        original.addEncoder(
            "myval", ScalarEncoder(w=5, resolution=1, minval=1, maxval=10, periodic=False, name="aux", forced=True)
        )
        originalValue = DictObj(dow=3, myval=10)
        output = original.encode(originalValue)

        proto1 = MultiEncoderProto.new_message()
        original.write(proto1)

        # Write the proto to a temp file and read it back into a new proto
        with tempfile.TemporaryFile() as f:
            proto1.write(f)
            f.seek(0)
            proto2 = MultiEncoderProto.read(f)

        encoder = MultiEncoder.read(proto2)

        self.assertIsInstance(encoder, MultiEncoder)
        self.assertEqual(encoder.name, original.name)
        self.assertEqual(encoder.width, original.width)
        self.assertTrue(numpy.array_equal(encoder.encode(originalValue), output))

        testObj1 = DictObj(dow=4, myval=9)
        self.assertEqual(original.decode(encoder.encode(testObj1)), encoder.decode(original.encode(testObj1)))

        # Feed in a new value and ensure the encodings match
        testObj2 = DictObj(dow=5, myval=8)
        result1 = original.encode(testObj2)
        result2 = encoder.encode(testObj2)
        self.assertTrue(numpy.array_equal(result1, result2))
Beispiel #7
0
    def read(cls, proto):
        """Read state from proto object.

    proto: PyRegionProto capnproto object
    """
        regionImpl = proto.regionImpl.as_struct(RecordSensorProto)
        instance = cls()

        instance.encoder = MultiEncoder.read(regionImpl.encoder)
        instance.disabledEncoder = MultiEncoder.read(
            regionImpl.disabledEncoder)
        instance.topDownMode = regionImpl.topDownMode
        instance.verbosity = regionImpl.verbosity
        instance.numCategories = regionImpl.numCategories

        return instance
    def testReadWrite(self):
        original = MultiEncoder()
        original.addEncoder(
            "dow",
            ScalarEncoder(w=3,
                          resolution=1,
                          minval=1,
                          maxval=8,
                          periodic=True,
                          name="day of week",
                          forced=True))
        original.addEncoder(
            "myval",
            AdaptiveScalarEncoder(n=50,
                                  w=5,
                                  resolution=1,
                                  minval=1,
                                  maxval=10,
                                  periodic=False,
                                  name="aux",
                                  forced=True))
        originalValue = DictObj(dow=3, myval=10)
        output = original.encode(originalValue)

        proto1 = MultiEncoderProto.new_message()
        original.write(proto1)

        # Write the proto to a temp file and read it back into a new proto
        with tempfile.TemporaryFile() as f:
            proto1.write(f)
            f.seek(0)
            proto2 = MultiEncoderProto.read(f)

        encoder = MultiEncoder.read(proto2)

        self.assertIsInstance(encoder, MultiEncoder)
        self.assertEqual(encoder.name, original.name)
        self.assertEqual(encoder.width, original.width)
        self.assertTrue(
            numpy.array_equal(encoder.encode(originalValue), output))

        testObj1 = DictObj(dow=4, myval=9)
        self.assertEqual(original.decode(encoder.encode(testObj1)),
                         encoder.decode(original.encode(testObj1)))

        # Feed in a new value and ensure the encodings match
        testObj2 = DictObj(dow=5, myval=8)
        result1 = original.encode(testObj2)
        result2 = encoder.encode(testObj2)
        self.assertTrue(numpy.array_equal(result1, result2))