/// <summary> /// Создаёт новый экземпляр схемы тренировки нейросети, без сохранения в базу данных. /// </summary> public SkyTrainScheme CreateTrainScheme() { SkyTrainScheme trainScheme = this.Context.ObjectAdapters.TrainSchemes.CreateObject(); trainScheme.NetworkID = this.ID; return(trainScheme); }
/// <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); }
internal SkyTrainEpoch(int epochNumber, SkyTrainEpochParams epochParams, SkyTrainScheme trainScheme) { if (epochNumber <= 0) { throw new ArgumentException("Epoch number must be greater than zero.", "epochNumber"); } if (epochParams == null) { throw new ArgumentNullException("epochParams"); } if (trainScheme == null) { throw new ArgumentNullException("trainScheme"); } this.EpochNumber = epochNumber; this.Params = epochParams; this.TrainScheme = trainScheme; }