public NeuralLayeredNetwork Deserialize(Stream stream) { using var reader = new StreamReader(stream); var json = reader.ReadToEnd(); var options = new JsonSerializerOptions { Converters = { new LayerInfoConverter() }, WriteIndented = true }; var info = JsonSerializer.Deserialize <NetworkInfo>(json, options); var inputShape = new Shape(info.InputShape.B, info.InputShape.C, info.InputShape.H, info.InputShape.W); var network = new NeuralLayeredNetwork(inputShape); foreach (var layerInfo in info.LayersInfo) { var layerType = Type.GetType(layerInfo.LayerType); if (layerType is null) { throw new ArgumentException(); } var layer = (BaseLayer)Activator.CreateInstance(layerType, layerInfo); network.AddLayer(layer); } return(network); }
public NeuralLayeredNetwork Deserialize(string filePath) { FileInfo file = new FileInfo(filePath); if (!file.Exists) { throw new ArgumentException($"File {filePath} does not exists"); } if (file.Extension != ".cnn") { throw new ArgumentException($"File {filePath} has wrong format"); } NetworkInfo info; BinaryFormatter formatter = new BinaryFormatter(); using (var stream = new FileStream(filePath, FileMode.OpenOrCreate)) { info = (NetworkInfo)formatter.Deserialize(stream); } var inputShape = new Shape(info.InputShape.B, info.InputShape.C, info.InputShape.H, info.InputShape.W); var network = new NeuralLayeredNetwork(inputShape); foreach (var layerInfo in info.LayersInfo) { var layerType = Type.GetType(layerInfo.LayerType); if (layerType is null) { throw new ArgumentException(); } var layer = (BaseLayer)Activator.CreateInstance(layerType, layerInfo); network.AddLayer(layer); } return(network); }
public NeuralLayeredNetwork Deserialize(string filePath) { FileInfo file = new FileInfo(filePath); if (!file.Exists) { throw new ArgumentException($"File {filePath} does not exists"); } if (file.Extension != ".json") { throw new ArgumentException($"File {filePath} has wrong format"); } NetworkInfo info; using (var stream = new FileStream(filePath, FileMode.Open)) { using var reader = new StreamReader(stream); var json = reader.ReadToEnd(); var options = new JsonSerializerOptions { Converters = { new LayerInfoConverter() }, WriteIndented = true }; info = JsonSerializer.Deserialize <NetworkInfo>(json, options); } var inputShape = new Shape(info.InputShape.B, info.InputShape.C, info.InputShape.H, info.InputShape.W); var network = new NeuralLayeredNetwork(inputShape); foreach (var layerInfo in info.LayersInfo) { var layerType = Type.GetType(layerInfo.LayerType); if (layerType is null) { throw new ArgumentException(); } var layer = (BaseLayer)Activator.CreateInstance(layerType, layerInfo); network.AddLayer(layer); } return(network); }
public NeuralLayeredNetwork Deserialize(Stream stream) { NetworkInfo info; BinaryFormatter formatter = new BinaryFormatter(); info = (NetworkInfo)formatter.Deserialize(stream); var inputShape = new Shape(info.InputShape.B, info.InputShape.C, info.InputShape.H, info.InputShape.W); var network = new NeuralLayeredNetwork(inputShape); foreach (var layerInfo in info.LayersInfo) { var layerType = Type.GetType(layerInfo.LayerType); if (layerType is null) { throw new ArgumentException(); } var layer = (BaseLayer)Activator.CreateInstance(layerType, layerInfo); network.AddLayer(layer); } return(network); }