public void MotionSequenceのシリアライズ() { var a = new MotionTarget(0.0f, new List <float> { 0.0f, 1.0f, 2.0f }); var b = new MotionTarget(1.0f, new List <float> { 0.0f, 2.0f, 4.0f }); var src = new MotionSequence(new List <MotionTarget> { a, b }); var dst = new MotionSequence(MotionGeneratorSerialization.DeepClone(src.Save())); Assert.AreEqual(src.Sequences.Length, dst.Sequences.Length); for (int n = 0; n < src.Sequences.Length; ++n) { var s = src[n]; var d = dst[n]; Assert.AreEqual(s.Time, d.Time); Assert.AreEqual(s.Values.Length, d.Values.Length); for (int m = 0; m < s.Values.Length; ++m) { Assert.AreEqual(s.Values[m], d.Values[m]); } } }
public override SequenceMakerSaveData SaveAsInterface() { return(new SequenceMakerSaveData(GetType(), MotionGeneratorSerialization.Serialize( new FixedSequenceMakerSaveData( _motionDict.ToDictionary( kv => kv.Key, kv => kv.Value.ToDictionary(x => x.Key, x => x.Value.Save()) ) )))); }
public void CanSerializeAndDeserializeParameters() { var parameter = new TemporalDifferenceQTrainerParameter( new float[] { 1, 2, 3 }, action: 3, state: MathNet.Numerics.LinearAlgebra.Single.DenseMatrix.CreateRandom(3, 3, new Normal()), nextState: MathNet.Numerics.LinearAlgebra.Single.DenseMatrix.CreateRandom(3, 3, new Normal()) ); var saveData = parameter.Save(); var copiedSaveData = MotionGeneratorSerialization.DeepClone(saveData); Assert.IsNotNull(new TemporalDifferenceQTrainerParameter(saveData)); var copiedParameter = new TemporalDifferenceQTrainerParameter(copiedSaveData); chainer.Helper.AssertMatrixAlmostEqual(copiedParameter.State, parameter.State); chainer.Helper.AssertMatrixAlmostEqual(copiedParameter.NextState, parameter.NextState); }
public override SoulSaveData SaveAsInterface() { return(new SoulSaveData(GetType(), MotionGeneratorSerialization.Serialize(Save()))); }
public override DecisionMakerSaveData SaveAsInterface() { return(new DecisionMakerSaveData(GetType(), MotionGeneratorSerialization.Serialize(Save()))); }
public override ActionSaveData SaveAsInterface() { return(new ActionSaveData(GetType(), MotionGeneratorSerialization.Serialize(SaveAsLocomotion()))); }