• Для чего выполнять функцию в assert?

    @rPman
    assert будет вызван только когда сборка проекта в отладочном режиме и будет проигнорирован в релизе, т.е. переменная _debugIsSelecting будет true для режима release и false - для debug, после вызова этого assert
    Ответ написан
    Комментировать
  • Как подобрать начальные входные весовые коэффициенты (веса) для нейронной сети?

    @rPman
    Веса инициализируют случайно, в каких то случаях нужно смотреть, какая функция стоит у нейрона (какую операцию проводишь после умножения вектора входов слоя на матрицу весов), нужно смотреть, какой интервал значений ожидается после нее и на следующем слое (0..1 или -1..1 или 0..inf), причем допускаю что возможны конфигурации сетей, в которых на разных слоях эти пороговые значения разные (хотя на практике лучше нормализовать до 1 так или иначе). Это нужно чтобы первоначальное наполнение для нейронной сети имело смысл, тупой пример, если все веса инициализировать такими значениями что значения на выходе всех нейронов станет одним значением (близким к 1 например) то такая сеть скорее всего не сможет обучиться.

    Еще момент, первые слои нейронной сети можно инициализировать, скопировав таковые из другой сети по проще, которую обучали на ваших данных, даже с использованием алгоритмов без учителя

    Отличный пример, нейронную сеть, обрабатывающую изображения, можно предварительно пропустить через попытку обучить простую нейронную сеть, на вход и выход которой подаются одни и те же данные - изображение, но размерность одного из внутренних слоев заметно ниже входа, т.е. попытка заставить нейронную сеть рисовать по исходному изображению то же самое, но описывая это изображение вектором меньшей размерности, пример такой топологии - бутылочное горлышко.
    spoiler
    lir-_pezkp2bcrdvp9bvwoomcvs.png
    Т.е. в данном случае такую сеть обучить будет проще чем под вашу задачу (и данные для нее проще собрать, ведь не нужно искать смысл в них, только закономерности), так вот первые слои этой предварительной нейронной сети можно в последствии скопировать в целевую нейронную сеть, дозаполнив остальные веса случайными значениями.
    Ответ написан
    Комментировать
  • Как подобрать начальные входные весовые коэффициенты (веса) для нейронной сети?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну это инженерное решение, тут единственного правильного подхода нет. Случайная выборка, как от 0 до 1 например или случайная выборка от -1 до 1. Или по формулам разным Случайная выборка осуществляется из равномерного распределения или из нормального.

    В общем вот маленькая статья что бы не повторятся, там от простой выборки и до выборок по формулам в зависимости от функции активации, заодно там и пару коротеньких примеров на python имеется.
    Ответ написан
    Комментировать
  • Хранение базы данных?

    alekseyHunter
    @alekseyHunter
    Android developer
    Хранить базу данных на стороне клиента - то еще удовольствие.

    Во-первых, вам нужно будет у пользователя запросить разрешение на чтение/запись данных с устройства. Пользователь уже после этого запроса с 99% вероятностью удалит приложение, если это только не сверх-нужное приложение без аналогов или функционал приложения предусматривает работу с фалами. Ну а если не предоставит разрешение, то ваше приложение просто работать не будет. И его также удалят.
    Во-вторых, база данных используется не только для чтения, но и для записи. Что будет с сохраненными данными, если Вы выкатите новую версию приложения?

    Реальный пример, сейчас в одном моем приложении локальная база данных содержит айдишники локализованных строчек(переведены на несколько языков), так после каждого добавления новой строчки в файл ресурсов все айдишники слетают, и все значения в БД становятся неактуальными. Приходится после каждого обновления делать миграцию данных.
    Ответ написан
    Комментировать