Ответы пользователя по тегу Нейронные сети
  • Как определять количество нейронов и слоев в нейронной сети?

    @GrKon
    Это зависит от того что за процесс сидит в твоих 100 стеках по 4 числа. Судя по 100х4 ты пытаешься предсказать изменение курса на бирже.
    1. Мое мнение - что для коротких интервалов это дело гиблое (совсем).
    2. Делал лаболаторку на эту тему так что пробовал на зуб.

    Если все таки хочешь попробовать - в общих чертах:
    3. Для начала возьми от 10000 (лучше 100000) свечей (min, max, in, out) можно и val добавить для очистки совести .
    4. найди и что-то сделай с временными дырами - просто так оставлять нельзя - сильно портит распределение данных
    5. Разделить на train, val, test. Нормализуй. Организуй подачу данных для обучения скользящим окном шириной пусть 100 и шагом 1-10. (лучше использовать dataloader)
    6. Для начала попробуй научить сеть предсказывать значение (лучше не следующее а через одно (+2) - если получится - будет шанс предсказать +3, +4 и т.п.
    7. LSTM - 1-2 слоя по 5-500 нейронов, затем 1-3 полносвязных
    8. Начинать с архитектуры попроще - если учится (лучше чем орел/решка) - добавлять нейроны-слои (по очереди) - пока не начнет переучиваться.
    ...
    9. Максимально убирай абсолютные значения - а то сеть научится "базе" и будет имитировать предсказание. (Нормализация вещь нужная но здесь не поможет)
    Ответ написан
    Комментировать
  • Каким образом учить нейросеть(свёртрчную, рекуррентую, трансформер)?

    @GrKon
    методом обратного распространения ошибки
    Ответ написан
    Комментировать
  • Как решить задачу распознавания типа застройки по спутниковому снимку?

    @GrKon
    Распознавание секторами или тайлами - думаю разные задачи. Определись сразу.
    Для секторов:
    Если нет размеченного датасета:
    1. Накачай спут.снимки городов.
    2. Разметь вручную (можно в фотошоп - слоями по типам застройки) или поищи приблуду для разметки сегментирования - видел в DeepFaceLab
    3. Аугментируй - в твоем случае это в основном повороты, можно немного масштаб, гамма и шум - процентов на 10-20. Напиши программу для аугментации раз в 10.
    4. В результате надо получить набор данных
    200-500 - можно получить хоть какой-то положит результат.
    2000-5000 - можно показать как результат решения уч.задачи. (аналог тому, что в статье).
    20000-50000 - можно надеяться на пром.результат.
    5. Обучи u-net сетку.
    6. 100-500 раз обучи сетку меняя параметры сети (в т.ч. всякие дропауты и бэтч нормализации) и гиперпараметры. (наверно лучше это делать на маленьком наборе а затем дошлифовать на большом наборе.
    7. контроллируй переобучение.
    8.используй Chat GPT как советника.

    По трудозатратам - думаю займет полных дней 10 на средний результат.
    Ответ написан
    1 комментарий
  • Как использовать CNN, если один из каналов - входные данные, а другой - выходные?

    @GrKon
    Если я правильно понял задачу, то для начала для решения использовал бы автоэнконер или u-net (в общем сети генерации изображений). На вход подаем каналы с известными данными (рельеф, препятствия, сегментированные площади орошения) - выход обучать схеме расположения дождевателей. Для обучения необходимы пары - изображения без дождевателей, и с дождевателями (или слой только с дождевателями). Понятно, что проще обучить на получение слоя только с дождевателями.
    Ответ написан
  • Как запихнуть трехмерный тензор в Input?

    @GrKon
    Не очень понятен вопрос - вот пример использования model.fit_generator:

    # initialize the number of epochs and batch size
    EPOCHS = 100
    BS = 32

    # construct the training image generator for data augmentation
    aug = ImageDataGenerator(rotation_range=20, zoom_range=0.15,
    width_shift_range=0.2, height_shift_range=0.2, shear_range=0.15,
    horizontal_flip=True, fill_mode="nearest")

    # train the network
    H = model.fit_generator(aug.flow(trainX, trainY, batch_size=BS),
    validation_data=(testX, testY), steps_per_epoch=len(trainX) // BS,
    epochs=EPOCHS)

    подробней в https://russianblogs.com/article/6460835835/
    Ответ написан
    Комментировать
  • Каким образом можно дообучить модель, добавив новые символы?

    @GrKon
    когда не хватает памяти - уменьшайте размер batch. При обучении весь набор данных скажем 100000 делится на пачки например по 500 получаем 200 пачек (batch) по 500 примеров. Обработка всего набора (в нашем случае 200 пачек) - это эпоха. Пачка обрабатывается за раз чем она меньше тем менше памяти.
    Ответ написан
  • Что я делаю не так, и почему нейросеть не генерирует уникальный текст?

    @GrKon
    как минимум у вас нет кода обучения сети и предсказания.
    Общая схема (обучение с учителем):
    - грузим вход/выход (рабочий 70% и тестовый 30%
    - создаем/конфигурируем модель (то, что у вас есть)
    - обучаем модель
    - получаем результаты по обученной модели
    (последних двух пунктов в коде не наблюдается.)
    Ответ написан
    Комментировать