Exemple #1
0
        public void AddConnection(string p_inLayerId, string p_outLayerId, Connection p_connecion)
        {
            NeuralGroup inGroup  = _layers[p_inLayerId].OutputGroup;
            NeuralGroup outGroup = _layers[p_outLayerId].InputGroup;

            _connections.Add(p_connecion.Id, p_connecion);
            if (inGroup != null)
            {
                inGroup.AddOutConnection(p_connecion);
            }
            if (outGroup != null)
            {
                outGroup.AddInConnection(p_connecion);
            }

            CreateGraphBase();
        }
Exemple #2
0
        public Connection(NeuralGroup p_inGroup, NeuralGroup p_outGroup, bool p_trainable, string p_inLayer = null, string p_outLayer = null)
        {
            _id       = GenID();
            _inGroup  = p_inGroup;
            _outGroup = p_outGroup;
            if (p_inGroup != null)
            {
                _inDim = p_inGroup.Dim;
            }
            else
            {
                _inDim = p_outGroup.Dim;
            }
            _outDim    = p_outGroup.Dim;
            _weights   = BasePool.Instance.Get(_outDim, _inDim);
            _trainable = p_trainable;

            _inLayer  = p_inLayer;
            _outLayer = p_outLayer;
        }
Exemple #3
0
        public Connection AddConnection(string p_inLayerId, string p_outLayerId, Connection.INIT p_init = Connection.INIT.UNIFORM, bool p_trainable = true, float p_limit = 0.05f)
        {
            NeuralGroup inGroup  = _layers[p_inLayerId].OutputGroup;
            NeuralGroup outGroup = _layers[p_outLayerId].InputGroup;

            Connection connection = new Connection(inGroup, outGroup, p_trainable, _layers[p_inLayerId].Id, _layers[p_outLayerId].Id);

            connection.Init(p_init, p_limit);
            _connections.Add(connection.Id, connection);
            if (inGroup != null)
            {
                inGroup.AddOutConnection(connection);
            }
            if (outGroup != null)
            {
                outGroup.AddInConnection(connection);
            }

            CreateGraphBase();

            return(connection);
        }
Exemple #4
0
        public Connection(string p_id, NeuralGroup p_inGroup, NeuralGroup p_outGroup, JSONObject p_data)
        {
            _id       = p_id;
            _inGroup  = p_inGroup;
            _outGroup = p_outGroup;
            if (p_inGroup != null)
            {
                _inDim = p_inGroup.Dim;
            }
            else
            {
                _inDim = p_outGroup.Dim;
            }
            _outDim = p_outGroup.Dim;

            int nRows = _outGroup.Dim;
            int nCols = _inGroup == null ? _outGroup.Dim : _inGroup.Dim;

            _weights = BasePool.Instance.Get(nRows, nCols);

            byte[] buffer = Convert.FromBase64String(p_data["weights"].str);

            MemoryStream stream = new MemoryStream(buffer);
            BinaryReader reader = new BinaryReader(stream);

            for (int i = 0; i < nRows; i++)
            {
                for (int j = 0; j < nCols; j++)
                {
                    _weights[i, j] = reader.ReadSingle();
                }
            }

            _trainable = p_data["trainable"].str.Equals("1");

            _inLayer  = p_data.HasField("inlayer") ? p_data["inlayer"].str : null;
            _outLayer = p_data.HasField("outlayer") ? p_data["outlayer"].str : null;
        }