예제 #1
0
        /// <summary>
        /// Создаёт новый экземляр запроса к данному состоянию нейросети.
        /// </summary>
        /// <param name="user">Пользователь, формирующий запрос.</param>
        public SkyNetworkRequest CreateRequest(ISkyUser user)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            this.CheckExists();

            SkyNetworkRequest request = this.Context.ObjectAdapters.NetworkRequests.CreateObject();

            request.NetworkID        = this.Network.ID;
            request.NetworkVersionID = this.NetworkVersion.ID;
            request.NetworkStateID   = this.ID;
            request.UserID           = user.ID;
            request.Status           = SkyNetworkRequestStatus.Creating;
            return(request);
        }
예제 #2
0
 ISkyNetworkRequest ISkyNetwork.CreateRequest(ISkyUser user)
 {
     return(this.CreateRequest(user));
 }
예제 #3
0
 /// <summary>
 /// Создаёт новый экземляр запроса к активному состоянию активной версии данной нейросети.
 /// </summary>
 /// <param name="user">Пользователь, формирующий запрос.</param>
 public SkyNetworkRequest CreateRequest(ISkyUser user)
 {
     this.CheckActiveVersion();
     return(this.ActiveVersion.CreateRequest(user));
 }
예제 #4
0
 ISkyTrainRequest ISkyNetworkVersion.CreateTrainRequest(int trainSchemeID, int initialStateID, ISkyUser user)
 {
     return(this.CreateTrainRequest(trainSchemeID, initialStateID, user));
 }
예제 #5
0
        /// <summary>
        /// Создаёт новый запрос тренировки нейросети для заданной схемы тренировок.
        /// Тренировка нейросети может быть инициализирована на основе другого состояния нейросети.
        /// </summary>
        /// <param name="trainSchemeID">Идентификатор схемы тренировок.</param>
        /// <param name="initialStateID">Идентификатор состояния нейросети, на основе которого будет выполнена тренировка.
        /// Если тренировка является первичной, необходимо передать значение 0.</param>
        /// <param name="user">Идентификатор схемы тренировок.</param>
        public SkyTrainRequest CreateTrainRequest(int trainSchemeID, int initialStateID, ISkyUser user)
        {
            if (trainSchemeID == 0)
            {
                throw new ArgumentNullException("trainSchemeID");
            }
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            this.CheckExists();

            //получаем схему тренировок.
            SkyTrainScheme trainScheme = this.Context.ObjectAdapters.TrainSchemes.GetObject(trainSchemeID, true);

            //проверяем, что схема тренировок принадлежит данной сети.
            if (trainScheme.Network.ID != this.Network.ID)
            {
                throw new Exception(string.Format("The training scheme with ID={0} does not belong to the neural network with ID={1} to which this version of the neural network belongs.",
                                                  trainScheme.ID, this.Network.ID));
            }

            //получаем инициализационное состояние.
            SkyNetworkState initialState = null;

            if (initialStateID > 0)
            {
                initialState = this.Context.ObjectAdapters.NetworkStates.GetObject(initialStateID, true);

                //проверяем, что инициализационное состояние принадлежит данной версии.
                if (initialState.NetworkVersion.ID != this.ID)
                {
                    throw new Exception(string.Format("The network state with ID={0} does not belong to the version of the neural network with ID={1}.",
                                                      initialState.ID, this.ID));
                }
            }

            //создаём запрос тренировки.
            SkyTrainRequest trainRequest = this.Context.ObjectAdapters.TrainRequests.CreateObject();

            trainRequest.NetworkID        = this.Network.ID;
            trainRequest.NetworkVersionID = this.ID;
            trainRequest.TrainSchemeID    = trainScheme.ID;
            trainRequest.InitialStateID   = initialState != null ? initialState.ID : 0;
            trainRequest.UserID           = user.ID;
            trainRequest.Status           = SkyTrainRequestStatus.Creating;

            //возвращаем созданный экземпляр.
            return(trainRequest);
        }
예제 #6
0
 /// <summary>
 /// Создаёт новый экземляр запроса к активному состоянию данной версии нейросети.
 /// </summary>
 /// <param name="user">Пользователь, формирующий запрос.</param>
 public SkyNetworkRequest CreateRequest(ISkyUser user)
 {
     this.CheckActiveNetworkState();
     return(this.ActiveNetworkState.CreateRequest(user));
 }