Форум программистов, компьютерный форум, киберфорум
C#: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/64: Рейтинг темы: голосов - 64, средняя оценка - 4.67
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54

Двухслойный персептрон, алгоритм BP. Не обучается, запоминает только последний заученный образ

21.01.2013, 14:18. Показов 13890. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Для моей научной работы мне понадобился двухслойный персптрон (вместо реализованного однослойного). Алгоритм обучения использовал - BP (алгоритм обратного распространения ошибки).
Параметры ИНС: Входной слой - 1000000 нейронов (50 изображений, 100х200 pix - зачем - не спрашивать), скрытый слой - 100 нейронов, выходной - 15 нейронов. Активационная функция - сигмоид (1/(1+Exp(-Alpha*x)).

Проблема следующая: персептрон, после обучения, независимо от поданного образа выдает 1 только на том нейроне который был обучен последним. Другими словами - он запоминает только последний образ, а остальные забывает.

Пробовал менять v (скорость обучения), количество нейронов, случайные величины начальных весов и т.д. - одинакого.
Приложил класс с этим персептроном во вложении. (вложить нет прав пока).
http://zalil.ru/34189242

Перевел на C# пример, который предложили здесь Многослойный перспетрон в 6-ом посте.
вот собрал работающий проект:
http://zalil.ru/34189254

Тот же самый глюк. В чем косяк? поставьте на путь истинный)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2013, 14:18
Ответы с готовыми решениями:

Не запоминает линии, а только текст
Вот завёл хозяйство, помогите с домашней бухг, ЛистБокс не запоминает линии, а только в .ног текст, ЛИНИИ НАДО ... ...

Массив $url[0] запоминает только один символ
Массив $url должен хранить в себе ссылку "upload/photo0.jpg" Массив $url должен хранить в себе ссылку "upload/photo1.jpg" ...

Нейронные сети "Многослойный персептрон и алгоритм обратного распространения ошибки"
Помогите, пожалуйста! Очень и срочно нужно создать многослойную нейронную сеть и обучить для определенной задачи. Тема «Многослойный...

43
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.01.2013, 20:03
Студворк — интернет-сервис помощи студентам
RABBITSV, ну если забивать гвозди отверткой, а завинчивать молотком - получится хрень. Каждый интрумент для своего дела. Хорошо, что вы нашли нужный для себя)
0
I ♥ C#
 Аватар для Delog
470 / 262 / 25
Регистрация: 07.05.2010
Сообщений: 567
25.01.2013, 20:32
Очевидно вы это и так знаете, но оставлю ссылку на принципы тренировки многослойной нейронной сети с обратным распространением ошибок для тех, кто рискнет разобраться в вашем проекте.

Цитата Сообщение от RABBITSV Посмотреть сообщение
нельзя просто так взять и поменять сигмоиду на гиперболический тангенс
Моя нейронная сеть уже натренирована на эту фразу и выдает такую картинку:
Миниатюры
Двухслойный персептрон, алгоритм BP. Не обучается, запоминает только последний заученный образ  
0
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,550
26.01.2013, 22:22
Цитата Сообщение от RABBITSV Посмотреть сообщение
В общем, как я понял, я столкнулся с довольно классической проблемой в многослойных персептронах:
1) Сколько делать нейронов во внутренних слоях - на этот вопрос вообще нет единой точки зрения, некоторые предлагают использовать полусумму количества входных и выходных нейронов. Но это ничем не подтверждено.
Да, предложение ничем не подтверждено.
Сама же проблема решается просто. Но - долго
Оптимальному размеру соответствует минимум ошибки обобщения или момент выхода этой ошибки на асимптоту. Т.е. строим график зависимости точности обобщения (ну и график зависимости точности обучения - тоже можно) от размера сети - и смотрим на поведение кривой. Если обучающая и тестовая выборки репрезентативны со статистической точки зрения - поведения кривых (кривых ошибок обучения и обобщения) будут достаточно гладкими и экстремумы и выходы на асимптоты можно будет легко увидеть глазами.
Да - точности меряются на последней эпохе обучения. Т.е. это не изменение точностей в ходе обучения - а сравнение точностей обученных сетей разного размера.
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
27.01.2013, 11:41  [ТС]
Да я знаю)
Я просто с одной стороны ограничен временем - каждый опыт у меня считается долго, уже сутки тестирую разные примеры. успешно кстати).
А с другой стороны ограничен памятью - у меня веса, при таких количествах занимают сотни мегабайт, и увеличивать их бесконечно некак.

Щас хочу еще увеличить скорость, попробовать RProp реализовать. Вроде уже и рассчитал формулы для расчета величин коррекции , а потом заметил, что там обучения не по эпохам проходит, а после предъявления всех образов (пакетный режим).. так что и формулы там похоже другие будут, т.к. сигнал ошибки по другому рассчитывается. И кода понятного нигде нет.

З.Ы. Линк на RProp
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
29.01.2013, 14:44  [ТС]
Давно уже собирался скинуть новый вариант своей тестовой нейронной сети с гиперболическим тангенсом.

Основные изменяемые параметры:
m0,m1,m2 - Число нейронов на первом(входном) / втором / выходном слоях. Стоит 40000 / 100 / 15.
TeachNum = 2; - Количество примеров которым учится персептрон (для каждого примера по одному выходному нейрону), должен быть меньше или равен m2.
IterationNum = 100; - Количество итераций обучения - сколько раз будут поданы обучающие примеры на персептрон. При данных параметрах персептрон за 100 итераций успевает сойтись практически всегда. У меня фиксирована, и нормального критерия останова нет.

MaxInitWeights = 0.00005f; - величина, 0 < x < 0.00005, которой будут случайно проинициализированы веса в начале обучения.
Рассчитывается так:
(1/2) * m0 * (MaxInitweights / 2) = 0.5. Здесь 0.5 - это подходящий участок на гиперболической сигмоиде.
Для m0= 40000; равен MaxInitWeights = 0.00005f;
Для m0= 100000; равен MaxInitWeights = 0.00002f;
Для m0= 200000; равен MaxInitWeights = 0.00001f;
Для остальных, посчитайте сами.

nu = 0.001f; - Коэффициент скорости обучения - очень геморройная вещь, будет слишком большой - веса заполнятся неведомо большой херней, и не сойдется никогда. А если будет слишком маленькой - будет сходится ооооочень долго. Выбирается почти эмпирически.
Для m0= 40000; равен nu = 0.003f;
Для m0= 200000; равен nu = 0.001f; (НЕ ФАКТ, тестирую пока что)
Для m0= 1000; равен nu = 0.01f; - А можно и больше, сходится очень легко.

Параметры a_tanh и b_tanh использованы стандартные, и менять их незачем.
alpha = 0.5 - коэффициент инерционности. Нужен, чтобы хоть как то ускорить обучение. 0.5 вроде оптимальный.


В коде дофига комментов, что непонятно, можно узнать в учебнике Хайкина. Функции обучения обычной сигмоиды я не убирал, но они там не используются.
Режим обучения - последовательный.

Работа с тестовой программой: жмем кнопку обучить... ждем когда номер итерации доберется до IterationNum, персептрон обучен. Выбираем распознаваемый образ, жмем тест, и если всё сошлось то i-го образа на i-ом нейроне должно быть что то приближающееся к 1, а на остальных - близкое к минус 1.

Держите
Вложения
Тип файла: rar MyDualLevelPerceptron.rar (50.4 Кб, 138 просмотров)
4
 Аватар для IamRain
4695 / 2702 / 735
Регистрация: 02.08.2011
Сообщений: 7,236
29.01.2013, 14:46
Чувствую, это мне скоро очень поможет.
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
29.01.2013, 14:49  [ТС]
Я на нём тестирую выбор всех этих параметров, чтобы потом их у себя использовать.
RProp я почти понял как сделать, но мне пока влом

Не по теме:

Седня поставил свой персептрон ночью учится. Утром встал, жду 5000-ую итерацию... и тут по клаве пробегает КОТ и всё сбрасывает в ноль!!! Обидно)

0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
17.02.2013, 12:40  [ТС]
Уважаемые форумчане!
Я в данных момент занят созданием сверточной нейронной сети. По этой, относительно новой сети имеется литература (даже на русском языке) и статьи по успешной реализации. И есть несколько вариантов готового кода на С++. Но мне этот код не дал почти ничего - проще написать свой, чем разбираться в чужом коде.

Я думаю свой код выложить, если доделаю, и у меня появился следующий вопрос: насколько Вам понятен тот код, который я выложил?

Конструктивная критика приветствуется Для понимания кода общее представление о нейросетях обязательно.
0
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,550
23.02.2013, 21:43
RABBITSV,

Да какая она относительно новая... Ей 25 лет в обед (первый вариант у ЛеКуна был в 88 или 89 году) - это если не вспоминать её прямых предков (когнитрон и неокогнитрон).

А если по существу вопроса... Не глядел Ваш код (пишу на С/С++/Асм, а не на шарпе).
Я свёрточную нейросетку делал - мой финальный код отличается от начального как небо от земли. Из-за того, что я провёл несколько итераций оптимизации (вплоть до использования инлайн-ассемблера для реализации многих расчётных функций). Так что всё от Вас зависит - поставите ли во главу угла скорость или наглядность кода.
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
24.02.2013, 09:52  [ТС]
Да вот во многих реализациях я видел использование массива связей вида (i, w, j) - i-координаты нейрона начала связи, w - индекс веса (элемента ядра), j - координаты нейрона конца связи.

С ними работать удобно конечно - не нужно их каждый раз их рассчитывать, но памяти этот массив жрёт мнооого.
Решил сделать без него, то есть каждый раз связи рассчитывать и проходить - слишком медленно работает. Так что массив связей оставлю.

Внимание
Терзает меня один вопрос: у меня на вход этой сети должно подаваться не одно изображение 100х200, а 10 или 30 одновременно. Вот думаю, как поступить.
Вариант 1: Соединить изображения в одно, стык-в-стык, и подать на вход сети изображение 500 х 400.
Вариант 2: Сделать на входном слое не одно изображение, а 10 (10 карт признаков 100х200).

Второй вариант предпочтительней, т.к. размеры всех карт меньше 255х255 и в массиве связей можно использовать переменные типа byte (8 бит). Но, вот только, будет ли он работать так же хорошо?
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
16.06.2013, 13:03  [ТС]
Извиняюсь, что апаю старую тему, но это замечание очень важное:

По поводу расчета количества нейронов в скрытых слоях есть замечательнейшее следствие из теорем Арнольда – Колмогорова – Хехт-Нильсена (те самые теоремы, которые доказывают представляемость Любой сколь угодно сложной функции в виде двухслойного персептрона).
Эта формула опубликована в учебнике Ясницкого (лежит вот здесь).

Вводите в ту формулу количество входных и выходных нейронов, а так же количество образов, которые ИНС должна запомнить - и вы получите количество (промежуток значений) необходимых связей между нейронами.
Там даже есть формула для того чтобы узнать количество нейронов во внутреннем слое, по количеству связей, для двухслойного персептрона.

Для трехслойного (и выше) персептрона расчитать количество связей нетрудно - сумма произведений количеств нейронов соседних слоёв.


З.Ы. Почему всё это написал?
Допустим есть двухслойный персептрон - на входе 120, на выходе - 5 нейронов. В обучающей выборке - 100 образов.
Так вот, если тупить - то можно долго подбирать количество нейронов на внутреннем слое - 30.. 50.. 100.. 200... 1000... - персептрон хоть и обучиться, но будет это делать ОООЧЕНЬ долго. А если воспользоваться формулой, то сразу получим 9 нейронов - и с ними всё у нас будет чики-пуки.

З.Ы.Ы. За достоверность представленных здесь сведений ответственности не несу, так как нейронные сети слишком мало изученная область, и ничего нельзя сказать наверняка.
0
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,550
16.06.2013, 19:56
Поверьте человеку, который про нейросети впервые услышал 20 лет назад и с тех пор с ними не расстаётся.
Так вот, все формулы оценки числа скрытых нейронов в многослойном персептроне должны быть отправлены в топку, как полный мастдай. Ибо они оценивают погоду на луне.
Доказательство очевидное. Удваиваем число примеров в выборке (дублируем каждый пример), утраиваем и т.д. - каждый раз оценка числа нейронов будет изменяться, хотя сложность задачи не поменялась. Удваиваем (утраиваем и т.д.) число входов, делая добавленные входы константными - каждый раз оценка числа нейронов будет изменяться, хотя сложность задачи не поменялась. Т.е. теоремы не оценивают никаких связей между зависимыми и независимыми признаками вообще. Про неучёт особенностей используемой целевой функции (которая говорит, как будут штрафоваться ошибки сети) я и не говорю.
Так что обучайте кучу сеток с разным числом нейронов, стройте по результатам learning curves, и на этих кривых находите экстремумы и/или выходы на асимптоту точности. Вот эти переломные точки и будут указывать на оптимальный размер. Ссылку на страницу своего сайта (где есть идеализированные картинки и ссылки на мои и чужие статьи с реальными картинками кривых обучения) я на форуме вроде бы давал - http://neuropro.ru/memo12.shtml
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
16.06.2013, 20:04  [ТС]
Да я в курсе... поэтому и написал з.ы.ы.

На эту же тему есть мера Вапника-Червоненкиса.

Ну а так, да, всё эмпирически, к сожалению, отчасти с вами согласен.

Касаемо этого: "Удваиваем число примеров в выборке, утраиваем и т.д. - каждый раз оценка числа нейронов будет изменяться" можно сказать, что в теореме (возможно) имеются ввиду все образы уникальные.

Просто большие нейронные сети имеют нехорошее свойство обучаться очень долго, и делать многочисленные тесты бывает очень затратно.
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
19.06.2013, 18:15  [ТС]
VTsaregorodtsev,
У Вас есть какие нибудь эмпирические данные о количестве слоев на скрытом слое для данной нейронной сети:

Основные параметры:
Тип: двухслойный персептрон (1 скрытый слой, полносвязный)
Входной слой: 120 нейронов
Выходной слой: 53 нейрона
Количество образов в выборке: 25000 - 30000 штук. (для теста хотя бы 1000, 5000).
Функция активации: tanh (a_tanh = 1.7159; b_tanh = 2/3; )

Сейчас вот тестирую разный конфигурации, выборка из 10 образов очень легко сходится и с 50 нейронами, со 100 - со скрипом при 98 нейронах. Для 1000 - еще не успел найти варианта.
0
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,550
19.06.2013, 23:01
Цитата Сообщение от RABBITSV Посмотреть сообщение
имеются ввиду все образы уникальные.
А что, неужели так не бывает, что уникальными образы делают неинформативные шумоподобные признаки? Исключите их - и получите дублирование примеров.
Уникальные образы - это обычно разные тестовые или ублюдочные задачи типа xor, к нейросетям притянутые за уши.

Цитата Сообщение от RABBITSV Посмотреть сообщение
У Вас есть какие нибудь эмпирические данные о количестве слоев на скрытом слое для данной нейронной сети:
У меня есть предложение изменить постановку задачи. 53 одновременно распознаваемых класса - не есть лучшее решение. Декомпозируйте задачу на подзадачи. Например, кластеризуйте данные и затем решайте задачу классификации внутри каждого отдельного кластера (внутри кластера, скорее всего, будет гораздо меньшее число классов).

Ну и сами посчитаете число синапсов в Вашей сети и вот этом моём примере: задача MNIST распознавания начертаний рукописных цифр, 60000 обучающих образов, размер картинки 28*28 (т.е 784 признака на входе), 50 скрытых нейронов, 10 выходных. У меня эта сетка на процессоре шестилетней давности с тактовой 2.13ГГц обучается (50 эпох обучения) за 2мин10сек процессорного времени. Может, Вам стоит заняться оптимизацией программы?
Правда, задачка MNIST всё же достаточно хорошая - там классы достаточно хорошо расположены в многомерном пиксельном признаковом пространстве (отдельные классы очень хорошо отделяются от других, что снижает общую сложность задачи).
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
20.06.2013, 02:00  [ТС]
Неуникальные образы, независимые признаки - это всё конечно хорошо, и на практике всё это может быть. Но формула математическая, а не эмпирическая, да и теорема, из которой она следует, доказывает только разложимость любой функции на сумму других. А всё что вы говорите - это бесконечное множество примечаний к этому следствию, например, что мол если вот эти переменные - константы, то формула меняется так-то. Но всего и не предусмотришь в двух коротких формулах.

И у меня как никак, после ряда тестов, оказалось что в скрытом слое должно быть 40 нейронов, т.е. среднее число из промежутка, что мне дала формула - [5; 98].
Но спорить об этом не стоит, это нейронные сети
----------------------------------------------------------

У меня, в данном случае, не задача распознавания образов (хотя ими я больше занимаюсь), а другая, у меня 2 образа из одного класса могут очень сильно отличаться. Сначала у меня как раз и было 5 классов, но я подумал и разделил их на подклассы, чтобы на каждый класс приходилось поменьше разных вариантов. Да и в применении оно удобнее.

Ммм... "60000 обучающих образов" и "50 эпох обучения" - я так понял у Вас параллельный режим обучения? Просто я как правило занимаюсь последовательным обучением, и у меня соответственно для обучения сети с 40 нейронами (внутри), 100 образам - уходит 100 000 итераций (ну или 200 000, чтоб по самые уши - занимает где-то 2 минуты). Правда, если увеличивать кол-во нейронов и образов, то время возрастает значительно.
Но чёто с параллельным обучением по эпохам у меня не повелось.

А вот что надо точно - это параллельные вычисления - на CUDA, например. Это бы Значительно ускорило процесс.. Но всё никак руки не доходят до него.
0
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,550
23.06.2013, 17:16
Цитата Сообщение от RABBITSV Посмотреть сообщение
я так понял у Вас параллельный режим обучения?
Обучение у меня попримерное (online) - коррекция весов после просмотра каждого очередного примера выборки. Да, я его распараллеливаю на пару потоков - при этом астрономическое время становится почти в 2 раза меньше (а время процессора, например, по диспетчеру задач, чуть увеличивается - т.к. накладные расходы на синхронизацию сделать нулевыми никак нельзя, хотя я вообще не синхронизируюсь никакими средствами операционки - только "железными" средствами самого процессора).
Обучение по эпохам (по суммарному градиенту выборки) я тоже пробовал распараллеливать. Несколько лет назад. Но попримерное обучение для больших задач обычно сходится значительно быстрее.
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
23.06.2013, 17:25  [ТС]
Ну тоесть у вас получается 60000 * 50 эпох = 3000000 итераций, я так понял.

Да я просто всё никак не соберусь распараллелить, завтра защита диссера, а этот проект - другое направление.
На CUDA можно всё это дело сделать очень быстрым.

Щас вот пока делаю тесты, но я там не учитываю обобщение,
сначала на 100 выборках, потом на 200, щас на 400.
Сначала ставил, например 74 нейрона - делал 20 тестов, сколько за 40000 итераций правильно распознает, потом для 54 нейронов, для 94 нейронов, и находил подходящее количество.

До 1000 выборок еще не дошёл.
0
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,550
23.06.2013, 17:54
Цитата Сообщение от RABBITSV Посмотреть сообщение
тоесть у вас получается 60000 * 50 эпох = 3000000 итераций
Ну да, если называть итерацией сработку сети (сработку вперёд и, при необходимости, назад с коррекцией весов) на отдельном обучающем примере.
0
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
23.06.2013, 18:03  [ТС]
Тут еще есть небольшая проблема с переобучением сети, например:
При 100 выборках - после 200 000 - 500 000 итераций распознаёт 100 из 100;
При 200 выборках - после 1 млн итераций распознаёт 190 - 200 из 200, а после 2 млн - 195 - 200 - то есть обучатся вроде как перестала уже, и может быть началось переобучение.
У меня просто нет еще к сожалению там метода для определения обобщающей способности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2013, 18:03

Как запустить Windows с жесткого диска, если есть только её образ
вобщем проблема такая: купил новый комп, скинул диск Д со старого харда на новый, на диске есть образ винды, платить 800руб за установку не...

Почему при скачивании любой игры скачивается только образ диска?
подскажите пожалуйста почему при скачивании любой игры скачивается только образ диска

Материаловедение. Двухслойный диэлектрик
Здравствуйте! В общем столкнулся с такой проблемой, учусь заочно, тему эту совсем не знаю, помогите люди добрые :3 Кто решит, свой номер...

Не могу записать двухслойный DVD.
Записывал Nero 7, она выдает http://imagepost.ru/?v=488/wTzQQiTWCVfMjX9z8hQO.jpg Пробывал другие проги, но они тоже не справились:wall:...

Отправляет только последний чекбокс
Добрый вечер. Не могу решить проблему с отправкой чекбоксов. Обратная отправляет только последний чекбокс. Уже двое суток ковыряюсь в php...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru