Akina, На уровне интерфейса это нереально. Заблокировать web интерфейс? Пользователь обновит страницу и повторит. Один вариант крутится в голове это сделать свой планировщик, но это геморно втискивать его уже в работающую систему.
Вы правильно сказали все, куча разрозненных операций, неконтролируемых sql. Весь контроль идет на бекенде (в коде) не в транзакциях
Akina, это вы говорите про полную транзакцию, которая проверяет и создает объект в одной транзакции. У нас все операции разбиты на мелкие транзакции. Транзакция на проверку, транзакция на запись, транзакция. Т.е. например таблица обджект обладает 5 поляуми. Объект заполняется не одним запросом, а мелкими. Например чтобы создать тело объекта, я проверю некоторое условие в базе, потом отправлю трнзакцию на создание объекта т.е. выдам ему ID потом имея ID создам в таблице Свойств уникальную пару ID, СВойство ID, и запишу например число. Как буд то вы работает с ООП. Мелкие запросы. Вот тут и возникает параллельный доступ к данным и коллизии.
есть главный объект (узел) у него дочернии объекты со своими свойствами. Свойства уникальны в пределах объекта. Т.е. уникальность на уровне свойств имеется. Уникальность у объекта только по id. Из за подвисуна может создасться два таких объекта. Потому что пользователь не дождался предыдущей транзакции, обновил страницу и нажал создать снова
У нас было раньше два сервера. Один из которых был старый и на нем были некоторые ресурсозатратные операции. Как то жили и вытягивали. Потом по определенным причинам, пришлось объединить базы на один сервер. И при разовой высокой нагрузке по расчету годовому, стали наблюдаться как раз таки проблемы. Что транзакция стала подвисать, а пользователь он такой неудержимый. Обновляет страницу и и снова создает запрос на создание объекта из за чего появляется ошибка по уникальному ключу
freeExec, пробовал код со статьи https://machinelearningmastery.com/how-to-develop-...
Multiple Parallel Input and Multi-Step Output т.е. подаю 1 семпл размерностью 100 получаю допустим семпл из 50 значений.
подключил свой датасет и loss уходит в Nun функция активации relu, поменял на tanh в nun перестало уходить, но все графики стали себя в какой то мере повторять разница только по высоте графика, но геометрически они себя повторяли. На форумах пишу либо это градиентный срыв либо в датасете есть значения Nun. Значений Nun нету проверял. Пробовал делать градиент отсечки 0.5, nun ушел но графики предсказанные такие себе .. все перетыкал даже не знаю где еще подробной инфы почитать
freeExec, так я подаю на вход вектор из 100 значений и жду одно. Потом собираю новый вектор из 100 но выкидываю первое значение и добовляю новое. И так далее добавляя в вектор новые предикты пока вектор полностью не заполнится только новыми значениями. Как будто то у меня уже был вектор из этих значений и я просто двигал окно на N+1 сто раз. Ведь тренинг так же работает у него есть допустим 990 семплов и в каждом последующем семпле окно сдвинуто на N+1. Только тут я делаю новый семпл сам потому что не имею следующих
freeExec, я оставлял 2 таких вопроса, но что то ответов нет либо ни кто толком не знает либо я как то плохо описывал что хотел. Ну вот смотрите у меня есть допустим 1000к датасет я его разбиваю на 990 семплов в каждом 100 значений сиквенции предсказание + одно число и на выходе я получаю (990,1 ) шейп с предскантем сетки. т. Е. Я могу в фит запихать всю выборку потому что знаю ее. П в случае с предсказанием за выборку Я могу подать в предикт только 1 семпл и получить 1 предик. Как получит N +2 число? А для этого формировал новый семпл с этим числом на конце и предсказывал новое и теперь уже два новых числа вхонце семпл и так добавлял новые предсказания в семпл пока оно полностью не заменится новыми предсказанными значениями. Суть такая что я вместо одного раза как в тренинге передав 990 семплов получал 990 предиктов делал итеративный вызыв предикт N кол-во раз чтобы получить N кол-ва предиктов.
Проблема в том что с тренингом предсказнте сети нормально но вот предсказание за датасет ужасное
Здравствуйте, у меня второй столбец это показания тока а первый вибрации, я беру окно размером N в котором col1: i ... i+100, col2: i...i+100 и прогнозирую на шаг вперед, таргет значение col1: i+101 и так далее.
Пример я брал с сайта https://machinelearningmastery.com/how-to-develop-...
Борис Животное, у меня таски лежат в массиве, и пока есть рабочая такска я не запускаю другие такски. Можно конечно с флагом сделать, но вот почему то решил так)
Борис Животное,
private Task NetworkEfficiency()
{
return new Task(() =>
{
try
{
Console.WriteLine("NetworkEfficiency : Start");
List result = new List();
List mix = new List();
if(cuurModeNumber)
result = Enumerable.Range(0, 10).Select(x => new NeuralNetwork.ResultEffect() { labl = x }).ToList();
else
result = Enumerable.Range(0, NeuralNetwork.alf.Length).Select(x => new NeuralNetwork.ResultEffect() { labl = x }).ToList();
Stopwatch time = new Stopwatch();
time.Start();
for (int i = 0; i < mix.Count; i++)
{
result = NeuralNetwork.EfficiencyEvaluation(mix[i].pixels,
mix[i].width, mix[i].height,
mix[i].label, result);
edit = true;
for (int i = 0; i < result[0].neurons.Length; i++)
{
Invoke((MethodInvoker)(()=>
{
(flowLayoutPanel1.Controls[i] as OutNeuron).Value = result[0].neurons[i].Value;
}));
}
Вы правильно сказали все, куча разрозненных операций, неконтролируемых sql. Весь контроль идет на бекенде (в коде) не в транзакциях