Немного оффтоп: на просторах твича существует AI стример Neuro-sama. Буквально несколько дней назад, её создатель Vedal провёл стрим с обновлённой, улучшенной версией. Получилось очень интересно, советую всем посмотреть стрим целиком (стрим на английском языке) или нарезки из него на ютубе, потому что Neuro-sama это одна из лучших попыток создания виртуальной личности, которую я видел.
На 3310 / 3330 кнопки выведены на пятаки. У меня получилось подпаяться и использовать родную клавиатуру. Кстати, к экрану так тоже можно подключиться. Главная проблема - уместить все допы в отсек аккумулятора.
Тогда можно восстановить 3D модели с помощью, например, COLMAP. На Хабре было несколько статей по фотограмметрии. Вот, например, перевод статьи с обзором подходов и практическими советами.
Вы раз в год ставите мажорные обновления Python? Они ж, вроде, даже не выходят так часто, а минорные ничего не ломают?
что делать на Ubuntu на которой была только 3.10?
На Ubuntu нельзя держать параллельно несколько версий Python? Я на Windows когда-то держал Python 2.x и несколько версий Python 3.x, и всё со всем без проблем работало.
А теперь сделайте stadalone приложение Python c Qt. Это адский ад на всех платформах.
Покопался в пыльных архивах, нашёл собственное поделие 2008 года на Python + Wx, запакованное в standalone-приложение через py2exe, 19 мегабайт, запустил exe, работает. Ещё покопался, нашёл переделанную версию под Qt, датируемую 2013 годом, 37 мегабайт, запустил exe, работает. Никакого адского ада, никаких костылей, чтобы уложиться, скрипт для py2exe из восьми строчек, практически без изменений скопированный из их туториала. Писалось изначально для Windows XP, щас заработало в Windows 10, без правок где-либо и установок чего-либо.
Решал подобную задачу (см. www.wolframcloud.com/objects/945e3912-eff1-45a2-affc-1f0e3c81518e) только на вольфрамовской математике. В математике очень сильно подкупает большое количество реализованных функций встроенных в ядро. Их там более пяти тысяч.
Вот и здесь код код получился довольно коротким. Но реализован расчет не только в отдельной точке, а смоделированы множественные пересчеты портфелей на всей длинне данных начиная с 2000 года.
Только в моделировании участвовало 50 акций. Удивительно, но расчет шел в пределах минуты на персоналке в окне браузера. Кстати задача оптимизации здесь получилась линейной. Может потому и вычисления быстрые.
Автору за труды отлично. Сам постоянно слушаю лекции по анализу данных и машинному обучению. А там сплошной питон. Но тамошние методы все реализованы в математике.
face_recognition опирается на dlib. С качественными фото эта библиотека ещё более менее справляется, но если брать реальные фото, где лицо может быть смазано, частично перекрыто чем-то или быть изображено под углом, будьте готовы, что библиотека его просто не найдёт. Плюс будет много ложных срабатываний на каких-то предметах интерьера.
Я бы посоветовал для поиска лиц использовать MT-CNN, которая работает очень быстро даже на CPU, точная и к тому же выдаёт координаты 5-ти лицевых меток (глаза, нос, края рта).
Когда лица найдены, находим эмбеддинги с помощью той же InsightFace (тоже получше сетки из dlib). Сравнить, принадлежат ли фото одному человеку, можно с помощью скалярного произведения эмбеддингов.
Эти библиотеки легко нагугливаются, для них есть предобученные веса и кода нужно всего с десяток строк (не считая захват кадра, конечно).
Впрочем, если делать проект для развлечения без каких-то особых требований, то и face_recognition будет вполне достаточно.
Тут уже упомянули эту книжку и даже ссылку дали, но качество по ссылке низкое. Поэтому вот эта же книжка из моей коллекции, с нормальным качеством: https://disk.yandex.ru/d/ahWJ-Zgc1j6izA Валерий Вильгельмович Майер Простые опыты с ультразвуком Серия «Библиотечка физико-математической школы» М. 1978 г., 160 стр. с илл. Издательство «Наука» Главная редакция физико-математической литературы
В детстве даже делал простейшие излучатели по этой книжке, из ферритовой магнитной антенны :-)
Можно еще посоветовать дополнить функционал фотоаппарата беспроводным управлением.
Например Ардуинщиков есть готовая библиотечка (Arduino_Camera_Control) позволяющая общаться с камерой удалено. Например, с Android-коммуникатора по блютуз.
Пример как это работает: theiopage.blogspot.com/2011/08/yanis-android-wireless-eos-controller.html
Не слышать о срезах в Python (см. КДПВ) мог только мертвый.
А match может здорово навредить, если забыть о том что в бизнесе от 5 до 20% хостов трудятся под Win7 (и Python 3.8, где match нет)/ Эстетики match-case добавляет совсем немного.
Все-таки лучше делать разметку UI именно с помощью KV Language. Структура элементов гораздо четче прослеживается, проще вносить изменения да и код самого UI не мешается под ногами в коде. Например, вот так было бы несколько лучше:
Re: посмотрите в книги по математике и физике;
посмотрите в учебнике по математике за 1-2 класс :)
Есть стандартная школьная запись деления с помощью символа "÷", и выражение a·b÷c·d выполняется в порядке ((a·b)÷c)·d
Книжная запись — ab/cd — это однострочный вариант записи дроби, когда в числителе a·b, а в знаменателе c·d. И порядок выполнения операций тут характерный для дроби (a·b)÷(c·d)
Что касается программирования, то тут все достаточно просто: символом "*" в языках программирования обозначается математическая операция "·"(умножение), а символом "/" математическая операция "÷"(деление), но никак не запись дроби.
Ответы без скобок — это то же, что ответы с другим порядком скобок. Ушедшие решения легко найти. Они обязательно содержат /\/\d+\*/ (другими словами, знак деления, за которым цифры и знак умножения)
Вот они, ушедшие 4 ответа из списка автора:
73: 1*23+4+56/7*8+9 = 100
99: 1/2*34-5+6-7+89 = 100
100: 1/2*3/4*56+7+8*9 = 100
101: 1/2/3*456+7+8+9 = 100
Зто означало, например, ((1/2)/3)*456+7+8+9 = 100. По моим правилам в моём списке это записывалось в виде 1/2/(3*456)+7+8+9 = 24.000365 и из списка выбывало.
А вот пришедшие (другой порядок следования из моего списка)
24: «sum=1*23*4-56/(7*8)+9» 100
51: «sum=12/(3*4)+5*6+78-9» 100
Итого, получаем 99 решений.
Кто-то трое понизили мне карму за высказывание, что решение задачи ошибочно. Ещё раз, неверящие и особенно, минусующие:
1) посмотрите в книги по математике и физике;
2) убедитесь, что знак умножения в строчной записи вида a2/mr3имеет приоритет умножения перед делением.
И это соблюдается до сих пор. Равный приоритет умножения и деления — следствие правил языков программирования и к правилам человеческой записи выражений отношения не имеет. В Фортране ещё часты были ошибки от забывания этого правила в 60-70 годах, да и сейчас не исключены.
Скобок получилось немного, что-то ушло, что-то добавилось.
Распечатка: paste.org/pastebin/view/29878
Если надо посчитать без скобок, в цикле for(var i =0; i <=8; i++){} оставляют только s += s0.charAt(i) + a[x0[i]]; и убирают if(wasLeftPar) s+= ')';
Вы может задумывали 2 плоскости, но в своем примере привели 3 плоскости.
вот попробуйте следующий пример:
class TestClass:
name = 'cls_name'
def __init__(self, s):
self.name = s
А потом заново переосмыслите области видимости классов в python. Можно называть их свойствами, можно переменными, суть от этого не изменится, то что в области класса и то что в области экземпляра класса — это разные вещи и не пересекаются никак.
Всё уже украдено до нас. (с)
Google: тепловой насос фазовый переход вода лед
Фазовый переход вода-лед. Теплоаккумулятор | Форум о строительстве и загородной жизни – FORUMHOUSE (2010)
Отопление льдом - перспективы для нашей страны [1] - Конференция iXBT.com (2012)
Отопление с помощью льда. Извлечение энергии фазового перехода вода-лёд | Блог самостройщика | Дзен (2020)
Немного оффтоп: на просторах твича существует AI стример Neuro-sama. Буквально несколько дней назад, её создатель Vedal провёл стрим с обновлённой, улучшенной версией. Получилось очень интересно, советую всем посмотреть стрим целиком (стрим на английском языке) или нарезки из него на ютубе, потому что Neuro-sama это одна из лучших попыток создания виртуальной личности, которую я видел.
На 3310 / 3330 кнопки выведены на пятаки. У меня получилось подпаяться и использовать родную клавиатуру. Кстати, к экрану так тоже можно подключиться. Главная проблема - уместить все допы в отсек аккумулятора.
Тогда можно восстановить 3D модели с помощью, например, COLMAP. На Хабре было несколько статей по фотограмметрии. Вот, например, перевод статьи с обзором подходов и практическими советами.
Вы раз в год ставите мажорные обновления Python? Они ж, вроде, даже не выходят так часто, а минорные ничего не ломают?
На Ubuntu нельзя держать параллельно несколько версий Python? Я на Windows когда-то держал Python 2.x и несколько версий Python 3.x, и всё со всем без проблем работало.
Покопался в пыльных архивах, нашёл собственное поделие 2008 года на Python + Wx, запакованное в standalone-приложение через py2exe, 19 мегабайт, запустил exe, работает. Ещё покопался, нашёл переделанную версию под Qt, датируемую 2013 годом, 37 мегабайт, запустил exe, работает. Никакого адского ада, никаких костылей, чтобы уложиться, скрипт для py2exe из восьми строчек, практически без изменений скопированный из их туториала. Писалось изначально для Windows XP, щас заработало в Windows 10, без правок где-либо и установок чего-либо.
requirements.txt
устарел уже лет на десять. И появившийся вслед за нимsetup.py
тоже. Современный подход -pyproject.toml
.Вот и здесь код код получился довольно коротким. Но реализован расчет не только в отдельной точке, а смоделированы множественные пересчеты портфелей на всей длинне данных начиная с 2000 года.
Только в моделировании участвовало 50 акций. Удивительно, но расчет шел в пределах минуты на персоналке в окне браузера. Кстати задача оптимизации здесь получилась линейной. Может потому и вычисления быстрые.
Автору за труды отлично. Сам постоянно слушаю лекции по анализу данных и машинному обучению. А там сплошной питон. Но тамошние методы все реализованы в математике.
face_recognition опирается на dlib. С качественными фото эта библиотека ещё более менее справляется, но если брать реальные фото, где лицо может быть смазано, частично перекрыто чем-то или быть изображено под углом, будьте готовы, что библиотека его просто не найдёт. Плюс будет много ложных срабатываний на каких-то предметах интерьера.
Я бы посоветовал для поиска лиц использовать MT-CNN, которая работает очень быстро даже на CPU, точная и к тому же выдаёт координаты 5-ти лицевых меток (глаза, нос, края рта).
Когда лица найдены, находим эмбеддинги с помощью той же InsightFace (тоже получше сетки из dlib). Сравнить, принадлежат ли фото одному человеку, можно с помощью скалярного произведения эмбеддингов.
Эти библиотеки легко нагугливаются, для них есть предобученные веса и кода нужно всего с десяток строк (не считая захват кадра, конечно).
Впрочем, если делать проект для развлечения без каких-то особых требований, то и face_recognition будет вполне достаточно.
Тут уже упомянули эту книжку и даже ссылку дали, но качество по ссылке низкое. Поэтому вот эта же книжка из моей коллекции, с нормальным качеством:
https://disk.yandex.ru/d/ahWJ-Zgc1j6izA
Валерий Вильгельмович Майер
Простые опыты с ультразвуком
Серия «Библиотечка физико-математической школы»
М. 1978 г., 160 стр. с илл.
Издательство «Наука»
Главная редакция физико-математической литературы
В детстве даже делал простейшие излучатели по этой книжке, из ферритовой магнитной антенны :-)
Добавьте ещё В.В. Майер "Простые опыты с ультразвуком" https://ikfia.ysn.ru/wp-content/uploads/2018/01/Majer1978ru.pdf
Совершенно потрясающая книга ! В детстве была моей настольной :))
А вот ещё пример применения ультразвуковых технологий :))
Можно еще посоветовать дополнить функционал фотоаппарата беспроводным управлением.
Например Ардуинщиков есть готовая библиотечка (Arduino_Camera_Control) позволяющая общаться с камерой удалено. Например, с Android-коммуникатора по блютуз.
Пример как это работает:
theiopage.blogspot.com/2011/08/yanis-android-wireless-eos-controller.html
вот тут https://youtu.be/61H1lajDyv4 человек делает обзор ~20 похожих проектов:
Google Imagen/Parti (Unreleased) https://parti.research.google/
Open AI Dall-E 2 (Closed Beta) https://openai.com/dall-e-2/
Stable Diffusion (Closed But Soon to Open Beta) https://stability.ai/beta-signup-form
Simulacrabot (Closed Alpha) https://github.com/JD-P/simulacra-aes...
Midjourney (Free Trial, paid access) https://www.midjourney.com/app/
Shonenkov AI (Free to Use) https://t.me/shonenkovAI (JOIN MY DISCORD FOR LINK)
Meta Make-A-Scene (very Closed Beta) https://ai.facebook.com/blog/greater-...
Microsoft VQ Diffusion (Free to use) https://replicate.com/cjwbw/vq-diffusion
Deep AI Text to Image (Free Access) https://deepai.org/machine-learning-m...
MindsEye beta (by multimodal.art) (Free to use) https://multimodal.art/mindseye
CrAIyon (Free to use) https://www.craiyon.com/?utm_source=s...
Min-dalle (Free & Paid) https://replicate.com/kuprel/min-dalle
Dall E Flow (Free to use) https://colab.research.google.com/git...
Wombo (Free & Paid) https://app.wombo.art/
Laion AI Erlich (Free & Paid) https://replicate.com/laion-ai/erlich
Latent Diffusion (Free to use) https://huggingface.co/spaces/multimo...
Glid-3-xl (Free & Paid) https://replicate.com/jack000/glid-3-xl
Night Cafe (Free & Paid) https://creator.nightcafe.studio/explore
Disco Diffusion (Free & Paid) https://replicate.com/nightmareai/dis...
Cog View 2 (Free & Paid) https://replicate.com/thudm/cogview2
Pixray (Free & Paid) https://replicate.com/pixray/text2image
Hot Pot AI (free & Paid) https://hotpot.ai/art-maker
Nvidia gaugan2 (Free to Use) http://gaugan.org/gaugan2/
Не слышать о срезах в Python (см. КДПВ) мог только мертвый.
А match может здорово навредить, если забыть о том что в бизнесе от 5 до 20% хостов трудятся под Win7 (и Python 3.8, где match нет)/ Эстетики match-case добавляет совсем немного.
Все-таки лучше делать разметку UI именно с помощью KV Language. Структура элементов гораздо четче прослеживается, проще вносить изменения да и код самого UI не мешается под ногами в коде. Например, вот так было бы несколько лучше:
Теперь код Python содержит только логику приложения:
посмотрите в учебнике по математике за 1-2 класс :)
Есть стандартная школьная запись деления с помощью символа "÷", и выражение a·b÷c·d выполняется в порядке ((a·b)÷c)·d
Книжная запись — ab/cd — это однострочный вариант записи дроби, когда в числителе a·b, а в знаменателе c·d. И порядок выполнения операций тут характерный для дроби (a·b)÷(c·d)
Что касается программирования, то тут все достаточно просто: символом "*" в языках программирования обозначается математическая операция "·"(умножение), а символом "/" математическая операция "÷"(деление), но никак не запись дроби.
Вот они, ушедшие 4 ответа из списка автора:
73: 1*23+4+56/7*8+9 = 100
99: 1/2*34-5+6-7+89 = 100
100: 1/2*3/4*56+7+8*9 = 100
101: 1/2/3*456+7+8+9 = 100
Зто означало, например, ((1/2)/3)*456+7+8+9 = 100. По моим правилам в моём списке это записывалось в виде 1/2/(3*456)+7+8+9 = 24.000365 и из списка выбывало.
А вот пришедшие (другой порядок следования из моего списка)
24: «sum=1*23*4-56/(7*8)+9» 100
51: «sum=12/(3*4)+5*6+78-9» 100
Итого, получаем 99 решений.
Кто-то трое понизили мне карму за высказывание, что решение задачи ошибочно. Ещё раз, неверящие и особенно, минусующие:
1) посмотрите в книги по математике и физике;
2) убедитесь, что знак умножения в строчной записи вида a2/mr3 имеет приоритет умножения перед делением.
И это соблюдается до сих пор. Равный приоритет умножения и деления — следствие правил языков программирования и к правилам человеческой записи выражений отношения не имеет. В Фортране ещё часты были ошибки от забывания этого правила в 60-70 годах, да и сейчас не исключены.
Код:
Скобок получилось немного, что-то ушло, что-то добавилось.
Распечатка: paste.org/pastebin/view/29878
Если надо посчитать без скобок, в цикле for(var i =0; i <=8; i++){} оставляют только s += s0.charAt(i) + a[x0[i]]; и убирают if(wasLeftPar) s+= ')';
вот попробуйте следующий пример:
class TestClass:
name = 'cls_name'
def __init__(self, s):
self.name = s
@classmethod
def get_cls_name(cls):
return cls.name
obj = TestClass('self_name')
print(obj.name)
print(TestClass.name)
print(obj.get_cls_name())
А потом заново переосмыслите области видимости классов в python. Можно называть их свойствами, можно переменными, суть от этого не изменится, то что в области класса и то что в области экземпляра класса — это разные вещи и не пересекаются никак.
Решение Задачи #3
result = [k for k in list1 if k in list2]