Skip to content

sassless/AlcoNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AlcoNet

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ алкогольной ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ, основанный Π½Π° ResNet50v1.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ изобраТСния алкоголя ΠΏΠΎ 11 классам, список ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² decoder.py.

Для запуска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Python 3 ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² requirements.txt

МодСль

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ описаны Π² model.py.

МодСль состоит ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ свСрточной сСти ResNet50v1 Π±Π΅Π· полносвязного Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоя ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слоСв, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄ ResNet, Π² Ρ‚ΠΎΠΌ числС Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ полносвязного слоя Π½Π° 11 классов.

МодСль ResNet ΠΏΡ€Π΅Π΄ΠΎΠ±ΡƒΡ‡Π΅Π½Π° Π½Π° датасСтС ImageNet, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 146 слоСв Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Ρ‹ для обучСния, для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ResNet смотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

Для создания своСй Π½Π΅ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ настройтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² model.py ΠΈ запуститС Π΅Π³ΠΎ.

ΠΠ΅ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅

Для обучСния созданной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° своих Π΄Π°Π½Π½Ρ‹Ρ… настройтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ обучСния Π² fit.py ΠΈ запуститС Π΅Π³ΠΎ.

Π”Π°Π½Π½Ρ‹Π΅

Π”Π°Π½Π½Ρ‹Π΅ для обучСния ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ train_path ΠΈ validation_path) ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ImageDataGenerator.

ΠœΠ΅Ρ‚ΠΎΠ΄ flow_from_directory() автоматичСски опрСдСляСт количСство классов Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ количСству ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ считываСт всС изобраТСния ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ставя ΠΈΡ… Π² соотвСтствиС классу ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ структура Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для обучСния ΠΈΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ>/<ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с названиями опрСдСляСмых классов>/<Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса>

БоотвСтствСнно структура ΠΈ количСство классов для ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΎΠ½Π½ΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ.

Π’Π°ΠΊ ΠΆΠ΅ ImageDataGenerator ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π½Π° Π²Ρ…ΠΎΠ΄ нСйросСти, Π² Ρ‚ΠΎΠΌ числС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ°ΠΆΠ°Ρ‚ΡŒ изобраТСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для увСличСния разнообразия ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ настройку ΠΈ использованиС ImageDataGenerator ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ keras.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

ΠžΠ±ΡƒΡ‡Π΅Π½Π½Π°Ρ модСль сохраняСтся Π² ΠΊΠΎΠ½Ρ†Π΅ обучСния ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ final_save_path.

Для сохранСния ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ обучСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ModelCheckpoint. Он сохраняСт ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ эпохи ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ save_path с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ эпохи. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ save_best_only Ρ€Π°Π²Π΅Π½ True, Ρ‚ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΡƒΡ‡ΡˆΠΈΠ΅ эпохи обучСния, ΠΏΡ€ΠΈ этом ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ хранятся Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… monitor ΠΈ mode. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ настройку ΠΈ использованиС ModelCheckpoint ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ keras.

ΠžΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π½Π° 50 ΠΈ 100 эпохах ΠΌΠΎΠ΄Π΅Π»ΠΈ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

ВСстированиС

Для тСстирования Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… изобраТСниях ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с изобраТСниями ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ test.py. Для этого запуститС Π΅Π³ΠΎ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

test.py mode [path], Π³Π΄Π΅

  • mode - 0 (для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с изобраТСниями) ΠΈΠ»ΠΈ 1 (для ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния).
  • path - ΠΏΡƒΡ‚ΡŒ ΠΊ тСстовому ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ.

Π’ ΠΊΠΎΠ΄Π΅ test.py ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ тСстирования: ΠΏΡƒΡ‚ΡŒ ΠΊ тСстируСмой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΡƒΡ‚ΠΈ ΠΊ тСстовым Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages