public void Save(string filename) { var file = File.Create(filename); using (var writer = XmlWriter.Create(file, new XmlWriterSettings { Indent = true })) { writer.WriteStartElement(GetType().Name); //Constructor arguments writer.WriteElementString("matsize", _matsize.ToString()); writer.WriteElementString("vecsize", _vecsize.ToString()); writer.WriteElementString("labels", _labels.ToString()); writer.WriteElementString("depth", _depth.ToString()); writer.XmlSerialize(_args); //Layers foreach (var conv in ConvolutionalLayers) { conv.Serialize(writer); } LinearHiddenLayer.Serialize(writer); OutputLayer.Serialize(writer); writer.WriteEndElement(); } file.Close(); }
public Vector <float> Compute(StatePair input, bool training) { // Forward propagate. var img = InputLayer.Compute(input.Spatial); for (int i = 0; i < ConvolutionalLayers.Length; i++) { img = SubSampleLayers[i].Compute(ConvolutionalLayers[i].Compute(img)); } _vecp.left = FlattenLayer.Compute(img); _vecp.right = LinearHiddenLayer.Compute(VectorInput.Compute(input.Linear)); IsOutputFromTraining = false; var res = OutputLayer.Compute(CombinationLayer.Compute(_vecp)); if (ValuesComputed != null) { ValuesComputed(res, training); } return(res); }