• БД (хранилище) для документов с GUI, ранжированием и поиском. Какие фреймворки или готовые решения есть?

    @imageman Автор вопроса
    Складывается впечатление, что нужно готовое решение

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

    Импорт (скрейпинг) данных - относительно просто (5 часов)

    Выставление ранга, ранжирование, методом ближайших соседей - наивная реализация за пару часов, FAISS подольше. Векторные БД еще подольше.

    Построение пользовательского интерфейса - долго (40 часов и более).

    Есть такой продукт Obsidian - локальное (или облачное) ведение заметок с markdown разметкой, все заметки хранятся в виде текстовых файлов. Для моей задачи вполне приемлемое решение. Но я не знаю как сортировать по полю Ранг.

    Notion - немного прикоснулся, но не вижу может ли быть локальное решение? И будет ли нужный мне функционал?

    Почтовые клиенты - почти отлично (хороший пользовательский интерфейс, возможность поиска и, у некоторых, фильтрации, разбиение по папкам и т.п.), но нет возможности выставить оценку.

    Нашел упоминание Joplin, TiddlyWiki, AirTable, TreeDBNotes, KeyNote NF. Наверняка я ещё что-то упустил.

    Что-нибудь ещё подобное есть?
    Написано
  • БД (хранилище) для документов с GUI, ранжированием и поиском. Какие фреймворки или готовые решения есть?

    @imageman Автор вопроса
    Postgresql в чистом виде для меня слишком жирно. Всё решение локальное однопользовательское, размер всех данных максимум гигабайт (скорее всего много меньше).

    Хотелось бы что-то, что я мог бы сделать за пару дней. Т.е. полноценное написание всего кода не очень годится. Я думал что-то вроде:
    1. Настройка формата хранилища (дата, заголовок, тело, ранг, оценка пользователя)
    2. Настройка записи в БД через питон (тут я пишу свой скрипт сбора данных)
    2.1. Скрипт должен иметь доступ к оценкам
    2.2. В идеале нечеткий поиск средствами СУБД (фреймворка)
    3. Пользовательский интерфейс. Приоритет - лёгкость настройки. Чтение, выставление оценки, возможно установка флажков или звёздочек, фильтрация, удаление, поиск. Т.е. что-то, что очень сильно напоминает интерфейс почтового клиента, за исключением пользовательских оценок.
    Написано
  • Как увеличить производительность проекта на python?

    @imageman
    ThunderCat, Точно -- postgresql. И в самом начале. Тогда может стоит сказать какие шаги были сделаны для настройки? Хотя в вопросе много чего не сказано (к примеру параметры инстансов, размеры БД, характер запросов, соотношение записи к чтению и т.п.) - всего не скажешь в коротком вопросе...
    Написано
  • Как увеличить производительность проекта на python?

    @imageman
    Мне почему-то кажется, что после добавления кэширования нужно сразу посмотреть SQL запросы и посмотреть индексы в БД. Кстати, добавьте в вопрос какую СУБД используете, может гуру подскажут "серебряную" пулю :-)
    Написано
  • Как сделать нейросетку для генетического 2D алгоритма?

    @imageman
    https://qudata.com/ml/ru/NN_RNN_Torch.html - довольно сносное описание.
    Объясню "на пальцах":
    а) на вход нейросети подаются N блоков (фиксированной длинны), к примеру для N ботов это будут координаты x,y поэтому у нас будет вектор [N , 2]
    б) у нас есть некое внутреннее состояние нейросети (почти всегда инициализируется нолями) которое задается всегда определенным образом перед каждым запуском. Это массив длинной K (например 10).
    в) сеть состоит из двух частей - рекуррентная (перебирает по очереди вход) и финальная часть, которая на основе внутреннего состояния дает окончательный вывод (прогноз, результат).

    Теперь чуть подробнее. Рекуррентная часть это простая нейросеть любой конфигурации, которая на вход принимает массив "внутреннее состояние нейросети" и одну из N строк входного массива (в твоем случае "внутреннее состояние нейросети" + 2 числа). Обрабатывает это и на выходе получается новый массив "внутреннее состояние нейросети". Т.е. (как пример) на входе 12 чисел, на выходе 10 чисел.

    После обработки всех N строк входного массива в дело вступает финальная часть нейросети. Она может быть тоже любой конфигурации (структуры). На вход принимает "внутреннее состояние нейросети" (например 10 чисел), на выходе какой-то уже конечный результат (к примеру "угол" и "скорость").

    Надеюсь понятно изложил.
  • Как сделать нейросетку для генетического 2D алгоритма?

    @imageman
    freeExec "делаешь всегда 100 входов, подаёшь туда нули" самое простое решение.

    2. Рекуррентные нейросети - именно они могут получать на вход данные переменной длины.
  • Используют ли при обучении нейронных сетей генетические алгоритмы?

    @imageman
    Евгений Лернер, Поэтому широко используется..... в очень узких кругах. Специально сползал в гугл трендс - градиентный спуск в разы популярнее ГА.

    Что касается самого ГА: он (видимо) незаменим, когда оптимизируемая функция у нас черный ящик, т.е. мы не можем найти производные, градиенты и т.п. А в реальности функции еще не имеют монотонности, непрерывности и прочих важных вещей для быстрой оптимизации. В этих случаях генетический алгоритм это, видимо, лучший выбор.

    Нейросети мы можем проектировать сами, закладывая структуру, которую [относительно] легко оптимизировать.
  • Используют ли при обучении нейронных сетей генетические алгоритмы?

    @imageman
    Напрямую не анализировал. Но какой смысл? В чем польза узнать, что ГА лучше справляется с локальными экстремумами?

    Максимум на что можно рассчитывать, это соединить градиентные методы и ГА (уменьшим ошибку в 2 раза, увеличим время обучения в 10000 раз).
  • Как проверить наличие прозрачных пикселей?

    @imageman
    Dis Out А посмотри вопрос
    https://stackoverflow.com/questions/65615059/check...
    Вроде то, что тебе нужно.

    image = Image.open(file).convert('RGBA') 
    alpha_range = image.getextrema()[-1]
    
    if alpha_range == (255,255):
        print("image is not transparent")


    P.S. похоже не в ту ветку добавил ответ :-)
  • Как проверить наличие прозрачных пикселей?

    @imageman
    Нужно помнить, что png допускает и полупрозрачность (что с нею автору нужно делать?)
  • Как проверить наличие прозрачных пикселей?

    @imageman
    можно сделать pnga без прозрачных пикселей
  • Как исправить нейросеть для пошаговой стратегии?

    @imageman
    Дядя Богдан, это загрузка и инициализация (случайными числами?). Случайные числа будут только если не получится загрузить (а у тебя ведь получается?). И где тут изменение весов? (Даже если убрать загрузку, то у тебя получатся случайные блуждания, а это очееееень медленно.)

    Может реально нужно тебе прочитать про алгоритм обратного распространения ошибки, про Генетический алгоритм, Симуляцию отжига и другие алгоритмы нахождения минимума функции?
  • Как исправить нейросеть для пошаговой стратегии?

    @imageman
    Дядя Богдан, выбор лучшего агента я вижу. Не вижу место, где ты бы менял агента (fitness не в счет). У тебя все агенты одинаковые и не меняются никак?
  • Как уменьшить разрешение картинки без потери качества?

    @imageman
    и даже в этом случае мы теряем то, что за пределами обрезки ;-)
  • Как сделать статический peerID?

    @imageman
    Вопрос требует больше конкретики. Сейчас не совсем понятно в чем проблема - кто мешает использовать базу данных для хранения ID? Или совсем отказываемся от серверов? Тогда локальное хранение любым образом сгенерированного ID или ID получаем через хэширование e-mail+пароль и тогда можно не хранить его на диске.

    Размерность ID лучше взять больше, чем 64 бит.
  • В чём может быть причина мистической подмены доменов?

    @imageman
    dollar, кое какое управление всё-таки есть
    https://winitpro.ru/index.php/2019/09/25/upravleni...

    https://docs.microsoft.com/ru-ru/troubleshoot/wind...

    все приложения проксифицированы? Конечно же, далеко не все.

    попробуйте следующий тест: сделайте два приложения (пусть ftp клиент с хорошими логами), одну прогу проксируйте, вторую нет. Поочередно (1-2 и 2-1) запускайте соединение с внешними серверами и смотрите ip адреса.
  • Возможно ли обучить GAN без batchnorm?

    @imageman
    прогонка вычислений по нейросети проходит только для одного значения одновременно
    а какое значение скорости обучения используешь?

    Кстати, SGD, RMSprop, Adam пробовал? https://habr.com/ru/company/skillfactory/blog/525214/

    Пробовал написать процедуру подбора гиперпараметров?

    А не GAN обучается нормально (со всеми функциями, что ты используешь)?

    Пробовал отслеживать значения градиентов? Нет взрывных или затухающих?

    Пробовал дискриминатору ставить меньший learning rate (или вообще обучать не каждый раз)?
  • Возможно ли обучить GAN без batchnorm?

    @imageman
    Да, строго говоря полносвязность не обязательное условие (подозреваю, что 99% полносвязных).

    Для обработки картинок стоит смотреть convolutional neural network (CNN) https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%91%D...

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