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
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
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
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
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", 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))
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))