public void Save(Stream s, bool saveCache, bool saveGrad) { using (var writer = new BinaryWriter(s, Encoding.UTF8, true)) { Weight.Save(s); writer.Write(saveCache); writer.Write(saveGrad); if (saveCache) { Cache1.Save(s); Cache2.Save(s); CacheM.Save(s); writer.Write(Timestep); } if (saveGrad) { Gradient.Save(s); } } }