Ответы пользователя по тегу Python
  • Не удается отправить файл на ftp сервер, в чем может быть причина?

    @rPman
    возможно вам нужно включить passive mode если между вами и сервером фаервол (например за NAT)
    ftp.set_pasv(true)
    Ответ написан
    2 комментария
  • Как при помощи нейронной сети разделить график на части?

    @rPman
    Есть интересный пакет библиотек и графический интерфейс Weka, в котором собрано огромное количество алгоритмов по работе с данными, поиску закономерностей и прочее прочее.

    Ваша задача зовется Классификация. гуглите исходя из этого, и нейронные сети в этом только один из вариантов, и не самый эффективный.

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

    @rPman
    очевидно же что сначала нужно вычислить максимальную ширину изгибов линии, обрезать изображение таким образом чтобы в него попала вся эта линия и уже после этого отмасштабировать изображение по ширине
    Ответ написан
    Комментировать
  • Как создать инсталятор программы на C# с интерпретатором Python?

    @rPman
    Вы точно хорошо подумали, прежде чем выбрать такую странную смесь архитектур?
    p.s. правда я и сам бы мог так сделать, если бы потребовалось писать сложный интерфейс, а вычислительная логика уже была бы на python, так как в visual studio на .net писать сложные формочки удобнее всего (имхо).

    Если вас не интересует полноценная поддержка обновлений а так же вас не волнует что архив установки будет толстым (особенно это замечают когда будете делать частые обновления), тупо складывайте заранее установленный каталог python в отдельный каталог и пользуйтесь (максимум перед запуском переменные окружения прописывайте), в этом случае за обновление будете отвечать сами. Но даже в этом случае хорошим жестом будет являться предложение установки приложения без питона, ожидая его уже установленным на машине пользователя. Почему вариант таскать питон с собой плохой? - поддержка, через три десять лет, чтобы запустить ваше приложение с поддержкой современного оборудования, понадобится пуд соли и ершик для чистки унитаза (особенно это актуально для gpgpu/opencv подсистем).

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

    Если у вас linux с нормальными пакетными менеджерами, пользуйтесь ими, и программными пакетами в их формате (apt/rpm/ebuild/..), и они сделают все необходимое за вас в лучшем виде! Если же windows...

    В не кастрированных (не домашние) версиях windows10 можно попытаться запустить бинарники ubuntu/debian, если не требуется gui, это почти наверняка будет работать, т.е. вы можете использовать штатный пакетный менеджер apt, ив пару команд установить/обновить все все необходимое

    Можете так же устанавливать python в тихом режиме, скачав установщик с сайта https://www.python.org/downloads/, это будет занимать меньше места, но в случае если вам нужны необычные модули, то вам может не повезти найти собранные под windows, да и те что есть, обычно требуют ручную установку.. в общем не все там легко автоматизируется, пути загрузок внезапно могут через год другой исчезнуть и пользователи получат проблему.

    Универсально, можете воспользоваться готовой linux подсистемой для windows - cygwin (на столько долгой и качественной поддержки почти всего из мира windows в linux вы не найдете), и таскайте в своем установщике их setup.exe (кстати он всегда доступен для загрузки с сайта по одному и тому же url) в режиме Unattended setup mode (--quiet-mode), вместе с питоном вы получите базовый набор утилит командной строки и кучу еще чего теоретически лишнего, но поверьте, оно не помешает, особенно если вам нужна автоматизация процессов управления установкой на машине клиента.
    Ответ написан
    Комментировать
  • Pygame прямоугольник для выделения юнитов?

    @rPman
    Прямоугольник для выделения юнитов это такой же юнит как и другие, ну почти ;) взаимодействие виртуальное, зная координаты прямоугольника и юнитов, можно вычислить какие находятся под ним и выделять их (на ваш выбор, либо добавляя на сцену для каждого еще юнит выделения либо менять свойство у юнитов - выделен и пусть они умеют менять внешний вид (показывающий что они выделены).
    Ответ написан
    Комментировать
  • Как создать простую нейронную сеть на TF, которая сможет управлять игрой через захват экрана?

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

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

    Затем вы должны очень хорошо закодировать (отдельными алгоритмами, собственно opencv для этого хорошо подходит) чтобы распознать объекты на экране (глупо для этого пользоваться нейронкой, точнее это ДОРОГО), в итоге у вас будет информация об игровом мире в вашем представлении, удобном для использования в вашей программе. И только потом начинайте думать, как использовать полученную информацию, стоит ли вообще все заводить на нейронные сети.

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

    geometry dash это обычный платформер, если я правильно понимаю там вообще одно действие - прыжок? Эта игра не требует нейронки от слова совсем, все действия рассчитываются простым анализом игрового мира (движения врагов рассчитываются за 3-4 кадра в коротком варианте либо заранее вы сами определяете что вот этот враг двигается по таким правилам) а дальше поиск по 'лабиринту' перебором или поиском в глубину.
    Ответ написан
    Комментировать
  • Какой протокол(технология) существует для remote mobile control?

    @rPman
    Вам так критично работать с удаленным управлением на низком уровне или лучше взять готовые инструменты? Что то типа crome/firefox desktop sharing (гуглите, названия разные, стандарт пришел с десктопа).

    Чуть более низкий уровень и достаточно старый протокол - vnc, библиотеки к нему есть наверное даже под чайники.

    Еще есть штатные инструменты разработчика, с помощью adb.
    Ответ написан
    Комментировать
  • Raspberry Pi + Python или STM32 - кто быстрее?

    @rPman
    Однозначно малинка будет быстрее, если вы конечно пакеты не по байтно будете вручную разбирать. Потому что сами данные будут передаваться нативными методами (порт uart будет файлом а значит в него будет просто сискол записи блока данных).
    Если у вас будет преобразование данных - то все зависит от этого преобразования и того как вы его реализуете, но даже в этом случае малинка зачастую будет на порядок быстрее, ведь там как минимум частота в 10 раз быстрее, 4 ядра вместо одного и т.п.
    Ответ написан
    Комментировать
  • Как оптимизировать прорисовку в pygame( Python)?

    @rPman
    Во первых, в подавляющем большинстве случаев, 99% работы программиста (отрисовки, организации игрового цикла и прочее) берет на себя игровой движок/фреймворк. Но вы молодцы, что пытаетесь, наверное, сделать все сами с нуля.

    У вас должен быть игровой цикл отрисовки игрового мира, и правильно организованный мир, который по возможности не должен зависеть вообще от того, успевает ли отрисовка или нет. Цикл отрисовки должен пытаться нарисовать следующий кадр, сделать какие то оптимизации для отрисовки следующего (бывают даже на несколько кадров вперед подготовку делают, сложно, иногда приходится лаги разрешить но увеличивает плавность графики), затем, если затраченное время оказалось меньше, отведенного для одного кадра (чтобы было 30/60fps или сколько хотите), ждет оставшееся время на паузе (отрабатывает игровой цикл для однопоточной реализации), и все повторяется.

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

    p.s. не к вам лично, а вообще:
    бедный наш мир, лет 10-20 назад, gamedev решали вопросы уровня, как соптимизировать функцию деления чтобы метод прорисовки спрайта успевал отработать до возврата хода луча crt монитора... а сейчас задачи, с которых начинает программист - это какой конструктор/фреймворк выбрать и как его повернуть,/настроить чтобы на экране появились человечки и стали игрой, даже не попытавшись разобраться, как это работает внутри.
    Ответ написан
    1 комментарий
  • Как убрать повторение голоса при распознования лица?

    @rPman
    Сохраняйте в массиве (по ключу - произнесенное имя) время последнего распознавания, и каждый раз при обнаружении, сравнивайте его с текущим, если разница меньше некоторой константы, не произносите.
    Ответ написан
    Комментировать
  • Как писать в окне другой программы с помощью Python?

    @rPman
    python... вы выбрали максимально неудобный инструмент под вашу задачу.

    Если у вас windows, то у вас есть шансы что вы сможете это сделать относительно просто (с другими операционными системами все гораздо сложнее), но искать ответ вам нужно с низов

    ищите ваше окно
    https://docs.microsoft.com/en-us/windows/desktop/a...
    определяете его положение
    https://docs.microsoft.com/en-us/windows/desktop/a...
    заранее создаете свое окно
    https://docs.microsoft.com/en-us/windows/desktop/a...
    указав в стилях что вам не нужны ни бордюры ни заголовки и что оно модальное, поверх других окон
    и перемещаете его в нужное место на экране
    https://docs.microsoft.com/en-us/windows/desktop/a...

    содержимое окна рисуете в колбеке ON_PAINT
    https://docs.microsoft.com/ru-ru/windows/desktop/w...

    Не сомневаюсь, для python написаны соответствующие врапперы.

    Кстати рисовать и двигать окно не обязательно низкоуровневыми функциями, можно найти какой-нибудь готовый фреймворк для интерфейса под python, тот же qt
    Ответ написан
    Комментировать
  • Как при асинхронной обработке с помощью нейросетей не подтягивать каждый раз веса?

    @rPman
    Смотрю примеры на github там все выглядит не так как у вас:
    https://github.com/pjreddie/darknet/blob/master/ex...

    там же прямо в примере показана однократная загрузка нейросети и конфигов а затем последовательно подставляются картинки
    Ответ написан
  • Как сделать просмотр документов разных форматов в браузере?

    @rPman
    На сервере предварительно 'распечатайте' документы в pdf, это на текущий момент самый универсальный метод для просмотра документов, любых, без потери форматирования, причем очень часто не теряется текстовая информация, т.е. это не картинки.

    с pdf в браузере на порядок проще, есть javascript просмотрщики и у клиента обычно уже что то есть для этого, зачастую с автоматическим просмотром из браузера.
    Ответ написан
    Комментировать
  • Распознавание по фотографии уха?

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

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

    И пофиг с чем работать, ухо, нос, задница,
    Ответ написан
    Комментировать
  • Как передать управление аккаунтом телеграм программе?

    @rPman
    Какими инструментами, приложениями или библиотеками можно воспользоваться, чтобы оперативно отслеживать новые сообщения на публичных каналах telegram?
    там решение https://github.com/TehDmitry/tg-cli

    Собираете и запускаете консольный клиент под вашим аккаунтом, подключаетесь к нему своим приложением по tcp и делаете простые запросы (периодически, самое простое, можно ловить события, но к сожалению групповые чаты часто глючат).
    Ответ написан
    Комментировать
  • Как реализовать автоматическое обновление софта?

    @rPman
    Обновление приложения не зависит от среды разработки, это отдельная задача.
    Готовых фреймворков для этого прилично.

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

    Огромный подспорьем является цифровая подпись дистрибутивов (но ключ разработчика надо будет один разок купить у майкрософт), собственно это белый билет в мир без проблем с действительно автоматическим обновлением (через task scheduler например, никаких своих приложений в фоне, по отрывал бы руки ламерам, использующим корявые практики).

    В windows очень популярный inno setup, подходит всем, простой и свободный.
    Ответ написан
    Комментировать
  • Как создать фотографии несуществующих подъездов?

    @rPman
    1. строите модели имеющихся подъездов, к тому же они типовые, их понадобится не много
    2. размечаете фотографии, указывая к какой модели подъезда он подходит и где и под каким углом стояла камера (при наличии модели достаточно указать углы помещения), дополнительно помечаете ярко выделенные элементы (типа стоящий велосипед), при должном старании можете пометить где стены а где пол и потолок.
    3. простым инструментом преобразуете фотографии в текстуры соответственно данным о камерах, точно видел в пакетах построения модели на основе фотографий такой инструмент, но не скажу в каком именно, смотрел несколько free пакетов.

    Все это можно частично автоматизировать, и вообще все делать в одном программном пакете, но писать свои скрипты автоматизации все равно придется.

    Главное в итоге вы должны иметь на руках набор текстур стен, полов, потолков и выделенных объектов, с которыми вы в простом 3D-редакторе сможете играть как вам душе угодно.

    Если нет задачи построения полноценного окружения, а просто фотографии, то задача не выглядит не решаемой.
    Ответ написан
    Комментировать
  • Как распарсить страницу с полной прогрузкой javascript?

    @rPman
    Не мучайтесь, запускайте полноценный браузер (webkit есть под все платформы), при этом вы имеете полный доступ к загружаемой странице, можете инжектить свой код, можете просто получить документ в виде xml (не файл а именно DOM модель, собираемую в т.ч. javascript)

    И главное, веб-сайт ничего не сможет сделать чтобы предотвратить ваши попытки автоматизации работы с сайтом (кроме статистических конечно, но тут уже вопрос реализации и ваших требований)
    Ответ написан
  • Будет ли польза от Jython на AWS Lambda?

    @rPman
    Тарифы на использование AWS Lambda смешные, полагаю тарифные ловушки скрыты в округлении до 100мс и расчете не используемой памяти а выделенной (даже если ваша функция не утилизировала ее всю).

    И мне не понятно, доступны ли какие то локальные данные или их все придется запрашивать по сети, которая у амазона ой какая дорогая.

    p.s. https://read.acloud.guru/comparing-aws-lambda-perf...
    Ответ написан
  • Считать с консоли/файла миллион int 'тов c разумными затратами по памяти и скорости Python?

    @rPman
    python очень медленный язык (виртуальная машина), со всем что не реализовано в виде готовой нативной библиотеки с обвязкой

    если затык в нативном парсере input stream, попробуйте сами читать файл как бинарный поток с помощью BinaryStream.readByte, и парсить числа (радуйтесь что у вас целые), просто вычитая '0' из кода символа и проверяя на пробел и знак '-'... лишнюю проверку на ошибочные данные тоже можно добавить.
    Ответ написан
    Комментировать