Открытие вчерашнего вечера:
pdbpp, т.е. pdb++ - еще один python-дебаггер с автодополнением и прочими обязательными фичами. Я обычно пользовался ipdb, но у pdbpp есть одна исключительно полезная фича - он заменяет дефолтный pdb в интеграциях. Значит, можно, например, легко влезть дебаггером в падающий тест.$ cat test_me.py
def test_something():
x = 5
assert False
$ pytest --pdb
======= test session starts =======
platform linux -- Python 3.6.6, pytest-5.1.2, py-1.8.0, pluggy-0.13.0
rootdir: /home/arseny/candy-store/adhoc
plugins: cov-2.7.1
collected 1 item
test_me.py F
>>>>>>> traceback >>>>>>>
def test_something():
x = 5
> assert False
E assert False
test_me.py:3: AssertionError
>>>>>>> entering PDB >>>>>>>
>>>>>>> PDB post_mortem (IO-capturing turned off) >>>>>>>
[11] > /home/arseny/candy-store/adhoc/test_me.py(3)test_something()
-> assert False
6 frames hidden (try 'help hidden_frames')
(Pdb++) x
5
(Pdb++)
Недавно в ods.ai случилось некоторое нашествие постов (например) почти по шаблону "подскажите самую крутую нейросетку для {узкая_задача}". Там в комментариях и родилась простая и понятная псевдоформула для подобных вопросов:
Иными словами, чтобы получить крутое решение на своей непопулярной подзадаче, нужно взять state of the art в задаче на более популярном домене (например, вместо детекции рук посмотреть подходы к детекции лиц) и закидать ее хорошими данными из своего домена.
sota(task, domain) ≈ sota(task, most_popular_domain) + sota(domain_dataset).Иными словами, чтобы получить крутое решение на своей непопулярной подзадаче, нужно взять state of the art в задаче на более популярном домене (например, вместо детекции рук посмотреть подходы к детекции лиц) и закидать ее хорошими данными из своего домена.
🔥1