private void RecordStep(IInference infer, string classifierField) { double newPrediction; if (null != infer.GetClassification(classifierField).GetMostProbableValue(1)) { newPrediction = (double)infer.GetClassification(classifierField).GetMostProbableValue(1); } else { newPrediction = _predictedValue; } if (infer.GetRecordNum() > 0) { double actual = (double)infer.GetClassifierInput()[classifierField].Get("inputValue"); double error = Math.Abs(_predictedValue - actual); PredictionValue value = new PredictionValue(); value.RecordNum = infer.GetRecordNum(); value.ActualValue = actual; value.PredictionError = error; value.PredictedValue = newPrediction; value.AnomalyFactor = infer.GetAnomalyScore(); _predictions.Add(value); } _predictedValue = newPrediction; }
/** * Used to manually input data into a {@link Region}, the other way * being the call to {@link Region#start()} for a Region that contains * a {@link Layer} which in turn contains a {@link Sensor} <em>-OR-</em> * subscribing a receiving Region to this Region's output Observable. * * @param input One of (int[], String[], {@link ManualInput}, or Map<String, Object>) */ public void Compute(IInference input) { if (!assemblyClosed) { close(); } this.input = input; ((Layer <IInference>)tail).Compute(input); }
public override object PostDeSerialize(object i) { IInference retVal = (IInference)base.PostDeSerialize(i); Assert.IsNotNull(retVal); Assert.IsTrue(retVal != i); // Ensure Objects not same Assert.IsTrue(retVal.Equals(i)); // However they are still equal! //callVerify.add(retVal); //Assert.IsTrue(callVerify.size() == 1); callVerify.Add(retVal); Assert.IsTrue(callVerify.Count == 1); return((ManualInput)retVal); }
public void TestSerializeDeSerialize() { SerializerCore serializer = Persistence.Get().Serializer(); IInference inf = new ManualInputWithPostDeserialize(); byte[] bytes = serializer.Serialize(inf); Assert.IsNotNull(bytes); IInference serializedInf = serializer.Deserialize <ManualInput>(bytes); Assert.IsNotNull(serializedInf); Assert.IsTrue(callVerify.Count == 1); }
/** * Primitive file appender for collecting output. This just demonstrates how to use * {@link Subscriber#onNext(Object)} to accomplish some work. * * @param infer The {@link Inference} object produced by the Network * @param classifierField The field we use in this demo for anomaly computing. */ private void WriteToFile(IInference infer, string classifierField) { try { double newPrediction; if (null != infer.GetClassification(classifierField).GetMostProbableValue(1)) { newPrediction = (double)infer.GetClassification(classifierField).GetMostProbableValue(1); } else { newPrediction = predictedValue; } if (infer.GetRecordNum() > 0) { double actual = (double)infer.GetClassifierInput()[classifierField].Get("inputValue"); double error = Math.Abs(predictedValue - actual); StringBuilder sb = new StringBuilder() .Append(infer.GetRecordNum()).Append(", ") //.Append("classifier input=") .Append(string.Format("{0}", actual.ToString(NumberFormatInfo.InvariantInfo))).Append(",") //.Append("prediction= ") .Append(string.Format("{0}", predictedValue.ToString(NumberFormatInfo.InvariantInfo))).Append(",") .Append(string.Format("{0}", error.ToString(NumberFormatInfo.InvariantInfo))).Append(",") //.Append("anomaly score=") .Append(infer.GetAnomalyScore().ToString(NumberFormatInfo.InvariantInfo)); pw.WriteLine(sb.ToString()); pw.Flush(); if (infer.GetRecordNum() % 100 == 0) { Console.WriteLine(sb.ToString()); } } predictedValue = newPrediction; } catch (Exception e) { Console.WriteLine(e); pw.Flush(); } }