Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }