|
| 1 | +# TorchCNNBuilder |
| 2 | +<p align="center"> |
| 3 | + |
| 4 | +<img src=".docs/media/logo_transparent_h.PNG" width="600"> |
| 5 | +</p> |
| 6 | + |
| 7 | +<div id="badges"> |
| 8 | + <a href="https://pytorch.org/"> |
| 9 | + <img src="https://img.shields.io/badge/pytorch-CB2C31?style=flat&logo=pytorch&logoColor=white" alt="pytorch badge"/> |
| 10 | + </a> |
| 11 | + <img alt="Dynamic JSON Badge" src="https://img.shields.io/pypi/pyversions/torch"> |
| 12 | + <a href="https://badge.fury.io/py/torchcnnbuilder"> |
| 13 | + <img src="https://badge.fury.io/py/torchcnnbuilder.svg" alt="PyPI version" height="18"> |
| 14 | + </a> |
| 15 | +</div> |
| 16 | + |
| 17 | +--- |
| 18 | +**TorchCNNBuilder** — это фреймворк с открытым исходным кодом для автоматического |
| 19 | +создания архитектур CNN. В первую очередь он предназначен для исследователей, |
| 20 | +работающих с CNN, и берёт на себя большую часть написания кода архитектуры. |
| 21 | +Распространяется под **лицензией 3-Clause BSD**. |
| 22 | +Вся функциональность реализована исключительно на `pytorch` *(без сторонних зависимостей)*. |
| 23 | + |
| 24 | +### Установка |
| 25 | + |
| 26 | +--- |
| 27 | +Проще всего установить фреймворк через `pip`: |
| 28 | +``` |
| 29 | +pip install torchcnnbuilder |
| 30 | +``` |
| 31 | + |
| 32 | +<details><summary>Доп.пакеты для примеров</summary> |
| 33 | + |
| 34 | +Обратите внимание, что при запуске примеров из папки [examples](examples) для визуализации |
| 35 | +и формирования набора данных используются дополнительные библиотеки: |
| 36 | + |
| 37 | +``` |
| 38 | +pip install numpy |
| 39 | +pip install pytorch_msssim |
| 40 | +pip install matplotlib |
| 41 | +pip install tqdm |
| 42 | +``` |
| 43 | + |
| 44 | +Они не требуются для работы библиотеки, поэтому их установка не обязательна. |
| 45 | + |
| 46 | +</details> |
| 47 | + |
| 48 | +### Использование |
| 49 | + |
| 50 | +Для инициализации простой модели с архитектурой "кодировщик-декодировщик" используйте класс ```ForecasterBase```: |
| 51 | +```python |
| 52 | +from torchcnnbuilder.models import ForecasterBase |
| 53 | + |
| 54 | +model = ForecasterBase(input_size=[H, W], |
| 55 | + in_time_points=C_in, |
| 56 | + out_time_points=C_out, |
| 57 | + n_layers=5) |
| 58 | +``` |
| 59 | +Где ```[H, W]``` - размер изображения в пикселях, ```C_in``` - количество входных каналов, ```C_out``` - количество выходных каналов. |
| 60 | + |
| 61 | +Для раздельной работы с кодировщиком и декодировщиком их можно вызвать из модели: |
| 62 | +```python |
| 63 | +encoder = model.encoder |
| 64 | +decoder = model.decoder |
| 65 | +``` |
| 66 | + |
| 67 | +### Примеры |
| 68 | + |
| 69 | +Сценарии использования можно найти в папке [examples](examples). |
| 70 | + |
| 71 | +Примеры вызова компонентов — в папке [usage_examples](examples/usage_examples). |
| 72 | + |
| 73 | + |
| 74 | +### Документация |
| 75 | + |
| 76 | +Документация доступна [по ссылке](https://chrislisbon.github.io/TorchCNNBuilder/torchcnnbuilder.html). |
| 77 | + |
| 78 | +### Разработчикам |
| 79 | + |
| 80 | +Для просмотра доступных команд `Makefile` выполните в корне проекта: |
| 81 | +```sh |
| 82 | +make help |
| 83 | +``` |
| 84 | +```yaml |
| 85 | +help: Показать справку по командам Makefile. |
| 86 | +lint: Проверить код с помощью flake8. |
| 87 | +doc: Собрать и запустить документацию локально. |
| 88 | +``` |
| 89 | +
|
| 90 | +### Направления прикладного использования |
| 91 | +
|
| 92 | +TorchCNNBuilder позволяет создавать CNN-архитектуры для различных практических задач: |
| 93 | +
|
| 94 | +#### Мониторинг окружающей среды |
| 95 | +
|
| 96 | +- **Прогнозирование концентрации морского льда** |
| 97 | +Предсказание ледовых условий в Арктике и Антарктике для климатических исследований и безопасности судоходства. |
| 98 | +
|
| 99 | +- **Прогнозирование климатических условий** |
| 100 | +Анализ атмосферных данных, а также их предсказание для оценки погодных явлений. |
| 101 | +
|
| 102 | +- **Прогнозирование уровня загрязнения** |
| 103 | + Обработка данных сенсоров для предсказания и оценки качества воды и воздуха. |
| 104 | +
|
| 105 | +#### Дистанционное зондирование |
| 106 | +
|
| 107 | +- **Анализ спутниковых снимков** |
| 108 | +Обработка мультиспектральных изображений для сельского хозяйства и градостроительства. |
| 109 | +
|
| 110 | +- **Классификация подстилающей поверхности Земли** |
| 111 | +Автоматическое картирование территории на основе CNN, агрегирующей спектральную, пространственную и временную размерности данных. |
| 112 | +
|
| 113 | +- **Мониторинг природных бедствий** |
| 114 | +Системы детектирования изменений на основе оценки состояния природных сред по спутниковым изображениям до и после события. |
| 115 | +К примеру наводнений, пожаров или землетрясений. |
| 116 | +
|
| 117 | +
|
| 118 | +#### Медицинские изображения |
| 119 | +
|
| 120 | +- **Автоматическая диагностика по рентгену/МРТ** |
| 121 | +Системы для обнаружения аномалий на медицинских изображениях, позволяющие сократить работу мед. персонала. |
| 122 | +
|
| 123 | +- **Сегментация опухолей** |
| 124 | +Создание 3D CNN для многомерного анализа медицинских данных. |
| 125 | +
|
| 126 | +- **Анализ медицинских временных рядов** |
| 127 | +Обработка потоковых данных для прогнозирования ухудшения состояния пациентов за счет временных признаков. |
| 128 | +
|
| 129 | +#### Предиктивное обслуживание |
| 130 | +
|
| 131 | +- **Прогностическое обслуживание** |
| 132 | +Мониторинг вибраций обоорудования и тепловых сигнатур для прогнозирования механических отказов. |
| 133 | +
|
| 134 | +- **Контроль качества на производстве** |
| 135 | +Внедрение систем визуального контроля в реальном времени, которые обнаруживают дефекты на производственных линиях. |
| 136 | +
|
| 137 | +
|
| 138 | +#### Финансовое прогнозирование |
| 139 | +
|
| 140 | +- **Прогнозирование временных рядов** |
| 141 | +Создание гибридных архитектур CNN-LSTM, которые извлекают как пространственные |
| 142 | +закономерности из тепловых карт рынка, так и временные зависимости из истории цен. |
| 143 | +
|
| 144 | +- **Анализ рыночных тенденций** |
| 145 | +Обработка альтернативных пространственно-временных источников данных, таких как спутниковые снимки парковок или настроения в |
| 146 | +социальных сетях, с помощью архитектур CNN. |
| 147 | +
|
| 148 | +
|
| 149 | +### Источники |
| 150 | +
|
| 151 | +--- |
| 152 | +- [Forecasting of Sea Ice Concentration using CNN, PDE discovery and Bayesian Networks](https://www.sciencedirect.com/science/article/pii/S1877050923020094) |
| 153 | +- [Surrogate Modelling for Sea Ice Concentration using Lightweight Neural Ensemble](https://arxiv.org/abs/2312.04330) |
| 154 | +- [Пост о разработке и применении фреймворка на habr.com ](https://habr.com/ru/companies/selectel/articles/818649/) |
| 155 | +
|
| 156 | +
|
| 157 | +### Как поучаствовать в проекте |
| 158 | +
|
| 159 | +- Чтобы присоединиться к команде [напишите нам](mailto:jul.borisova@itmo.ru); |
| 160 | +
|
| 161 | +- [Issues](https://github.com/ChrisLisbon/TorchCNNBuilder/issues) и |
| 162 | +[Pull Requests](https://github.com/ChrisLisbon/TorchCNNBuilder/pulls): для пометки багов и запросов на добавление функций. |
| 163 | +
|
| 164 | +### Благодарности |
| 165 | +
|
| 166 | +Проект реализуется при поддержке [ФСИ](https://fasie.ru/) - Фонда содействия инновациям. |
0 commit comments