Задать вопрос
  • Многослойный перцептрон - как выполнить действия?

    @rPman
    iamserge, что значит медленно работает?

    если матрица влезает в быструю память GPU (сотни килобайт) то вычисления будут 100-1000кратно быстрее чем на процессоре, если влезает в gpu vram то в 10-100 кратно, если не влезает (используется трансфер pci-e) то в зависимости от конфига - в считанные разы быстрее.

    количество весов в слое - квадрат от размерности (N*M), суммарное количество весов - линейно от количества слоев.

    на сколько я знаю, реализация вычислений с матрицами на gpu уже максимально оптимизирована, и там уже идет счет на затраты энергии на хранение бит в памяти (условно единицы больше энергии требуют чем нули, при их определенном количестве gpu тротлит)
    Написано
  • Многослойный перцептрон - как выполнить действия?

    @rPman
    обычно перцептрон используют как классификатор, выходы это классы а значения 0 - нет, 1 - да

    формально можно использовать выходные и как значения от 0 до 1 например для оценки величины, но на сколько я помню нейронные сети плохо тут работают, пример если у тебя были примеры где значения выхода 0.1 0.2 0.3... от входа например линейно, то нейронная сеть для значений между ними может подставить не линейно, т.е. ты ожидаешь 0.14, 0.15, 0.16 а нейронка выдаст 0.11, 0.12, 0.19 и будет права, значения ведь между и друг с другом так же отсортированы
    -------

    нейронка МОЖЕТ принимать на вход любые значения, но работать она будет хуже, так как для нормализации в этом случае она будет использовать первый скрытый слой (тебе придется делать дополнительный), т.е. ты будешь тратить дорогие ресурсы на ее обучение только чтобы провести эту нормализацию, которую тупо дешевле сделать однократно для исходных данных

    -----

    да, на вход нейронка может получать ЛЮБОЙ идеологически тип входа, цвет пиксела, вес, разницу двух значений (т.е. буквально производная) и т.п. весь смысл нейронных сетей что они могут внутри себя разобраться что там на входе и работать, проблема только в лишних затратах ресурсов, если данные не подготовить удобными. Не нужно даже заботиться о том что рядом стоящие значения были соседними значениями в векторе.... т.е. к примеру ты пикселы представляешь тремя числами RGB и соответственно изображение можешь представить либо как три отдельные матрицы либо одна матрица но для каждого пиксела друг за другом идут RGB числа. Нейронке абсолютно пофиг.

    Но есть правило, что соседние значения в реальности должны быть соседними во входах, нельзя к примеру кодировать разные цвета номерами в input (типа красный 1, синий 2 и т.п.), классы лучше задавать весами (по весу на класс) со значением 0 и 1.
    Написано
  • После передачи файлов по сети портятся контрольные суммы?

    @rPman
    это может быть банально разгон, памяти процессора и т.п.
    Написано
  • Многослойный перцептрон - как выполнить действия?

    @rPman
    Нормализация вектора A, это когда его значения сдвигают (плюс/минус) и пропорционально (уменьшают/увеличивают кратно) таким образом, чтобы значения находились на некотором интервале, общем для всей сети, например [0..+1] или [-1..+1]. Еще там есть линейные и нелинейные методы нормализации (т.е. будут ли значения близкие к минимальным быть на том же расстоянии что и близкие например к максимальным)...

    Делать это можно разными способами, например если значения у тебя гуляют от конкретных значений min/max то можно использовать сдвиг (A-min) а затем разделить на (max-min), полученное значение будет на интервале [0..1]. Напоминаю что в этом случае min/max должны быть костантой на все время существования сети, т.е. если ты добавляешь данные, и они выходят за min/max предыдущей версии выборки, то нужно переобучать (правда обычно дообучение будет простым, веса за считанные шаги скорректируются под новые значения).

    Если значения гуляют от 0 до бесконечности, можно использовать 1/1+A

    Сигмоида - одна из функций нормализации. Именно поэтому значение выходных векторов должны быть [-1..+1]

    Смысл в том чтобы сохранить у функции значения свойство непрерывности и монотонности, плюс алгоритмы обучения нейросети работают лучше если все нормализовано.
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    SyntaxWarning: invalid escape sequence '\P'

    повторяю
    в python нужно дублировать \ в строках
    либо добавь R перед первой " чтобы строки стали raw
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    очень и очень странно, если указать полный путь к драйверу, и указать полный путь к браузеру должно 100% работать, драйвер у тебя запускается без ошибок (выше у тебя пример) так же запускается браузер (проверь).

    p.s. я продолжаю считать что главная причина - русские буквы в путях, у тебя весь питон в профиль установлен, в windows с этим большие проблемы, когда запускают портированный код и не только (половина игр не могут записать сохранения если профиль windows по русски назван)
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    перечитай мой комент я дописал

    у тебя проблема не с selenium а с установкой, ты и браузер поставил куда то в жопу мира, и пути указываешь через задницу
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    в python нужно дублировать \ в строках
    options.setBinary("D:\Python_vscode\selenium\chrome-win64\chrome.exe")

    тебя самого это не смущает, что слеши в пути обратные? это должно работать но некрасиво, сделай однообразно
    service = "./chrome-win64/chrome.exe"

    либо добавь R перед первой " чтобы строки стали raw

    и напиши для обоих полный путь чтобы уж с гарантией
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    добавь
    options.setBinary("полный путь до chrome.exe");
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    в документации к chromedriver пишут что версии должны совпадать (хз до какого уровня, но явно первое число должно совпадать)
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    ну вот версия 114.0.5735.90 теперь смотри версию google chrome в его меню
    Написано
  • Как узнать сумму выброщенных чисел из массива?

    @rPman
    muminwww, может нужно было лучше условие задачи говорить? мы же тут догадываемся что у тебя за задача

    ну отсортируй массив добавив array_sort или лучше достаточно найти максимальный элемент - $n=max($foo)
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    да у становить chromium благодаря гугл правильно сложно, особенно в windows
    используй google chrome
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    еще покажи версию драйвера
    chromedriver.exe --version
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    а chromium или google chrome совместимый браузер у тебя установлен на компьютере?
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    я туплю у тебя же service=service

    а значение service = "./chromedriver.exe" путь в линуксовом стиле, у тебя windows, у бери ./ из пути либо напиши полный путь
    Написано
  • Selenium не видит мой webdriver,что делать?

    @rPman
    если что у тебя там все равно по коду пакеты с русскоязычного пути используются, но это возможно уже не причина.

    Добавь executable_path="путь до cromedriver.exe" в
    driver = webdriver.Chrome(options=options, service=service, executable_path="путь до cromedriver.exe")
    Написано
  • Как выйти из функции js которая вызывает саму себя?

    @rPman
    winser, когда ты делаешь функцию async то если внутри ты вызываешь await вызов другой асинхронной функции, то текущая функция преостанавливает свою работу пока эта не завершится, соответственно делаешь рекурсию из вызовов асинхронной функции, а для 'завершения работы' делаешь специально функцию которая никогда не завершится - можно считать что произошел выход из рекурсии ;)
    Написано
  • Где можно создать виртуальную машину чтобы использовать андроид студио на ней?

    @rPman
    android sdk поставляется с qemu эмулятором для отладки android приложений, он плохо (считай никак) работает внутри любой системы виртуализации (провайдеры обычно используют qemu/hyper-v/vmware/xen).

    Но если используется linux, то возможно использование паравиртуализации (до некоторых пор это было openvz/virtuozzo сейчас скорее всего некоторые еще и на базе lxc/lxd) то если провайдер этого не запрещает (модули поддержки включает он) то возможно каскадно запускать qemu/vbox. Узнать, поддерживается ли такая каскадная виртуализация можно только у саппорта.

    windows паравиртуализацию не поддерживает, поэтому тут выбирать только физическое железо. Но провайдеры обычно не предоставляют такие машины в режиме облако (оплата по использованию), а значит оплачивать такие машины нужно будет скорее всего ежемесячно или даже за весь год (за год цены обычно с хорошей скидкой). Если вам действительно нужно, то максимальная производительность будет получена именно таким способом (но это заметно дорого, за несколько месяцев набежит стоимость портативного компьютера с переносным аккумулятором). linux так тоже можно запускать и это дешевле (не надо платить за лицензию), так же дешево можно попытаться найти десктопное железо, которое некоторые провайдеры стали предлагать как альтернатива.

    p.s. у qemu есть режим эмуляции без поддержки аппаратной виртуализации, работает он примерно в 10 раз медленнее (особенно если он запущен внутри виртуалки). Скорее всего его можно включить и для android, но я и врагу бы не пожелал отладку приложений в таких условиях.
    Написано
  • Как выйти из функции js которая вызывает саму себя?

    @rPman
    winser, на javascript есть только два метода выхода из рекурсии, исключения и последовательный выход по условию.

    Можно придумать дикий говнокод с async await но так делать не надо
    Написано