ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π°Π»ΠΊΠΎΠ³ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° 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 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΏΡΡΡ ΠΊ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΡΡΠΈ ΠΊ ΡΠ΅ΡΡΠΎΠ²ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.