ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ TRX Π² Π ΠΎΡΡΠΈΠΈ
Β
ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠ°ΠΌΡΡ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ ΡΠΈΡΠ½Π΅Ρ-ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ TRX Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΈΡΠ»ΠΎ ΡΠ°ΠΌΡΡ ΡΡΠΊΠΈΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΉ ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°. Π Ρ ΡΡΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΡΡΡΡ ΡΠΎΡΠ½ΠΈ ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² ΠΈ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΈ ΡΠ°Π½Π°ΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Ρ TRX.
Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»Π° TRX Suspension Training — ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΎΠ²Π΅ΠΉΡΠΈΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΉ ΡΠΈΡΠ½Π΅Ρ-ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΡΡ Π»Π΅Ρ Π½Π°Π·Π°Π΄ Π½ΠΈΠΊΡΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠ»ΡΡΠ°Π». Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΌΠΎΠ΄Π½ΡΡ Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΡΠ½Π΅Ρ-ΠΊΠ»ΡΠ±Ρ ΡΠΆΠ΅ Π½Π΅ ΠΌΡΡΠ»ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ Π±Π΅Π· Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Π½Π° ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ΅ TRX Π² ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ ΠΈ Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΡΠ΅Π»ΡΠΌΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Ρ Suspension (ΠΏΠΎΠ΄Π²Π΅ΡΠ½ΡΡ ) ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Π½Π° ΠΏΠ΅ΡΠ»ΡΡ TRX ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΠΌΡ, Π½ΠΎ ΠΈ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅Π»Π°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΠΆΠ΅Ρ TRX β ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΈΡΠ½Π΅ΡΠΎΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ: Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠΌΠ°, Π½Π° ΡΠΏΠΎΡΡΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π΅, Π² ΠΎΡΠ΅Π»Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΏΡΡΠΊΠ°.
Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ TRX Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΌΠΈ Β«ΠΊΠΎΡΠΈΠΊΠ°ΠΌΠΈΒ» — ΡΠΏΠ΅ΡΠ½Π°Π·ΠΎΠΌ ΠΌΠΎΡΡΠΊΠΎΠΉ ΠΏΠ΅Ρ ΠΎΡΡ Π‘Π¨Π ΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ°ΠΏΠΎΠ² ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΌΠΈΡΠΎΠ²ΠΎΠΌΡ ΡΠΈΡΠ½Π΅Ρ-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ. ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ, TRX ΡΡΠ΅Π½Π°ΠΆΠ΅Ρ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Π±ΡΠ» Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ ΠΏΡΠΈΠ½ΡΡ ΠΈ Π»ΡΠ±ΠΈΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ½Π΅ΡΠ° ΠΈ ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°ΠΌΠΈ ΡΠ»ΠΈΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ»ΠΈ TRX ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΠ‘ΠΠΠ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ NHL, NFL, NBA ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π²ΠΈΠ΄Π°Ρ ΡΠΏΠΎΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π»Π΅ΠΆΠ°Ρ Π² ΡΡΠΊΠ·Π°ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ³ΠΎ ΡΠΎΠ»Π΄Π°ΡΠ° Π‘Π¨Π Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΡΠ°Π½Ρ.
Β
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π½Π° TRX Π»Π΅ΠΆΠ°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ TRX Suspension Training β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΠ½Π³Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡΡΡ Π²ΡΠ΅Π³ΠΎ ΡΠ΅Π»Π°. ΠΠ°Π½ΡΡΠΈΡ Π½Π° ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ΅ TRX ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Ρ Π»ΡΠ±ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠΈΠ»Ρ, Π²ΡΠ½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡΠΈ, Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΡΠ°Π²Π½ΠΎΠ²Π΅ΡΠΈΡ.
ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° ΡΠ΅ΠΌΠ½Π΅ΠΉ (ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅) ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Ρ Π½ΡΠΆΠ½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΎΡ 5 Π΄ΠΎ 100% ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π΅ΡΠ°), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π·Π½ΡΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π»ΡΠ±ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ Π»ΡΠ΄ΡΠΌ Π² ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ ΡΠΏΠΎΡΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
ΠΠ΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΠ½Π³Π° ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π²ΡΠ΅Ρ ΠΌΡΡΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎΡΡΡ, ΡΠΈΠ»Ρ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡ β ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΌ Π²ΡΠ΅ΠΌ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π°ΡΠΏΠ΅ΠΊΡ ΡΡΠΈΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ β ΡΠΏΠΎΡ Π½Π° Π³Π°ΡΠΌΠΎΠ½ΠΈΡΠ½ΠΎΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΌΡΡΡ-ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² (ΠΊΠΎΡ, core). Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠ° Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Π΅ΡΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΡΠ΅Π²ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΠΎΠ·Π²ΠΎΠ½ΠΎΡΠ½ΠΈΠΊ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ΅Π½Π°ΠΆΠ΅Ρ TRX ΡΡΠ°Π½Π΅Ρ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠΎΡΡΠΊΠΎΠ².
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΡΠ½Π΅Ρ-ΠΊΠ»ΡΠ±Ρ ΡΡΡΠ΅ΠΌΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ TRX Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ, Π² ΠΏΠΈΠ»Π°ΡΠ΅ΡΠ΅ ΠΈ ΡΠ΅Π°Π±ΠΈΠ»ΠΈΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ . ΠΡΠΎΠ±ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΎΠ±ΡΠ΅Π»ΠΎ outdoor-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π·ΠΎΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΠ½Π³Π° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΠΎΠΊ.
ΠΡΠ΅ΠΏΠ΅ΠΆ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ:
— Π½Π° ΡΡΡΠ½ΠΈΠΊ
— Π½Π° ΠΊΡΡΠΊΠΈ Π΄Π»Ρ Π±ΠΎΠΊΡΠ΅ΡΡΠΊΠΈΡ
ΠΌΠ΅ΡΠΊΠΎΠ²
— Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΡΠΎΠ»Π±
— Π½Π° Π²Π΅ΡΠΊΡ Π΄Π΅ΡΠ΅Π²Π°
— Π½Π° Π»ΡΠ±ΡΡ Π΄Π²Π΅ΡΡ (ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½ΠΊΠ΅ΡΠ°)
Β
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ°Π»ΠΎΠΌΡ Π²Π΅ΡΡ (ΠΌΠ΅Π½Π΅Π΅ 1 ΠΊΠ³) ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΠΈ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ°, TRX Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Ρ ΡΠΎΠ±ΠΎΠΉ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΏΡΡΠΊΠ°.
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π·Π²Π΅Π·Π΄Ρ ΡΠΏΠΎΡΡΠ°, ΠΊΠΈΠ½ΠΎ ΠΈ ΡΠΎΡ-Π±ΠΈΠ·Π½Π΅ΡΠ° ΡΡΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ»ΠΈ TRX Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π°ΠΌΠΈ Ρ ΡΠ΅Π»ΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ²ΠΎΠΈΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Π² ΡΠ°ΠΊΠΈΡ Π²ΠΈΠ΄Π°Ρ ΡΠΏΠΎΡΡΠ° ΠΊΠ°ΠΊ Π±ΠΎΠΊΡ, ΡΡΠΆΠ΅Π»Π°Ρ Π°ΡΠ»Π΅ΡΠΈΠΊΠ°, Π±ΠΎΠ΅Π²ΡΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π°, Ρ ΠΎΠΊΠΊΠ΅ΠΉ, Π³ΠΎΠ»ΡΡ, ΡΠ΅Π½Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ . Π€Π ΠΠΈΠ²Π΅ΡΠΏΡΠ»Ρ ΠΏΡΠΈΠ·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ TRX ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π½Π΅Π±ΡΠ²Π°Π»ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΡΠ°Π²ΠΌΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΡΡΡΠ±ΠΎΠ»ΠΈΡΡΠΎΠ².
Π’ΡΠ΅Π½Π°ΠΆΠ΅Ρ TRX Suspension Professional Trainer ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΠΉΠ»ΠΎΠ½ΠΎΠ²ΡΡ ΡΠ΅ΠΌΠ½Π΅ΠΉ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΡ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²: Π²Π΅ΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π»Π° ΠΈ ΡΠΈΠ»Ρ Π³ΡΠ°Π²ΠΈΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°Π½ΡΡΠΈΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠ½ΠΈ TRX Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ΠΈΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΌΡΡ Π½Π°Π΄ Π·Π΅ΠΌΠ»Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΠΈΠ½Π΅, Π΄Π²Π΅ΡΠΈ, Π²Π΅ΡΠΊΠ΅ Π΄Π΅ΡΠ΅Π²Π°). Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Ρ TRX ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π²Π°ΠΌ ΠΏΠΎ-Π½ΠΎΠ²ΠΎΠΌΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π²Π°Ρ Π²Π·Π³Π»ΡΠ΄ Π½Π° ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ° TRX Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΡ Π΄ΠΎ 160 ΠΊΠ³.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° TRX |
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ ΠΈ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌΠΈ ΠΊΠ°ΡΠ΄ΠΈΠΎ- ΠΈ ΡΠΈΠ»ΠΎΠ²ΡΠΌΠΈ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ°ΠΌΠΈ, TRX ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π΄Π΅Π½Π΅ΠΆΠ½ΠΎΠΉ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π»Ρ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΈΠ½ΡΡΡ. ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊ Π² ΡΠΏΠΎΡΡΠΈΠ²Π½ΠΎΠΌ Π·Π°Π»Π΅, ΡΠ°ΠΊ ΠΈ Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠΌΠ° ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΎΡΠΏΡΡΠΊΠ΅ / ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠΎΠ²ΠΊΠ΅!
Π’ΡΡΡΡΠΈ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ ΡΠΆΠ΅ ΡΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠ΅Π½ΠΈΡΡ Π²ΡΡΠΎΡΠ°ΠΉΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ TRX.
Π ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ TRX?
Β
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ TRX |
Β
ΠΠ΅ΡΠ»ΠΈ TRX β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΠΆΠ΅Ρ, ΡΡΠΎ β ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΌΠΈ ΠΌΠΎΡΡΠΊΠΈΠΌΠΈ ΠΏΠ΅Ρ ΠΎΡΠΈΠ½ΡΠ°ΠΌΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²Π°Ρ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ Ρ TRX
ΠΡΡΠΎΠΊΠ°Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π»ΡΠ±ΡΡ
ΡΠΈΠΏΠΎΠ² ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ: ΠΊΠ°ΡΠ΄ΠΈΠΎ ΠΈ ΡΠΈΠ»ΠΎΠ²ΡΡ
, Π³ΡΡΠΏΠΏΠΎΠ²ΡΡ
ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ
, Π½Π° ΠΌΡΡΡΡ-ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΡ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ
Π²ΠΈΠ΄ΠΎΠ² ΡΠΏΠΎΡΡΠ° ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π Π»ΡΠ±ΠΎΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π½ΠΈΡΡΡΡΡΡ ΠΌΡΡΡΡ-ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅ ΡΠ΅Π»ΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ
ΠΠ΅ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ TRX ΠΈ ΡΠΎΠ²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΏΠ΅Ρ Π°, Π°Π΄Π°ΠΏΡΠΈΡΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠ΄ Π²Π°Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ. Π£ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ Π²Π°ΡΠΈ Π·Π°Π½ΡΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡΡ Π½Π° DVD.
ΠΠΎΠ΄Π²Π΅ΡΠ½Π°Ρ Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½Π°Ρ ΠΠ΅ΡΠ»Ρ ΠΠ»Ρ ΠΡΠΎΡΡ Π’ΡΠ΅Π½ΠΈΠ½Π³Π° Ρ ΡΡΠΌΠΎΡΠΊΠΎΠΉ ( ΠΠ΅ΡΠ»ΠΈ TRX)
Π‘ΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠΈ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΌΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠΏΡΡΠ° Π²ΡΠ΅Π³ΠΎ ΡΠ΅Π»Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ 50 ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ
ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π²ΡΠ΅ΠΌ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΈΠ»ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°ΠΊΠ»ΠΎΠ½Π° ΠΊΠΎΡΠΏΡΡΠ°.
2 ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ: Π½Π° Π΄Π²Π΅ΡΠΈ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΌΠ½Ρ.
Β
Π Π°Π·ΠΌΠ΅ΡΡ
Π ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅: ΠΠ»ΠΈΠ½Π°: ΠΎΡ 60 ΡΠΌ Π΄ΠΎ 170 ΡΠΌ Π¨ΠΈΡΠΈΠ½Π° ΡΡΡΠ΅ΠΊ: 13,5 ΡΠΌ ΠΠΈΠ°ΠΌΠ΅ΡΡ ΡΡΡΠ΅ΠΊ: 3,2 ΡΠΌ Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°: ΠΠ»ΠΈΠ½Π°: 17 ΡΠΌ Π¨ΠΈΡΠΈΠ½Π°: 10 ΡΠΌ ΠΡΡΠΎΡΠ°: 13 ΡΠΌ
ΠΠΠ‘
Π’ΠΎΠ²Π°Ρ: 1 ΠΊΠ³ Π ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅: 1,2 ΠΊΠ³
ΠΠ»Ρ ΠΠ°ΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΈ Π½Π° ΡΠ΅ΠΌΠ½Π΅
Π’ΡΠ΅Π½ΠΈΡΡΠΉΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΡΠ΄Ρ: Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΠ½Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΠΈΠ½Π΅, Π²ΠΎΡΠΎΡΠ°Ρ , ΠΊΠ°ΡΠ΅Π»ΡΡ , Π΄Π΅ΡΠ΅Π²Π΅ ΠΈ Ρ.Π΄. ΠΠ°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π»Ρ ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π·Π°ΡΠ΅Π»ΠΊΠ½ΡΡ Π»ΠΈ ΠΊΠ°ΡΠ°Π±ΠΈΠ½ (ΡΠΌ., ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ/ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ).
ΠΠ»Ρ ΠΠ°ΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π½Π° Π΄Π²Π΅ΡΡ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π½Π° Π΄Π²Π΅ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΆΠ΅Π»ΡΠΎβΡΠ΅ΡΠ½ΡΡ Π»Π΅Π½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΅Π΅ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΠ°Π΄Π΅ΠΆΠ½ΡΠΉ Π΄Π²Π΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΌ ΠΈ Π·Π°ΠΊΡΡΡΠ°Ρ Π΄Π²Π΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΠ°ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡ Π΄Π²Π΅ΡΡ, Π²ΡΠ΅Π³Π΄Π° Π·Π°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ΡΡ Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡΠΌ ΡΡΠΎΡΠΎΠ½Ρ (ΡΠΌ., ΠΊΠ°ΠΊ Π½ΡΠΆΠ½ΠΎ/ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ).
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠΎΠΌ.
Domyos.com Π ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π΅ Ρ Π½Π°ΡΠΈΠΌ ΡΠΈΡΠ½Π΅ΡβΡΠ΅Π½ΡΡΠΎΠΌ Domyos Club ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ.
Π Π½Π°Π±ΠΎΡΠ΅
Π Π½Π°Π±ΠΎΡΠ΅: β 1 ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½Π°Ρ ΠΏΠ΅ΡΠ»Ρ Domyos, ΠΊΡΠ΅ΠΏΠΈΡΡΡ ΠΊ Π΄Π²Π΅ΡΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΠΈΠ½Π΅/Π²ΠΎΡΠΎΡΠ°ΠΌ/Π΄Π΅ΡΠ΅Π²Ρ. β 1 ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ 15 Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡΠΌΠΈ. β 1 ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠΎΠ²ΠΎΡΠ½Π°Ρ ΡΠ΅ΡΠΊΠ°.
ΠΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ
Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ Domyos Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ, ΠΈΡΠΏΡΡΠ°Π½Ρ ΠΈ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ½Π΅ΡβΡΡΠ΅Π½Π΅ΡΠ°ΠΌΠΈ ΠΈΠ· DOMYOS.
Π‘ΠΎΡΡΠ°Π²
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» : 100.0% ΠΠΎΠ»ΠΈΠ°ΠΌΠΈΠ΄ ΠΡΡΠΆΠΊΠ° : 100.0% Π¦Π°ΠΌ Π ΡΡΠΊΠ° : 75.0% ΠΠΎΠ»ΠΈΠΏΡΠΎΠΏΠΈΠ»Π΅Π½, Π ΡΡΠΊΠ° : 25.0% Π‘ΡΠΈΡΠΎΠ» ΠΡΠΈΠ»Π΅Π½-ΠΡΡΠ°Π΄ΠΈΠ΅Π½-Π‘ΡΠΈΡΠΎΠ» (Π‘Π΅Π±Ρ)
ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅) ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ
ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ. Π Π°Π·Π²ΠΈΠ²Π°ΠΉΡΠ΅ ΡΠΈΠ»Ρ, Π° Π½Π΅ Π²ΡΠ½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡΡ! ΠΡΠ»ΠΈ Π²Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΡΠΆΠΈΠΌΠ°Π½ΠΈΡΡ
Π½Π° Π±ΡΡΡΡΡΡ
Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ 20 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΠΈ ΠΌΠΎΡΠ½Π΅Π΅. ΠΡΠ½ΠΎΡΠ»ΠΈΠ²Π΅Π΅ — Π΄Π°, Π½ΠΎ Π½Π΅ ΡΠΈΠ»ΡΠ½Π΅Π΅. ΠΡΡ
ΠΎΠ΄? ΠΠΎΠ΄Π²Π΅ΡΠΈΡΡ Π½Π° ΠΏΠΎΡΡ ΠΏΠ°ΡΠΎΡΠΊΡ Π±Π»ΠΈΠ½ΠΎΠ² ΠΎΡ ΡΡΠ°Π½Π³ΠΈ ΠΠΠ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡ ΠΆΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΡ, Π²Π·ΡΠ² ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ Π»Π΅Π½ΡΡ Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΌ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊ Π²Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΎΠ² Π΄ΠΎ 5 — 8 ΡΠ°Π·, Π° ΠΊΠΎΠ³Π΄Π° ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ — Π²ΠΎΠ·ΠΌΠ΅ΡΠ΅ Π»Π΅Π½ΡΡ ΠΏΠΎΠΆΠ΅ΡΡΡΠ΅ (ΠΈΠ»ΠΈ ΡΡΠ°Π·Ρ Π΄Π²Π΅).
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ? ΠΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π½ΠΈΡΠΌΠΈ. ΠΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠ²ΠΎΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ ΡΡΡΠΊ Π²ΡΠΎΠ΄Π΅ Π²ΡΡ ΠΎΠ΄Π° Π½Π° Π΄Π²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΊΠ΅. Π Π΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ Π»Π΅Π½ΡΡ Π±ΡΠ΄ΡΡ «Π²Π°ΡΠΈΠΌΠΈ ΠΌΡΡΡΠ°ΠΌΠΈ» Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ ΠΎΠΊΡΠ΅ΠΏΠ½Π΅ΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΠΎΠΌΠΎΡΠΈ.
ΠΡΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΅Π±Π΅ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠΌΠΈ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠΉ — Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΈΠΌ ΡΠΈΡΡΠ½ΠΊΠΎΠΌ (ΡΠ²Π΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ²Π΅ΡΡ ΠΏΠ΅ΡΠ»ΠΈ). |
ΠΡΠΈΡΠ΅Π΄Π°Π½ΠΈΡ, ΠΆΠΈΠΌ Π»Π΅ΠΆΠ°, ΡΡΠ°Π½ΠΎΠ²Π°Ρ ΡΡΠ³Π°.Β ΠΡΠΈ ΡΠΌΠ΅Π»ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΡΠΈΠΌ ΠΌΡΡΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΈ ΠΈ Π΄ΠΎΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ
Π²ΡΡΠΎΡ Π² Π±Π°Π·ΠΎΠ²ΡΡ
ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡΡ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΠΏΠΎΠ±Π΅Π΄ΠΈΡΡΒ» Π²Π°ΡΠΈ ΠΌΠ΅ΡΡΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ. ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ? Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π»Ρ ΠΊ ΡΠ½Π°ΡΡΠ΄Ρ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ.
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±: ΠΏΠ΅ΡΠ»ΠΈ Π½Π°ΠΌΠ°ΡΡΠ²Π°ΡΡΡΡ Π½Π° Π³ΡΠΈΡ, Π° ΡΠΎΡΠΊΠ° ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π²Π΅ΡΡ Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ ΡΠ°ΠΌΠ΅). ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π·ΠΈΠ½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠ½ΡΡΠ° Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π½Π³Π° Π»Π΅ΠΆΠΈΡ Π½Π° Π³ΡΡΠ΄ΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΆΠΈΠΌΠ° Π»Π΅ΠΆΠ°) ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²Π°ΠΌ Β«Π²ΡΡΡΡΠ΅Π»ΠΈΡΡΒ» ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅ΡΠ°ΠΌΠΈ, Π±ΠΠ»ΡΡΠΈΠΌΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ°, Ρ.Π΅. ΡΠ΅Π·ΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ»ΠΈΠ½Π³ΡΠΎΡ (slingshot), ΡΠ°Π΄Ρ Π²Π°ΡΠΈ ΠΌΡΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΡΡΠ°Ρ Π²Π°ΡΠΈ ΡΡΡΡΠ°Π²Ρ, ΡΠ²ΡΠ·ΠΊΠΈ ΠΈ Π³ΠΎΠ»ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅ΡΠ°ΠΌΠΈ, Π΄ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎΡΠΎΡΠ»ΠΈ, Π½ΠΎ Π²ΠΎΡ-Π²ΠΎΡ Π΄ΠΎΡΠ°ΡΡΠ΅ΡΠ΅. ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±: ΠΏΠ΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΡΠ³ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π³ΡΠΈΡΠ΅, Π½ΠΎ ΡΠΎΡΠΊΠ° ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΠΈΠ·Ρ. Π Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ ΡΠ΅Π·ΠΈΠ½Π° ΠΏΠΎΡΡΠΈ Π½Π΅ ΡΠ°ΡΡΡΠ½ΡΡΠ°, Π½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ½Π°ΡΡΠ΄Π° Π²Π²Π΅ΡΡ , ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΡΠΈΠ»ΠΈΠ²Π°Π΅ΡΡΡ, Π΄ΠΎΡΡΠΈΠ³Π°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ° Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅. ΠΠΎΡ Π½Π° ΡΡΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠΌΠΈ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ ΡΡΠΎΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈΡΠ΅Π΄, ΠΆΠΈΠΌ ΠΈ ΡΡΠ³Π° ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡΠΌ Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ. Π‘ΠΈΠ»ΠΎΠ²Π°Ρ ΠΊΡΠΈΠ²Π°Ρ β ΡΡΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΠ»Ρ ΠΊ Π²Π΅ΡΡ ΡΠ½Π°ΡΡΠ΄Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠΊΠ°Ρ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ. Π§Π΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠΎ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π΄Π²ΠΈΠ³Π°ΡΡ ΡΠ½Π°ΡΡΠ΄. ΠΡΠΎ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ³Π»ΠΎΠ² Π² ΡΡΡΡΠ°Π²Π°Ρ , ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΡ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π²ΡΠ³ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±ΠΈΠΎΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΈ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ, ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΈΡΠ΅Π΄, ΠΆΠΈΠΌ ΠΈ ΡΡΠ³Ρ, Π°ΡΠ»Π΅Ρ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΌ Π΄Π°Π»ΡΡΠ΅, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΡΡΡΠ°Π²Ρ, ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ Π΅ΠΌΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π²ΠΈΠ³Π°ΡΡ ΡΡΠ°Π½Π³Ρ. ΠΠ½Π°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ ΠΌΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ Π½Π° ΡΠΏΠ°Π΄, Ρ.Π΅. Π²Ρ Β«Π½Π΅ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅Β» Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΡΠ°Π½Π³Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π΄ΠΎΠ³ΡΡΠΆΠ°Π΅ΡΠ΅ ΡΡΠΈΡΠ΅ΠΏΡ ΠΈ Π΄Π΅Π»ΡΡΡ Π½Π° ΠΆΠΈΠΌΠ΅ Π»Π΅ΠΆΠ°, Ρ.Π΅. ΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠΎΡΠΌΠΎΠ·ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ Π²Π΅ΡΠΎΠΌ ΡΠ½Π°ΡΡΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠ²Π°ΡΡ Ρ Π³ΡΡΠ΄ΠΈ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌ Π²Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ «Π΄ΠΎΠΆΠ°ΡΡ» Π½Π°Π²Π΅ΡΡ Ρ). ΠΠ΄Π½Π°ΠΊΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠΈΠ΄Π΅ΠΎ Ρ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΠ»Π΅ΠΊΡΠ΅Ρ ΠΠΈΠΊΡΠ»ΠΈΠ½Π°. ΠΠ°ΡΠΈΠ°Π½Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ Π½Π° ΠΆΠΈΠΌΠ΅ Π»Π΅ΠΆΠ°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΠΌΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ Π°ΠΌΠΏΠ»ΠΈΡΡΠ΄Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π²Π΅Ρ ΡΠ½Π°ΡΡΠ΄Π° Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠΎΡΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΏΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ. Π‘Ρ ΠΎΠΆΠ΅Π³ΠΎ ΡΡΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΡΡΡΠΊΠΈ Π΄Π»Ρ Π΄ΠΎΠΆΠΈΠΌΠΎΠ² Ρ ΡΠ²Π΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ Π² ΠΆΠΈΠΌΠ΅ Π»Π΅ΠΆΠ°. ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Ρ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΠ΅ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΡ, Π½Π°ΡΡΡΠ°Ρ Π½Π΅ΠΉΡΠΎ-ΠΌΡΡΠ΅ΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, Π° Ρ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ Π°ΠΌΠΏΠ»ΠΈΡΡΠ΄Π΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π·ΠΈΠ½Π° ΡΡΠΈΡ Π²Π°ΡΠ΅ ΡΠ΅Π»ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΡΡΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ. ΠΠ»ΠΈΠΆΠ΅ ΠΊ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ (Π³Π΄Π΅ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΌΠ΅ΡΡΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ) ΠΏΠ΅ΡΠ»Ρ ΡΠΆΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠ½ΡΡΠ° ΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅Π΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΡΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ»ΠΎΠΊΠ½Π°. Π’Π°ΠΊ Π²Ρ ΡΡΠ΅Π½ΠΈΡΡΠ΅ΡΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ²ΠΎΡ Π½Π΅ΡΠ²Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π· (ΡΠΆΠ΅ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π»Ρ) Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π² Π½ΡΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠΈΠ΄Π΅ΠΎ Ρ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΠ»Π΅ΠΊΡΠ΅Ρ ΠΠΈΠΊΡΠ»ΠΈΠ½Π°. ΠΠ°ΡΠΈΠ°Π½Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ Π½Π° ΡΡΠ°Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ³Π΅. ΠΠ°ΠΊΠΈΠ΅ ΡΠ»ΠΈΠ²ΠΊΠΈ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ Π² ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠ°Ρ ΠΌΠΎΠ³ΡΡ ΡΠ½ΡΡΡ ΡΠΊΠΈΠΏΠΈΡΠΎΠ²ΠΎΡΠ½ΠΈΠΊΠΈ? Π Π΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ Π»Π΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ ΡΠ΅Π»ΠΎ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠΈΠΏΡ. ΠΠΊΠΈΠΏΠ° Β«Π²ΡΡΡΡΠ΅Π»ΠΈΠ²Π°Π΅Ρ» ΡΠ½ΠΈΠ·Ρ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π΄ΠΎ ΠΌΠ΅ΡΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ), Π·Π°ΡΠ΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅Π·ΠΊΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ, ΠΈ Π²Π°ΠΌ ΡΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ·ΠΎ Π²ΡΠ΅Ρ ΡΠΈΠ» Π±ΠΎΡΠΎΡΡΡΡ Ρ Π²Π΅ΡΠΎΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΡ Π·Π΄Π΅ΡΡ ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°Π²ΡΠΊ, Π½Π°ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π½Π΅ΡΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅Π·ΠΈΠ½ΠΎΠΉ. Π Π±Π΅Π·ΡΠΊΠΈΠΏΠΈΡΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠ½Π³Π΅ ΠΏΠΎΠ»ΡΠ·Π° ΠΎΡ ΠΏΠ΅ΡΠ΅Π»Ρ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ Π² ΡΠ°ΠΌΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΡΠ½ΡΡΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΡΡΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡ ΡΠΈΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ° ΡΡΠ°Π½Π³ΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ ΠΏΠΎΠ΄ΡΡΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅Π΄ΠΎΠ²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π³ΡΡΠ΄Π½ΡΡ ΠΈ Π΄Π΅Π»ΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π»ΡΠΆΠ΅Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°. ΠΠΎΡ Π·Π΄Π΅ΡΡ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΠ΅ΡΠ»ΠΈ! ΠΠ΅ ΠΏΠΎΠ²ΡΡΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΌΡΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ, Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π»Ρ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΡΠΆΡΠ»ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π·Π°Π΄Π°Π΄ΠΈΠΌ ΡΡΡΠ΅ΡΡ Π΄Π»Ρ Π¦ΠΠ‘ ΠΈ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΌ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΠ»Π°Π½. |
Π Π΅Π·ΠΈΠ½ΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π½ΠΈΡ Hvat Π§Π΅ΡΠ½Π°Ρ (32-77 ΠΊΠ³)
ΠΠΠΠ‘ΠΠΠΠ
Π§Π΅ΡΠ½Π°Ρ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ½ΠΎΠΉ ΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΆΠ΅ΡΡΠΊΠΎΠΉ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΈΡΠΈΠ½Π° ΡΠ°ΠΌΠΎΠΉ Π»Π΅Π½ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ. Π Π»ΡΠ±ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΠΏΠΎΡΡΠ΅ ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠ΅, Π½Π°ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΡΡΠ΅ΡΠ½ΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π³ΡΡΠΏΠΏ ΠΌΡΡΡ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ½ΡΠ΅ Π»Π΅Π½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π±ΠΎΠ΄ΠΈΠ±ΠΈΠ»Π΄ΠΈΠ½Π³Π΅, ΡΠΈΡΠ½Π΅ΡΠ΅ ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠ±ΠΎΡΡΡΠ²Π°Ρ . ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΡΡΠΎΠΉΠΊΠ° ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΡ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π°ΡΠ»Π΅ΡΠ° ΡΠΎ ΡΡΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ°-Π°ΠΊΡΠ΅ΡΡΡΠ°ΡΠ°.
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
β’ ΠΠΎΠ»ΡΡΠ°Ρ ΡΠΈΡΠΈΠ½Π° ΠΏΠ΅ΡΠ»ΠΈ β 83 ΠΌΠΌ;
β’ Π‘Π°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ: ΠΎΡ 32 Π΄ΠΎ 77 ΠΊΠ³;
β’ ΠΠΎΠ»ΡΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠ΅Π½ΠΈΠ½Π³Π°Ρ
Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°;
β’ ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΌΠ°Π»ΠΎΠΎΠΏΡΡΠ½ΡΠΌ Π°ΡΠ»Π΅ΡΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π°ΠΌ ΡΠΎ ΡΡΠ°ΠΆΠ΅ΠΌ;
β’ ΠΠ΅Π²Π΅ΡΠΎΡΡΠ½Π°Ρ Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ»ΠΈ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π΅Π΅ ΡΡΡΡΠΊΡΡΡΡ;
β’ ΠΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ΠΌ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ Π½Π°ΡΠΈΡΠ°Π½ΠΈΡ, ΡΡΠ°Π΄ΠΈΠ½Ρ ΠΈΠ»ΠΈ ΠΆΠ΅ Π°Π»Π»Π΅ΡΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠΈ.
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ?
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΡ-Π°ΠΊΡΠ΅ΡΡΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡ Π»ΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ β Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠ»ΠΎΠ²ΡΡ
ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡΡ
, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. Π§Π΅ΡΠ½ΡΠ΅ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ Π»Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΡΡΠ³ΠΎΡΠ΅Π½ΠΈΡΠΌ. ΠΠ½ΠΈ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΡΡΠΆΠ΅Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π³ ΠΈΠ»ΠΈ Π³Π°Π½ΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»Π΅Π½ΡΡ Π΄Π°Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΈΡΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π°ΠΌ. ΠΡΡΠ³ΠΈΠ΅ ΠΆΠ΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°ΡΡ ΠΈΡ
Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ:
β’ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎ Π±ΠΈΠΎΠΌΠ΅Ρ
Π°Π½ΠΈΠΊΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ;
β’ Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ Π²Π·ΡΡΠ²Π½ΠΎΠΉ ΡΠΈΠ»Ρ ΠΌΡΡΠ΅ΡΠ½ΡΡ
Π²ΠΎΠ»ΠΎΠΊΠΎΠ½;
β’ ΠΠ°ΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΡΡΠ³ΠΎΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΈΠΊΠ΅.
Π§Π΅ΡΠ½ΡΠ΅ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Ρ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΡΠΈΠΌ ΡΠ°ΠΊΡΠΎΠΌ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΡΠΎΡ Π½Π° ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π³ΡΡΠΏΠΏΠ° ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΅Π΄ΠΈΠ½ΠΎΠ±ΠΎΡΡΡΠ²Π°Ρ , ΠΊΡΠΎΡΡΡΠΈΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΠΈΠ΄Π°Ρ ΡΡΠ΅Π½ΠΈΠ½Π³Π°. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ°ΠΊΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ β ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΈΠ»Ρ ΠΌΡΡΠ΅ΡΠ½ΡΡ Π²ΠΎΠ»ΠΎΠΊΠΎΠ½. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ Π½Π°ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π¦ΠΠ‘ ΠΈ ΠΌΠΎΡΠΎΠ½Π΅ΠΉΡΠΎΠ½ΠΎΠ². ΠΡΡΠΊΡΠ»Π°ΡΡΡΠ° ΡΡΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎ Ρ Π½Π΅ΠΉΡΠΎΠΌΡΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠΌΠΏΡΠ»ΡΡΠ°ΠΌΠΈ, ΠΌΡΡΡΠ°ΠΌΠΈ-ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΡΡΡΡΠ°Π²Π½ΠΎ-ΡΠ²ΡΠ·ΠΎΡΠ½ΡΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠΎΠΌ. ΠΡΠ΅ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ±ΠΎΡΡΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΡΠΌ Π±ΠΎΠ΄ΠΈΠ±ΠΈΠ»Π΄Π΅ΡΠ°ΠΌ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ Π³ΡΡΠΏΠΏΡ: Π·Π°Π±Π΅Π³ΠΈ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ²ΠΊΠΎΠ²ΡΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ Π² ΡΡΠΊΠ°Ρ . ΠΠ΅ΡΠ²ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ Π±ΠΈΠΎΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΎΠΉ. Π£Π²Ρ, ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΎΡΡΠ³ΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΊΡΠ΅ΠΏΠΈΠ² Π»Π΅Π½ΡΡ Π½Π° ΠΏΡΠΎΡΠ½ΠΎΠΉ ΠΎΠΏΠΎΡΠ΅, Π°ΡΠ»Π΅Ρ ΠΎΠΏΠΎΡΡΡΠ²Π°Π΅Ρ Π΅ΠΉ ΡΠ΅Π±Ρ. ΠΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΡΠ΅Π½Π΅ΡΠ° ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠΎΡΠ½ΡΠΉ ΡΡΠ²ΠΎΠΊ Π²ΠΏΠ΅ΡΠ΅Π΄, ΡΡΠ°ΡΠ°ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΡΠ°ΡΡΡΠ½ΡΡΡ Π»Π΅Π½ΡΡ ΠΈ ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π° 1-2 ΡΠ°Π³Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΏΠΎΡΡΡΠΌΠ΅Π½ ΡΡΠ΅Π½ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΡΡ ΠΈΠ½Π½Π΅ΡΠ²Π°ΡΠΈΡ ΠΌΡΡΡ, Π½Π°Π³ΡΡΠΆΠ°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ»ΠΎΠΊΠΎΠ½ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΡΠΎΡΡ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π°ΠΊΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½Π° ΠΏΡΠΎΡΠ½Π°Ρ ΠΈ ΡΠΈΡΠΎΠΊΠ°Ρ ΠΏΠ΅ΡΠ»Ρ. ΠΠ° ΡΡΡ ΡΠΎΠ»Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Ρ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ Π½Π° Π΅Π΅ ΠΏΠΎΠΊΡΠΏΠΊΠ΅ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π»Π΅Π½ΡΡ ΡΠΎ ΡΠ»Π°Π±ΡΠΌ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ, Π΄Π°Π±Ρ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» ΡΠ΅ΡΠ½ΠΎΠΉ Π»Π΅Π½ΡΠ΅. Π£Π²Ρ, Π² Π·Π°Π±Π΅Π³Π°Ρ Π²ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°ΠΊΠΎΠΉ ΡΠΊΠΎΠ½ΠΎΠΌ-ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΠΏΡΠΈΠ½Π΅ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·Ρ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ΅ΡΠ»Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°Π·Π½ΡΠΌ Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΅Π³ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ²ΠΊΠ° Π²Π°ΡΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡΠΌ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π»Ρ, Π° Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½ΠΈΡ . ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, Π»ΠΈΠ±ΠΎ ΡΠ°Π½ΡΡΠ΅. ΠΠ±ΡΠΈΠΉ ΠΠΠ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π΅ΡΠ° ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ.
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ²ΠΊΠΈ Π΄Π»Ρ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΡΠ°ΡΠΎΡΠ½ΡΡ ΠΌΠ°Π½ΠΆΠ΅Ρ ΠΏΠ»Π΅ΡΠ°. ΠΡΠ±ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π΅Π΄ΠΈΠ½ΠΎΠ±ΠΎΡΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡΠΈΠΉ Π² ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅, Π² Π΄Π·ΡΠ΄ΠΎ, Π±ΠΎΡΡΠ±Π΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅ΡΠ°Ρ , Π² ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π΄Π΅Π»ΡΡΠΎΠ²ΠΈΠ΄Π½ΡΠ΅ ΠΌΡΡΡΡ, ΠΏΠ»Π΅ΡΠ΅Π²ΡΡ ΡΡΠΌΠΊΡ, ΡΡΡΡΠ°Π² ΠΈ ΠΌΠ°Π½ΠΆΠ΅ΡΡ ΠΏΠ»Π΅ΡΠ°. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π±ΠΎΠ΄ΠΈΠ±ΠΈΠ»Π΄Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π½ΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΡΡ ΠΈΠ· ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΅Π΄ΠΈΠ½ΠΎΠ±ΠΎΡΡΠ΅Π².
Π‘Π΅ΠΉΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠ½Π³Π΅. ΠΠ΅Π½ΡΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΠΏΠΎ Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π»Π΅Π½ΡΡ ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΊΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ Π²Π°ΡΠ°. ΠΡΠΆΡΠΈΠ½Ρ-Π°ΡΠ»Π΅ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΈΠ½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠΊΠΎΡΡΠ΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ Π½Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΡΠ΅Π΄ΠΏΠ»Π΅ΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ°Ρ Π±ΠΈΠΎΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π΅Π΅.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΈΠ»Π° ΡΠ΄Π°ΡΠ°, Π΅Π³ΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π½Π°Π½Π΅ΡΠ΅Π½ΠΈΡ Π΄ΠΆΠ΅Π±ΠΎΠ², Ρ ΡΠΊΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ²ΠΈΠ½Π³ΠΎΠ². Π§Π΅ΡΠ½Π°Ρ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ»Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΄Π»Ρ ΠΌΡΠΆΡΠΈΠ½.
Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ Π²Π·ΡΡΠ²Π½ΠΎΠΉ ΡΠΈΠ»Ρ Ρ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ»ΡΠΌΠΈ
Π‘ΠΊΠΎΡΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΡ ΠΌΡΡΠ΅ΡΠ½ΡΡ Π²ΠΎΠ»ΠΎΠΊΠΎΠ½ Π½Π°ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π²Π°ΡΠ΅ΠΉ Π¦ΠΠ‘ ΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΌΡΡΠΊΡΠ»Π°ΡΡΡΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΡΡΠ΅ΡΠ½ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΈΠ·ΠΈΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°ΠΊΠΈΡ ΡΡΠ΅Π½ΠΈΠ½Π³ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π°, Ρ ΠΎΡΠΎΡΠ°Ρ ΠΌΡΡΠ΅ΡΠ½Π°Ρ ΠΈΠ½Π½Π΅ΡΠ²Π°ΡΠΈΡ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π¦ΠΠ‘.
Π’ΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ Π²Π·ΡΡΠ²Π½ΡΡ ΡΠΈΠ»Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. Π£ΡΠ΅Π±Π½ΠΈΠΊΠΈ ΠΏΠΎ ΡΠΈΠ·ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΠΎ ΠΎΡΠ²ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΌΡΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ»ΠΎΠΊΠ½Π° Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Ρ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΠΊΡΠ½Π΄ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ·Π»ΡΠ±Π»Π΅Π½Π½ΡΠΉ ΠΆΠΈΠΌ Π»Π΅ΠΆΠ° ΡΠΎ ΡΡΠ°Π½Π³ΠΎΠΉ. Π‘ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ½Π°ΡΡΠ΄ΠΎΠΌ ΠΎΠ±Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²Π·ΡΡΠ²Π½ΠΎΠΉ ΡΠΈΠ»ΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ΄Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ, ΠΏΠΎΠ²Π΅ΡΠΈΠ² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΈΠ½ΠΎΠ² Π½Π° Π³ΡΠΈΡ, Π²Ρ ΠΈΠ·ΡΡΠ΄Π½ΠΎ Π½Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΡΡΡΠ°Π²Ρ ΠΈ ΡΠ²ΡΠ·ΠΊΠΈ. ΠΡΠ³Π°Π½Ρ ΠΠΎΠ»ΡΠ΄ΠΆΠΈ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΡΡ Π½Π΅ΠΉΡΠΎΠΌΡΡΠ΅ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΅Ρ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΡΠΆΠ½ΠΎΠΉ Π½Π°ΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π² ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π»ΡΠ²ΠΈΠ½Π°Ρ Π΄ΠΎΠ»Ρ ΠΌΡΡΡ, Π±ΡΠ΄Π΅Ρ Π½Π΅Π°ΠΊΡΠΈΠ²Π½Π°, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΡΡΡΡΠ°Π²Π½ΠΎ-ΡΠ²ΡΠ·ΠΎΡΠ½ΡΠΉ Π°ΠΏΠΏΠ°ΡΠ°Ρ. ΠΠ·ΡΠ² Π² ΡΡΠΊΠΈ ΡΡΠΆΠ΅Π»ΡΡ ΡΡΠ°Π½Π³Ρ, Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ. Π ΡΡΠ°ΡΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅ΡΠ½ΡΠ΅ Π»Π΅Π½ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΊΡΠ΅ΠΏΠΈΠ² Π»Π΅Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎΠΌ Π³ΡΠΈΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠΈΡΡ ΡΠ°ΠΊΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΠ°ΡΡΡΠ½ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Ρ Π½Π° ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠ·Ρ Π½Π° ΡΠΊΠ°ΠΌΡΠ΅. ΠΠ΅Π³ΠΊΠ°Ρ ΡΡΠ°Π½Π³Π° Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ·Π»ΠΈΡΠ½Π΅Π³ΠΎ Π΄Π°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΌΡΡΡΡ ΠΈ ΡΡΡΡΠ°Π²Ρ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅Π·ΠΊΠΈΠ΅ Π²Π·ΡΡΠ²Π½ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π½ΠΈΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΡΡΠ΅ΡΠ½ΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡ, Π»Π΅Π½ΡΠ° ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΊΡΠ΅ΠΏΠΈΠ»ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΡΠ½ΠΎΠΉ Π»Π΅Π½ΡΠ΅ Π½Π° ΠΎΠ±ΠΎΠΈΡ ΠΊΠΎΠ½ΡΠ°Ρ Π³ΡΠΈΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΈΠ·ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠ° Π²Π·ΡΡΠ²Π½ΠΎΠΉ ΡΠΈΠ»Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎ. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΡ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΡ. Π Π½ΠΈΡ ΡΡΠ°ΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π»Π° Π½ΠΈΠ·ΠΊΡΡ ΠΌΡΡΠ΅ΡΠ½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π±ΠΈΠΎΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΈ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΡ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ»ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ, Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΅Π³ΠΎ ΠΌΡΡΡΡ-ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΎΠΏΡΠΎΡΡΡ Π²ΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· ΡΠ°Π±ΠΎΡΡ, Π° ΡΡΠΎ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ.
ΠΠ°ΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΡΠ³ΠΎΡΠ΅Π½ΠΈΠΉ
ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΡΠΈΠ½ΡΡ ΠΏΠ΅ΡΠ»Ρ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΠΆΠ½ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΡΠ΅Π΄Π°Π½ΠΈΠΉ ΡΠΎ ΡΡΠ°Π½Π³ΠΎΠΉ. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠ°Π½Π³ΠΈ ΠΈ ΠΏΡΡΠΌΠΎΠΉ Π²Π΅ΠΊΡΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½ Π½Π°ΡΡΡΠ°Π΅Ρ ΡΠ΅Ρ Π½ΠΈΠΊΡ, ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ»ΠΎΡΡΠ°Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ, Π»ΠΈΠ±ΠΎ ΠΈΡΡΠ΅Π·Π°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ Π°ΡΠ»Π΅Ρ ΠΎΠ΄Π°ΡΠ΅Π½ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΌΡΡΡ Ρ ΡΡΡΡΠ°Π²Π°ΠΌΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Ρ Π΄Π²ΡΡ Π°ΡΠ»Π΅ΡΠΎΠ².
Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΈΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»Π΅Π½Ρ. ΠΠ»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠΈΠ½ΠΈΠ΅ ΠΈ ΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ°ΠΆΠ° ΡΡΠ΅Π½ΠΈΠ½Π³Π° ΠΈ ΠΎΠ±ΡΠ΅ΠΉ ΠΌΠ°ΡΡΡ ΡΠ΅Π»Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠΠΏΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π°ΠΌ ΠΈΠ»ΠΈ Π»ΡΠ΄ΡΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π²Π΅ΡΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ½ΡΠ΅ Π»Π΅Π½ΡΡ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΠ΅Π½ΠΈΠ½Π³ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΎΠ±Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΏΡΠΈΡΠ΅Π΄Π°Π½ΠΈΡΡ ΡΠΎ ΡΡΠ°Π½Π³ΠΎΠΉ. Π Π΄Π°Π½Π½ΠΎΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π°ΡΠ»Π΅ΡΠ° ΠΈΠ³ΡΠ°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠΎΠ»Ρ, ΠΈ ΠΎΡ Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½ΠΎΠ³, Π½Π°ΠΊΠ»ΠΎΠ½ ΡΠΎΡΡΠ°, Π³Π»ΡΠ±ΠΈΠ½Π° ΠΏΡΠΈΡΠ΅Π΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π§Π΅ΡΠ½ΡΠ΅ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ»ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π½Π°ΠΉΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΡ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π»Ρ
ΠΠ»Π°Π²Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠΎΠ²-Π°ΠΊΡΠ΅ΡΡΡΠ°ΡΠΎΠ². Π£Π½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈΠ·Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎΠ³ΠΎ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π»Π°ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π»Π΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ΅ΡΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅Π»Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠΌΠ½Π΅Π½ΠΈΠΉ, ΠΈ ΡΡΡΡΡΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠ·ΡΠ²ΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠΊΠΈΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡ ΡΠ»ΠΎΠ².
Π‘ΠΏΠΎΡΡ — Π³ΠΎΡΠ½ΡΠ΅ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ, ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΊΠΈ, ΡΠΊΠ΅ΠΉΡΠ±ΠΎΡΠ΄Ρ, Π³ΠΎΡΠ½ΡΠ΅ Π»ΡΠΆΠΈ, ΡΠ½ΠΎΡΠ±ΠΎΡΠ΄Ρ, ΠΎΠ΄Π΅ΠΆΠ΄Π° Π΄Π»Ρ Π³ΠΎΡΠ½ΡΡ Π»ΡΠΆ ΠΈ ΡΠ½ΠΎΡΠ±ΠΎΡΠ΄Π°…
Π²ΠΈΠ΄ ΡΠΏΠΎΡΡΠ°ΠΠ΅Π³ΠΠ΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΡΠΠΎΠ³Π°ΠΠΎΠ½ΡΠΊΠΈ Π»Π΅Π΄ΠΎΠ²ΡΠ΅ΠΠΎΠ½ΡΠΊΠΈ ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΠ΅ΠΡΠΆΠΈ Π±Π΅Π³ΠΎΠ²ΡΠ΅ΠΡΠΆΠΈ Π³ΠΎΡΠ½ΡΠ΅Π‘Π°ΠΌΠΎΠΊΠ°ΡΡΠ‘ΡΡΡΠΈΠ½Π³Π‘ΠΊΠ΅ΠΉΡΠ±ΠΎΡΠ΄ΡΠ‘Π½ΠΎΡΠ±ΠΎΡΠ΄ΡΠ’ΡΡΠΈΠ·ΠΌ
ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΎΠ΄Π΅ΠΆΠ΄Π°ΠΎΠ±ΡΠ²ΡΠΎΠΏΡΠΈΠΊΠ°Π·Π°ΡΠΈΡΠ°Π°ΠΊΡΠ΅ΡΡΡΠ°ΡΡΠ·Π°ΠΏΡΠ°ΡΡΠΈΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
Π°Π΄Π°ΠΏΡΠ΅Ρ Π΄Π»Ρ Π·Π°ΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠ°ΡΡΡΠΈΠ΄ΠΆΠ°Π°Π΄Π°ΠΏΡΠ΅ΡΡΠ°Π΄Π°ΠΏΡΠ΅ΡΡ Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠ΅Ρ Π»Π°Π°Π΄Π°ΠΏΡΠ΅ΡΡ Π΄Π»Ρ Π½Π°ΠΊΠ°ΡΠΊΠΈ ΠΊΠΎΠ»Π΅ΡΠ°Π°ΠΌΠΎΡΡΠΈΠ·Π°ΡΠΎΡΡ Π·Π°Π΄Π½ΠΈΠ΅ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π°ΠΏΡΠ΅ΡΠΊΠΈΠ±Π°Π³Π°ΠΆΠ½ΠΈΠΊΠΈ Π°Π²ΡΠΎΠ±Π°Π³Π°ΠΆΠ½ΠΈΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π±Π°Π·ΡΠ±Π°Π»Π°ΠΊΠ»Π°Π²ΡΠ±Π°Π»Π»ΠΎΠ½Ρ Π³Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅Π±Π°Π»Π»ΠΎΠ½Ρ Π΄Π»Ρ Π½Π°ΠΊΠ°ΡΠΊΠΈ ΠΊΠΎΠ»Π΅ΡΠ°Π±Π°Π½Π΄Π°Π½ΡΠ±Π°Π½Π΄Π°Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅Π±Π°ΡΠ°ΡΠ΅ΠΈ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ½ΡΠ΅Π±Π»ΠΈΠ½Ρ Π²ΡΠ°ΡΠ°ΡΡΠ±Π»ΠΎΠΊΠΈ Π΄Π»Ρ ΠΉΠΎΠ³ΠΈΠ±ΠΎΠ»ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ±ΠΎΡΠΈΠ½ΠΊΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅Π±ΠΎΡΠΈΠ½ΠΊΠΈ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΠ±ΠΎΡΠΈΠ½ΠΊΠΈ Π΄Π»Ρ Π³ΠΎΡΠ½ΡΡ Π»ΡΠΆΠ±ΠΎΡΠΈΠ½ΠΊΠΈ Π΄Π»Ρ ΡΠ½ΠΎΡΠ±ΠΎΡΠ΄Π°Π±ΠΎΡΠΈΠ½ΠΊΠΈ Π·ΠΈΠΌΠ½ΠΈΠ΅Π±ΠΎΡΠΈΠ½ΠΊΠΈ Ρ ΠΊΠΎΡΠΊΠ°ΠΌΠΈΠ±ΠΎΡΠΈΠ½ΠΊΠΈ ΡΡΠ΅ΠΊΠΊΠΈΠ½Π³ΠΎΠ²ΡΠ΅Π±ΡΡΠΊΠΈΠ±ΡΡΠΊΠΈ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅Π±ΡΡΠΊΠΈ Π»Π΅Π³ΠΊΠΈΠ΅Π±ΡΡΠΊΠΈ ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΠ΅Π±ΡΡΠΊΠΈ ΡΠ΅ΡΠΌΠΎΠ±Π΅Π»ΡΠ΅Π±ΡΡΠΊΠΈ ΡΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠ΅Π²Π°ΡΠ΅ΠΆΠΊΠΈΠ²Π°ΡΠ΅ΠΆΠΊΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ³ΡΠ΅Π²ΠΎΠΌΠ²ΡΠ΄ΡΠ° ΡΠΊΠ»Π°Π΄Π½ΡΠ΅Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ BMXΠ²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ Π±Π΅Π³ΠΎΠ²Π΅Π»ΡΠ²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ Π³ΠΎΡΠ½ΡΠ΅Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ Π³ΠΎΡΠ½ΡΠ΅ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΡΠΈΠ²ΠΎΠ΄ΠΎΠΌΠ²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ ΠΊΡΡΠΈΠ·Π΅ΡΡΠ²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ»ΠΎΡΠ½ΡΠ΅Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ»ΠΎΡΠ½ΡΠ΅ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΡΠΈΠ²ΠΎΠ΄ΠΎΠΌΠ²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ ΡΠΊΠ»Π°Π΄Π½ΡΠ΅Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ ΡΠΊΠ»Π°Π΄Π½ΡΠ΅ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΡΠΈΠ²ΠΎΠ΄ΠΎΠΌΠ²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Ρ ΡΠΎΡΡΠ΅ΠΉΠ½ΡΠ΅Π²Π΅ΡΠ΅Π²ΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅Π²Π΅ΡΠ΅Π²ΠΊΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅Π²ΡΡΠ»Π° Π΄Π»Ρ ΡΠ°ΠΏΡΠ΅ΡΡΠΈΠ½Π³Π°Π²ΠΈΠ·ΠΎΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ°Π²ΠΈΠ·ΠΎΡΡ ΠΈΠ³ΡΠΎΠΊΠ°Π²ΠΈΠ»ΠΊΠΈΠ²ΠΈΠ»ΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π²ΠΈΠ½ΡΡΠ²ΠΈΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ²ΠΊΠ»Π°Π΄ΡΡΠΈ Π΄Π»Ρ ΡΠΏΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΊΠ°Π²ΡΡΠ»ΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π²ΡΡΠ»ΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ²ΡΠΆΠΈΠΌΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΠΏΠΈΠ²ΡΠ½ΠΎΡΡ ΡΡΠ»ΡΠ³Π°ΠΌΠ°ΠΊΠΈΠ³Π°ΠΌΠ°ΡΠΈΠ³Π΅ΡΠΌΠ΅ΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ»ΡΡΠ³Π΅ΡΠΌΠΎΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈΠ³Π΅ΡΡΡΠ³ΠΈΠ΄ΡΠ°ΡΠΎΡΡΠ³ΠΈΡΠΎΡΠΎΡΠΎΡΡΠ³ΠΎΡΠ΅Π»ΠΊΠΈ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅Π³ΡΠ΅Π±ΡΠ½ΠΊΠΈΠ΄Π°ΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Π΄Π°ΡΡΠΈΠΊΠΈ ΡΠ΅ΡΠ΄ΡΠ΅Π±ΠΈΠ΅Π½ΠΈΡΠ΄Π°ΡΡΠΈΠΊΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠ΅Π΄Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ²Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΠΎΠ²Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΠ»ΡΠ³ΠΈΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΈΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ ΡΡΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΠΈ ΡΠΎΡΠΌΠΎΠ·ΠΎΠ²Π΄Π΅ΡΠ°Π»ΠΈ Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΉΠ΄ΠΈΡΠΊΠΈ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠ°Π΄ΠΈΡΠΊΠΈ Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΉΠ΄ΠΈΡΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π½ΡΠ΅ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π΄ΠΎΡΠΊΠΈ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½Π°Ρ Π΄Π»Ρ ΡΠΊΠ°Π»ΠΎΠ»Π°Π·Π°Π½ΠΈΡΠ΄ΠΎΡΠΊΠΈ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅Π΄ΠΎΡΠΊΠΈ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΠΊΠ°Π»ΠΎΠ»Π°Π·Π°Π½ΠΈΡΠ΄ΡΠ³ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ΅ΠΌΠΎΠ½ΡΠ½ΡΠΉΠ΄ΡΡΠΈ ΠΏΠΎΡ ΠΎΠ΄Π½ΡΠ΅Π΅ΠΌΠΊΠΎΡΡΠΈ Π΄Π»Ρ Π²ΠΎΠ΄ΡΠΆΠΈΠ»Π΅ΡΡΠΆΠΈΠ»Π΅ΡΡ Π·Π°ΡΠΈΡΠ½ΡΠ΅ΠΆΠΈΠ»Π΅ΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ³ΡΠ΅Π²ΠΎΠΌΠΆΠΈΠ»Π΅ΡΡ ΡΠΏΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅Π·Π°Π³Π»ΡΡΠΊΠΈ ΡΡΠ»ΡΠ·Π°ΠΆΠΈΠΌΡ Π΄Π»Ρ Π²Π΅ΡΡΠ²ΠΊΠΈΠ·Π°ΠΆΠΈΠΌΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΊΠ°ΡΠΎΠ²Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π°Π»ΡΠΏΠΈΠ½ΠΈΡΡΡΠΊΠΈΠ΅Π·Π°ΠΊΠ»Π΅ΠΏΠΊΠΈΠ·Π°ΠΌΠΊΠΈΠ·Π°ΠΌΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π·Π°ΠΌΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΠΏΠΈΠ·Π°ΡΡΠΆΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²Π·Π°ΡΠ΅ΠΏΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ·Π°ΡΠ΅ΠΏΠΊΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ½ΡΠ΅Π·Π°ΡΠΈΡΠ° Π³ΠΎΠ»Π΅Π½ΠΈΠ·Π°ΡΠΈΡΠ° Π³ΠΎΠ»Π΅Π½ΠΎΡΡΠΎΠΏΠ°Π·Π°ΡΠΈΡΠ° Π³ΡΡΠ΄ΠΈΠ·Π°ΡΠΈΡΠ° Π΄Π»Ρ Π²ΡΡΠ»ΠΊΠΈΠ·Π°ΡΠΈΡΠ° Π΄Π½Π° ΠΏΠ°Π»Π°ΡΠΊΠΈΠ·Π°ΡΠΈΡΠ° Π·Π²Π΅Π·Π΄ΡΠ·Π°ΡΠΈΡΠ° ΠΊΠΎΠ»Π΅Π½Π°Π·Π°ΡΠΈΡΠ° ΠΊΠΎΠ»Π΅Π½Π° ΠΈ Π³ΠΎΠ»Π΅Π½ΠΈΠ·Π°ΡΠΈΡΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ·Π°ΡΠΈΡΠ° Π»ΠΎΠΊΡΡΠ·Π°ΡΠΈΡΠ° Π½Π° Π·Π°ΠΏΡΡΡΡΠ΅Π·Π°ΡΠΈΡΠ° Π½Π° ΠΏΠ°Π»ΠΊΠΈΠ·Π°ΡΠΈΡΠ° ΠΏΠ΅ΡΠ°Π·Π°ΡΠΈΡΠ° ΠΏΠ»Π΅ΡΠ·Π°ΡΠΈΡΠ° ΠΏΠΎΠ΄Π±ΠΎΡΠΎΠ΄ΠΊΠ°Π·Π°ΡΠΈΡΠ° ΠΏΡΠ΅Π΄ΠΏΠ»Π΅ΡΡΡΠ·Π°ΡΠΈΡΠ° ΡΠ°ΠΌΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ·Π°ΡΠΈΡΠ° ΡΠΏΠΈΠ½ΡΠ·Π°ΡΠΈΡΠ° ΡΠ°ΡΡΠ½Π°Π·Π°ΡΠΈΡΠ° ΡΠ΅ΠΈΠ·Π²Π΅Π·Π΄Ρ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π·Π²ΠΎΠ½ΠΊΠΈΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠ°Π±Π΅Π»ΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ²ΠΊΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠ°ΠΌΠ½ΠΈ Π°Π±ΡΠ°Π·ΠΈΠ²Π½ΡΠ΅ΠΊΠ°ΠΌΡΡΡ Π΄Π»Ρ Π»ΡΠΆΠΊΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠΏΠ»ΠΈΡΠ±ΠΎΡΠ΄ΠΎΠ²ΠΊΠ°Π½ΡΠΎΡΠ΅Π·ΡΠΊΠ°ΡΠ°Π±ΠΈΠ½Ρ Π°Π»ΡΠΏΠΈΠ½ΠΈΡΡΡΠΊΠΈΠ΅ΠΊΠ°ΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠ°ΡΠΌΠ°Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠ°Π»Π°ΡΠΊΠΈΠΊΠ°ΡΡΡΠΈΠ΄ΠΆΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄Π»Ρ Π·Π°ΠΏΡΠ°Π²ΠΊΠΈΠΊΠ°ΡΡΡΠΈΠ΄ΠΆΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π·ΠΎΠ²ΡΠ΅ΠΊΠ°ΡΡΠ΅ΡΡΠΊΠ°ΡΡΠ΅ΡΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠ°ΡΡΡΡΠ»ΠΈΠΊΠ΅Π΄ΡΠΊΠ΅ΠΏΠΊΠΈΠΊΠ»ΠΈΠ½ΡΡ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ΅ΠΌΠ΅ΡΠΊΠ°ΠΊΠ»ΠΈΠΏΡΡΠΊΠ»ΡΡΠΈΠΊΠ»ΡΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠ»ΡΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠ»ΡΡΠΊΠΈ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΠΊΠΎΠ²ΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΉΠΎΠ³ΠΈΠΊΠΎΠ²ΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ΅ΠΌΠΎΠ½ΡΠ½ΡΠΉΠΊΠΎΠ²ΡΠΈΠΊΠΈ Π½Π°Π΄ΡΠ²Π½ΡΠ΅ΠΊΠΎΠ²ΡΠΈΠΊΠΈ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΠΊΠΎΠ·ΡΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ°ΠΊΠΎΠ·ΡΡΡΠΊΠΈ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ°ΠΊΠΎΠ»ΡΡΠ° Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΠΊΠΎΠ»ΡΡΠ° Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ Π»ΠΎΠ½Π³Π±ΠΎΡΠ΄Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ Π»ΡΠΆΠ΅ΡΠΎΠ»Π»Π΅ΡΠΎΠ²ΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΊΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΡΠ°ΠΌΠΎΠΊΠ°ΡΠΎΠ²ΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΡΠΊΠ΅ΠΉΡΠ±ΠΎΡΠ΄Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠΎΠ»ΠΎΠ΄ΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π½ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΠΊΠΎΠ»ΠΎΠ΄ΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π½ΡΠ΅ ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΡΡΠ»Π΅Π²ΡΠ΅ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠΎΠ»ΡΡΠΊΠΈΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΠΏΠ°Π»ΠΎΠΊΠΊΠΎΠ»ΡΡΠ° Π΄Π»Ρ ΠΏΠΈΠ»Π°ΡΠ΅ΡΠ°ΠΊΠΎΠ»ΡΡΠ° ΠΏΡΠΎΡΡΠ°Π²ΠΎΡΠ½ΡΠ΅ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΠ΅ΠΌΠΎΠ½ΡΠ½ΡΠΉΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ Π΄Π»Ρ ΠΉΠΎΠ³ΠΈΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ Π΄Π»Ρ Π½Π°ΠΊΠ°ΡΠΊΠΈ ΠΊΠΎΠ»Π΅ΡΠ°ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ Π΄Π»Ρ ΠΏΠΈΠ»Π°ΡΠ΅ΡΠ°ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ Π΄Π»Ρ ΡΠΏΠ»ΠΈΡΠ±ΠΎΡΠ΄ΠΎΠ²ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΠΌΡΡΠΈΠΊΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ°ΠΏΠΈΠΈ ΡΡΠΊΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΡΠ΅ΠΌΠΎΠ½ΡΠ½ΡΠ΅ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΡΡΠ°Π½ΡΠΌΠΈΡΡΠΈΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡ ΡΡΠΎΡΠΈΠΊΠΎΠ² ΠΈ ΡΡΠ±Π°ΡΠ΅ΠΊ ΡΠΎΡΠΌΠΎΠ·Π°ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠΎΠ½ΡΠΊΠΈ ΠΌΡΠ³ΠΊΠΈΠ΅ΠΊΠΎΠ½ΡΠΊΠΈ ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΠ΅ΠΊΠΎΠ½ΡΠΊΠΈ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ΠΊΠΎΠ½ΡΠΊΠΈ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΊΠΎΡΠΌΠ΅ΡΠΈΠΊΠ° Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½Π°Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΠΎΡΡΡΠΌΡΠΊΠΎΡΡΡΠΌΡ Π³ΠΎΠ½ΠΎΡΠ½ΡΠ΅ΠΊΠΎΡΡΡΠΌΡ Π΄Π»Ρ ΠΏΠ»Π°Π²Π°Π½ΠΈΡΠΊΠΎΡΡΡΠΌΡ ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΠ΅ΠΊΠΎΡΡΡΠΊΠΎΡΡΡ ΡΠ΅ΡΠΌΠΎΠ±Π΅Π»ΡΠ΅ΠΊΠΎΡΡΡ ΡΠ»ΠΈΡΠΎΠ²ΡΠ΅ΠΊΠΎΡΠ΅Π»ΡΠΊΠΈΠΊΠΎΡΠΊΠΈ Π»Π΅Π΄ΠΎΠ²ΡΠ΅ΠΊΡΠ΅ΠΏΠ΅ΠΆΠΈ Π΄Π»Ρ ΠΏΠ»Π°Π²Π½ΠΈΠΊΠΎΠ²ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π³ΠΎΡΠ½ΡΡ Π»ΡΠΆΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ½ΠΎΡΠ±ΠΎΡΠ΄Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΠ»ΠΈΡΠ±ΠΎΡΠ΄Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΠ»ΠΈΡΠ±ΠΎΡΠ΄ΠΎΠ²ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ° Π½Π° ΡΡΠΊΠ·Π°ΠΊΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΊΡΠ½-ΠΊΠ°ΠΌΠ΅ΡΡΠΊΡΠΎΠ²Π°ΡΠΈ Π½Π°Π΄ΡΠ²Π½ΡΠ΅ΠΊΡΠΎΡΡΠΎΠ²ΠΊΠΈΠΊΡΡΠΆΠΊΠΈΠΊΡΡΠ»ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΠΊΡΡΠ»ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΡΡΠ»ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΊΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΡΡΠ΅ΡΡΠΊΡΡΡΠΊΠΈ Π΄Π»Ρ ΡΡΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈΠΊΡΠΏΠ°Π»ΡΠ½ΠΈΠΊΠΈ ΠΏΠ»ΡΠΆΠ½ΡΠ΅ΠΊΡΡΡΠΊΠΈΠΊΡΡΡΠΊΠΈ Π²Π΅ΡΡΠΎΠ·Π°ΡΠΈΡΠ½ΡΠ΅ΠΊΡΡΡΠΊΠΈ Π·Π°ΡΠΈΡΠ½ΡΠ΅ΠΊΡΡΡΠΊΠΈ Π»Π΅Π³ΠΊΠΈΠ΅ΠΊΡΡΡΠΊΠΈ ΠΏΡΡ ΠΎΠ²ΡΠ΅ΠΊΡΡΡΠΊΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ³ΡΠ΅Π²ΠΎΠΌΠΊΡΡΡΠΊΠΈ ΡΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠ΅Π»Π°ΠΌΠΏΠ° ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠ°ΡΠ»Π°ΠΏΠΊΠΈ Π΄Π»Ρ ΠΏΠ°Π»ΠΎΠΊΠ»Π΅Π³Π³ΠΈΠ½ΡΡΠ»Π΅Π΄ΠΎΠ±ΡΡΡ Π°Π»ΡΠΏΠΈΠ½ΠΈΡΡΡΠΊΠΈΠ΅Π»Π΅Π΄ΠΎΡΡΠ±Ρ Π°Π»ΡΠΏΠΈΠ½ΠΈΡΡΡΠΊΠΈΠ΅Π»Π΅Π·Π²ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²Π»Π΅Π·Π²ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²Π»Π΅Π½ΡΡ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΊΠ»Π΅Π½ΡΡ ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅Π»Π΅ΡΠ΅Π½ΠΊΠΈΠ»ΠΈΠ½Π·Ρ Π΄Π»Ρ ΠΎΡΠΊΠΎΠ² ΠΌΠ°ΡΠΊΠ°Π»ΠΈΠ½Π·Ρ Π΄Π»Ρ ΡΠΎΠ»Π½Π΅ΡΠ½ΡΡ ΠΎΡΠΊΠΎΠ²Π»ΠΈΠΏΡΡΠΊΠΈΠ»ΠΈΡΠΈΠ»ΠΎΠΆΠΊΠΈΠ»ΠΎΠ½Π³Π±ΠΎΡΠ΄ΡΠ»ΠΎΠ½Π³Π±ΠΎΡΠ΄Ρ ΠΌΠΈΠ½ΠΈΠ»ΠΎΠΏΠ°ΡΡ Π»Π°Π²ΠΈΠ½Π½ΡΠ΅Π»ΡΠΆΠΈ Π±Π΅Π³ΠΎΠ²ΡΠ΅Π»ΡΠΆΠΈ Π±Π΅Π³ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ»ΡΠΆΠΈ Π³ΠΎΡΠ½ΡΠ΅Π»ΡΠΆΠΈ Π³ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΌΠ°Π³Π½Π΅Π·ΠΈΡ Π΄Π»Ρ ΡΠΊΠ°Π»ΠΎΠ»Π°Π·Π°Π½ΠΈΡΠΌΠ°Π³Π½ΠΈΡΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠ°Π·ΠΈ Π»ΡΠΆΠ½ΡΠ΅ΠΌΠ°ΠΉΠΊΠΈΠΌΠ°ΡΠΊΠΈΠΌΠ°ΡΠΊΠΈ Π²Π΅ΡΡΠΎΠ·Π°ΡΠΈΡΠ½ΡΠ΅ΠΌΠ°ΡΠ»Π° Π΄Π»Ρ Π°ΠΌΠΎΡΡΠΈΠ·Π°ΡΠΎΡΠΎΠ²ΠΌΠ°ΡΠ»Π° Π΄Π»Ρ Π²ΠΈΠ»ΠΎΠΊΠΌΠ°ΡΠ»Π° Π΄Π»Ρ ΡΠΎΡΠΌΠΎΠ·Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠΌΠ΅Π±Π΅Π»Ρ ΠΊΠ΅ΠΌΠΏΠΈΠ½Π³ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΠΌΠ°Π³Π½Π΅Π·ΠΈΠΈΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠ΅ΠΌΠ΅ΡΠΊΠΈ ΡΠΏΠ°Π»ΡΠ½ΡΠ΅ΠΌΠ΅ΡΠΊΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ΠΌΠΈΡΠΊΠΈΠΌΠΎΠ»ΠΎΡΠΊΠΈ ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ΠΌΠΎΠ½ΡΠ°ΠΆΠΊΠΈΠΌΠΎΠ½ΡΠ°ΠΆΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΌΡΡΠΈ Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠ°Π½Π°ΠΊΠΈΠ΄ΠΊΠΈ ΠΎΡ Π΄ΠΎΠΆΠ΄ΡΠ½Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π΄Π»Ρ ΡΠΊΠΎΠ»ΡΠΆΠ΅Π½ΠΈΡΠ½Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π·Π°ΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ°Π½Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΡΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΡΠ²ΡΠ½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΠ°Π»ΠΎΠΊΠ½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠΈ ΡΡΠ±Π°ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠ½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠΈ ΡΡΠ±Π°ΡΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π°Π½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠΈ ΡΡΠΎΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΠ½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠΈ ΡΡΠΎΡΠΈΠΊΠ° ΡΠΎΡΠΌΠΎΠ·Π°Π½Π°ΠΏΠΈΠ»ΡΠ½ΠΈΠΊΠΈΠ½Π°ΡΡΠΊΠ°Π²Π½ΠΈΠΊΠΈΠ½Π°ΡΠΎΡΡΠ½Π°ΡΠΎΡΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°Π½Π°ΡΡΠΆΠΈΡΠ΅Π»ΠΈ ΡΠ΅ΠΏΠΈΠ½ΠΈΠΏΠΏΠ΅Π»ΠΈΠ½ΠΎΡΠΊΠΈΠ½ΠΎΡΠΊΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ³ΡΠ΅Π²ΠΎΠΌΠΎΠ±ΠΌΠΎΡΠΊΠΈ ΡΡΠ»ΡΠΎΠ±ΠΎΠ΄Π° Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΎΡΠ΅Π»ΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΠΎΡΠΈΠΎΡΠΈ Π΄Π»Ρ Π²ΡΡΠ»ΠΊΠΈΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΎΡΠ²Π΅ΡΡΠΊΠΈΠΎΡΡΡΠΆΠΊΠΈ Π°Π»ΡΠΏΠΈΠ½ΠΈΡΡΡΠΊΠΈΠ΅ΠΎΡΡΡΠΆΠΊΠΈ Π΄Π»Ρ ΠΏΠ°Π»Π°ΡΠΊΠΈΠΎΡΠΈΡΡΠΈΡΠ΅Π»ΠΈΠΎΡΠΈΡΡΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΎΡΠΈΡΡΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΠ΅ΠΏΠΈΠΎΡΠΊΠΈ ΠΌΠ°ΡΠΊΠΈΠΎΡΠΊΠΈ ΡΠΎΠ»Π½ΡΠ΅Π·Π°ΡΠΈΡΠ½ΡΠ΅ΠΏΠ°Π»Π°ΡΠΊΠΈ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΠΏΠ°Π»ΠΊΠΈ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΠΏΠ°Π»ΠΊΠΈ Π΄Π»Ρ Π³ΠΎΡΠ½ΡΡ Π»ΡΠΆΠΏΠ°Π»ΠΊΠΈ Π΄Π»Ρ Π»ΡΠΆΠ΅ΡΠΎΠ»Π»Π΅ΡΠΎΠ²ΠΏΠ°Π»ΠΊΠΈ Π΄Π»Ρ ΡΠΊΠ°Π½Π΄ΠΈΠ½Π°Π²ΡΠΊΠΎΠΉ Ρ ΠΎΠ΄ΡΠ±ΡΠΏΠ°Π»ΠΊΠΈ ΡΡΠ΅ΠΊΠΊΠΈΠ½Π³ΠΎΠ²ΡΠ΅ΠΏΠ΅Π³ΠΈΠΏΠ΅Π΄Π°Π»ΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΡΠΊΠΎΡΠΎΡΡΠ΅ΠΉ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΏΠ΅ΡΡΠ°ΡΠΊΠΈΠΏΠ΅ΡΡΠ°ΡΠΊΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΠΏΠ΅ΡΡΠ°ΡΠΊΠΈ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΠΏΠ΅ΡΡΠ°ΡΠΊΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ³ΡΠ΅Π²ΠΎΠΌΠΏΠ΅ΡΡΠ°ΡΠΊΠΈ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΠΏΠ΅ΡΠ»ΠΈ ΡΡΡΠ°Ρ ΠΎΠ²ΠΎΡΠ½ΡΠ΅ΠΏΠ»Π°Π²ΠΊΠΈΠΏΠ»Π°Π²Π½ΠΈΠΊΠΈΠΏΠ»Π°ΡΡΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΉΠΏΠ»Π°ΡΡΡΠΏΠ»ΠΈΡΡ Π³Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΠΏΠΎΠ²ΡΠ·ΠΊΠΈ Π½Π° Π»ΠΎΠ±ΠΏΠΎΠ΄Π½ΠΎΠΆΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΏΠΎΠ΄ΡΡΠΊΠΈ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΠΏΠΎΠ΄ΡΠΈΠΏΠ½ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΏΠΎΠΊΡΡΡΠΊΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΠΏΠΎΠ»ΠΈΡΠΎΠ»ΠΈΠΏΠΎΠ»ΠΎΡΠ΅Π½ΡΠ°ΠΏΠΎΠ»ΠΎΡΠ΅Π½ΡΠ° Π΄Π»Ρ ΠΊΠΎΠ²ΡΠΈΠΊΠ°ΠΏΠΎΡΡΠ΄Π° Π΄Π»Ρ ΡΡΡΠΈΠ·ΠΌΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΏΡΠΈΠ±ΠΎΡΡ ΡΡΠΎΠ»ΠΎΠ²ΡΠ΅ Π΄Π»Ρ ΡΡΡΠΈΠ·ΠΌΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΏΡΠΎΠΏΠΈΡΠΊΠΈ Π²ΠΎΠ΄ΠΎΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΠΈΠ΅ΠΏΡΠΎΠΏΠΈΡΠΊΠΈ Π΄Π΅Π·ΠΎΠ΄ΠΎΡΠ°Π½ΡΡΠΏΡΠΎΠΏΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΏΡΠΎΡΠΈΠ»ΠΈ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΠΏΡΡΠΆΠΈΠ½Ρ Π·Π°Π΄Π½Π΅Π³ΠΎ Π°ΠΌΠΎΡΡΠΈΠ·Π°ΡΠΎΡΠ°ΠΏΡΡΠΆΠΊΠΈΡΠ°Π·Π²Π΅ΡΠΊΠΈΡΠ°ΠΌΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΡΠ°ΠΌΡ Π΄Π»Ρ ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΡΠ°ΡΡΠΈΡΠΊΠ°ΡΠ°ΡΡΠΈΡΠΊΠΈΡΠ΅ΠΌΠ΅ΡΠΊΠΈΡΠ΅ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π³Π°ΠΌΠ°ΡΡΠ΅ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ²ΡΠΈΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π»Π΅Π΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠ΅ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΠΏΠ°Π»ΠΎΠΊΡΠ΅ΠΌΠ½ΠΈΡΠ΅ΠΌΠ½ΠΈ Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡΡΠ΅ΠΏΡΠ½ΡΡΡΡΠΎΠ³Π° Π½Π° ΡΡΠ»ΡΡΠΎΠ»ΠΈΠΊΠΈΡΠΎΠ»Π»Ρ Π΄Π»Ρ ΡΠ΅ΡΠ°ΠΏΠΈΠΈ ΠΌΡΡΡΡΠΎΠ»Π»Ρ Π΄Π»Ρ ΡΠ΅ΡΠ°ΠΏΠΈΠΈ ΡΡΠΎΠΏΡΡΠ±Π°ΡΠΊΠΈΡΡΠ±Π°ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΡΡΠ±Π°ΡΠΊΠΈ Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ ΡΡΠΊΠ°Π²ΠΎΠΌΡΡΠ±Π°ΡΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π°ΡΡΠ»ΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΡΡΠΊΠΈ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡΡΡΠΊΠΈ Π΄Π»Ρ ΠΏΠ°Π»ΠΎΠΊΡΡΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΡΡΡΠΊΠΈ ΡΡΠ»ΡΡΡΡΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π°ΡΡΠΊΠ·Π°ΠΊΠΈΡΡΠΊΠ·Π°ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΡΡΠΊΠ·Π°ΠΊΠΈ Π»Π°Π²ΠΈΠ½Π½ΡΠ΅ΡΠ°Π»ΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ ΠΎΡΠΊΠΎΠ²ΡΠ°ΠΌΠΎΠΊΠ°ΡΡΡΠ°Π½Π΄Π°Π»ΠΈΠΈΡΠ°Π½ΠΊΠΈ Π»Π΅Π΄ΡΠ½ΠΊΠΈΡΠ²ΡΠ·ΠΊΠΈ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΡΠ΅Π΄Π»Π° Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠ΅ΡΠΊΠ° Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π±Π°Π³Π°ΠΆΠ°ΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π»Π°ΠΌΠΏΡΠ΅ΡΠΊΠΈ ΠΌΠΎΡΠΊΠΈΡΠ½ΡΠ΅ΡΠΈΠ΄Π΅Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ·ΠΊΠΈ Π΄Π΅ΡΠ΅ΠΉΡΠΈΠ΄Π΅Π½ΡΡ Π½Π°Π΄ΡΠ²Π½ΡΠ΅ΡΠΈΠ΄Π΅Π½ΡΡ ΠΏΠ΅Π½Π½ΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΡΠ°Ρ ΠΎΠ²ΠΎΡΠ½ΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ½ΡΡΠΎΠ²ΠΊΠΈΡΠΊΠ°ΠΊΠ°Π»ΠΊΠΈΡΠΊΠ΅ΠΉΡΠ±ΠΎΡΠ΄ΡΡΠΊΡΠ΅Π±ΠΊΠΈΡΠ»Π°Π½ΡΡΡΠΌΠ°Π·ΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΠΏΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠΌΠ°Π·ΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΡΠ΅ΡΠΌΡΠ²ΠΊΠΈΡΠ½ΠΎΡΠ±ΠΎΡΠ΄ΡΡΠΏΠΈΡΡ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠΏΠ»ΠΈΡΠ±ΠΎΡΠ΄ΡΡΠΏΡΠ΅ΠΈ ΠΏΡΠΎΡΠΈΠ² Π·Π°ΠΏΠΎΡΠ΅Π²Π°Π½ΠΈΡΡΡΠ°ΠΊΠ°Π½ΡΡΡΠ°ΠΊΠ°Π½Ρ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΡΡΠ΅ΠΊΠ»Π° Π΄Π»Ρ Π»Π°ΠΌΠΏΠ‘ΡΠ΅Π»ΡΠΊΠΈΡΡΠ΅Π»ΡΠΊΠΈ Ρ ΠΏΠΎΠ΄ΠΎΠ³ΡΠ΅Π²ΠΎΠΌΡΡΠ΅Π½Π΄Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠ΅Π½ΡΠ°ΡΡΠΎΠ»Ρ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΡΡΡΠΎΠΏΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ΡΡΡΠ»ΡΡ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΡΡΡΠΆΠΊΠΈ ΡΠΊΡΡΠ΅Π½ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ΡΡΡΠΆΠΊΠΈ ΡΠΊΡΡΠ΅Π½ΡΡΠΈΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΠΌΠΊΠΈΡΡΠΌΠΊΠΈ Π΄Π»Ρ Π°ΠΏΡΠ΅ΡΠΊΠΈΡΡΠΌΠΊΠΈ Π΄Π»Ρ Π±ΠΎΡΠΈΠ½ΠΎΠΊΡΡΠΌΠΊΠΈ Π΄Π»Ρ Π²Π΅ΡΠ΅Π²ΠΊΠΈΡΡΠΌΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΡΡΠΌΠΊΠΈ Π½Π° Π±Π°Π³Π°ΠΆΠ½ΠΈΠΊΡΡΠΌΠΊΠΈ Π½Π° ΠΏΠΎΡΡΡΡΠΌΠΊΠΈ Π½Π° ΡΠ°ΠΌΡΡΡΠΌΠΊΠΈ Π½Π° ΡΡΠ»ΡΡΡΠΌΠΊΠΈ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠ΅ΡΡΠΌΠΊΠΈ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΡΠ΅Π½ΡΡ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΡΠ΅ΡΠΌΠΎΠ±Π΅Π»ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΠ΅ΡΠΌΠΎΡΡΡΠΎΠΏΡΡΠΎΡΠΌΠΎΠ·Π° Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠΎΡΠΌΠΎΠ·Π° Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΡΠΎΡΠΌΠΎΠ·Π° Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΉΡΠΎΡΠΌΠΎΠ·Π° ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ΡΡΠ΅ΡΠΎΡΠΊΠ°ΡΡΠ΅ΡΠΎΡΠΊΠΈΡΡΠΎΡΠΈΠΊΠΈ Π³ΠΈΡΠΎΡΠΎΡΠΎΡΠ°ΡΡΠΎΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΡΡΡΠΎΡΠΈΠΊΠΈ ΡΠΎΡΠΌΠΎΠ·Π°ΡΡΡΠ±ΠΊΠΈΡΡΡΡΡ ΡΠ΅ΡΠΌΠΎΠ±Π΅Π»ΡΠ΅ΡΡΡΡΡ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΡΡΡΠ»ΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΡΡΡΠ»ΠΈ ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ΡΠ΄Π»ΠΈΠ½ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ΠΌΠ½Ρ Π΄Π»Ρ ΠΎΡΠΊΠΎΠ²ΡΠΏΠ»ΠΎΡΠ½ΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ Π²ΠΈΠ·ΠΎΡΠ°ΡΠΏΠΎΡΡ Π΄Π»Ρ Π»Π΅Π΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΏΠΎΡΡ ΡΠ΅Π·ΠΈΠ½ΠΎΠ²ΡΠ΅ Π΄Π»Ρ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡΡΡΠΏΠΎΠΊΠΎΠΈΡΠ΅Π»ΠΈ ΡΠ΅ΠΏΠΈΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠΈΡΡΠΊΠΈ ΡΠ΅ΠΏΠΈΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π°ΡΡΠ΄Π½ΡΠ΅ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ΅Π³ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΡΡΠ°Ρ ΠΎΠ²ΠΎΡΠ½ΡΠ΅ΡΡΡΠ³ΠΈΡΡΡΠΆΠ΅Π»ΠΈΡΠ΅Π»ΠΈ Π΄Π»Ρ ΡΡΠΊΡΠΈΠΊΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π±ΠΈΠ½ΠΎΠ²ΡΠΈΠΊΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΊΠΎΠ»Π΅ΡΡΠΈΠΊΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΠΏΠ°Π»ΠΎΠΊΡΠ»ΡΠ³ΠΈ ΠΏΠΈΡΡΠ΅Π²ΡΠ΅ΡΠΎΠ½Π°ΡΠΈΡΠΎΠ½Π°ΡΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠΎΠ½Π°ΡΠΈ ΡΡΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ΡΡΡΠ±ΠΎΠ»ΠΊΠΈΡΡΡΠ±ΠΎΠ»ΠΊΠΈ Ρ Π²ΠΎΡΠΎΡΠ½ΠΈΠΊΠΎΠΌΡΡΡΠ±ΠΎΠ»ΠΊΠΈ Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌ ΡΡΠΊΠ°Π²ΠΎΠΌΡΡΡΠ±ΠΎΠ»ΠΊΠΈ ΡΠ΅ΡΠΌΠΎΠ±Π΅Π»ΡΠ΅Ρ ΠΎΠΌΡΡΡ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠ΅ΡΠ΅ΠΏΠΈ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠ°ΠΉΠ½ΠΈΠΊΠΈΡΠ΅Ρ Π»Ρ Π΄Π»Ρ Π±Π΅Π³ΠΎΠ²ΡΡ Π»ΡΠΆΡΠ΅Ρ Π»Ρ Π΄Π»Ρ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π°ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ Π³ΠΎΡΠ½ΡΡ Π»ΡΠΆΡΠ΅Ρ Π»Ρ Π΄Π»Ρ ΠΊΠΎΠ²ΡΠΈΠΊΠ°ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ Π»ΡΠΆΠ΅ΡΠΎΠ»Π»Π΅ΡΠΎΠ²ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ ΠΎΡΠΊΠΎΠ²ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ ΡΡΠΊΠ·Π°ΠΊΠ°ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ ΡΠ½ΠΎΡΠ±ΠΎΡΠ΄Π°ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΡΠ΅Ρ Π»Ρ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ°ΡΠ΅Ρ Π»Ρ Π½Π° Π±ΠΎΡΠΈΠ½ΠΊΠΈΡΠ΅Ρ Π»Ρ Π½Π° Π²Π΅Π»ΠΎΡΡΡΠ»ΠΈΡΠ΅Ρ Π»Ρ Π½Π° Π»Π΅Π·Π²ΠΈΡ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΡΠ°ΠΉΠ±ΡΡΠ°ΠΉΠ±Ρ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΡΠ°ΠΏΠΊΠΈΡΠ°ΠΏΠΊΠΈ Π΄Π»Ρ ΠΏΠ»Π°Π²Π°Π½ΠΈΡΡΠ°ΡΡΡΡΠ°ΡΡΠ½ΡΡΠ°ΡΡΠ½Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΠ΅Π·Π»ΠΎΠ½Π³ΠΈΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΠ±ΡΠ²ΠΈΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΠ±ΡΠ²Π½ΡΡ Π½Π°ΡΠ°Π΄ΠΎΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΏΠ΅Π΄Π°Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΠΊΡΡΠΊΠΈΡΠ»Π΅ΠΌΡΡΠ»Π΅ΠΌΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΡΠ»Π΅ΠΌΡ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π½ΠΈΡ Π½Π° ΡΠΎΠ»ΠΈΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΊΠ°Ρ ΡΠ»Π΅ΠΌΡ Ρ ΠΎΠΊΠΊΠ΅ΠΉΠ½ΡΠ΅ΡΠ½ΡΡ Π΄Π»Ρ Π΄ΡΠ³ΡΠ½ΡΡΠΊΠΈΡΠ½ΡΡΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΊΠΎΠ²ΡΠ½ΡΡΠΊΠΈ Π΄Π»Ρ ΠΎΡΠΊΠΎΠ²ΡΠ½ΡΡΠΎΠΊ Π΄Π»Ρ ΠΎΡΠΊΠΎΠ²ΡΠΎΡΡΡΡΠΎΡΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΠ΅ΡΠΎΡΡΡ Π·Π°ΡΠΈΡΠ½ΡΠ΅ΡΡΡΡΠΈ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠ΅ΡΠ΅ΡΠΊΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΠΈΡΠΊΠΈΡΡΠΏΡ Π»Π°Π²ΠΈΠ½Π½ΡΠ΅ΡΠΊΡΠ°Π½Ρ Π²Π΅ΡΡΠΎΠ·Π°ΡΠΈΡΠ½ΡΠ΅ΡΠΊΡΠ½-ΠΊΠ°ΠΌΠ΅ΡΡΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΈΡΠ°Π½ΠΈΡΡΡΠΏΠ°Π½Π΄Π΅ΡΡΡΠ±ΠΊΠΈΡΠΊΠΎΡΡ
30 seven360 DegreesActive LeisureAdidasAlexrimsAll TerraAlpinaAreaArisunAsicsATIAtomicAvidAxiomBakodaBataleonBauerBickertonBionBlackspireBladerunnerBlizzardBluesportBorealBraveBrikoBrooksBuddy ChatBuffBulaBulletBurtonCane CreekCannondaleCarreraCCMChanexChargeChilliChinookCicloCleaveClimb XClimbing TechnologyCloudveilCodebaCombatCorratecCouloirCraghoppersCrankBrothersCrowCSTCycledesignD2bDalbelloDCDia-CompeDiamondDiatechDRDrakeDT SwissDuffsDynastarE ThirteenEagleEasternEastonEclatEclipticEdeaEiderEmmegiEndeavorEnduraEskaEurotrailEVFExelFabricFerlandFirst StrideFischerFive TenFlashFOXFOX ShoxFreetimeFSAFunnFunscooFuseGaiamGarmontGlobeGonsoGordiniGoSystemGroovstarGTHADHayesHeadHell is for HeroesHuckeHugerIcebreakerIndependentIndianaInnesIo BioIzjevskie KovrikiJamisJoytechK2KarrimorKEDKefasKendaKermaKidneykarenKMCKoreL1LafumaLangeLazerLekiLelumiaLevelLicornLineLobsterLolΡLookLooplineLowaMaceMach 1MadridMammutMangoManitouMankindMarkerMarzocchiMavicMDCMedalistMerinopowerMetoliusMetropolisMichelinMicroSHIFTMilletMKMongooseMons RoyaleMotorexMRPNecoNHSNikeNirveNitroNomisNorcoNordicaNorthcapeNorthwaveO-SynceObermeyerOktosONE IndustriesOne WayOntarioOptiwaxOrageOsirisOutleapPallasPillarPOCPowderhornPranaPremiumPrinceton TecPro FeetPro WheelPromaxPure FixQloomRace FaceRadioRaidenRebel KidzReebokRegattaReverseRexRichmanRideRiedellRisportRockRockShoxRodeRoecklRollerbladeRome SDSRossignolRottefellaRPMRSTRustySalomonSaltSamoxSauconySaxifragaSchoeffelSchwalbeScreamerSDGSea to SummitShimanoSinnerSixSixOneSkullcandySlegarSlideSmithSnoliSombrioSpeed StuffSportalmSPRISpringyardSpyderSR SuntourSramStarStencilStormSun ValleySunRaceSunringleSuper. NaturalSupraSwitchbackSwixTakeyaTechnineTektroTempestaTevaThawTiogaTokoTorspoTrailsideTravelSafeTrekkoTrial-SportTruvativTSGTurtle FurTwentyTyroliaUbikeUFOUSD ProVansVettaVokulVPWall ActiveWarriorWASPcamWellgoWestbeachWeThePeopleWoodmanWTBX-FusionXposureYokoZeropointZippZootZycle FixZZYZX
20212020/202120202019/202020192018/201920182017/201820172016/201720162015/201620152014/201520142013/201420132012/201320122011/201220112010/201120102009/201020092008/200920082007/200820072006/200720062005/200620052004/200520042003/200420032002/200320022001/200220012000/200120001999/20001999
ΠΠ° ΠΡΠ±Π°Π½ΠΈ Π·Π° ΡΡΡΠΊΠΈ Π²ΡΡΠ²ΠΈΠ»ΠΈ 96 Π½ΠΎΠ²ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΊΠΎΡΠΎΠ½Π°Π²ΠΈΡΡΡΠ° β ΠΠΎΠΌΠΌΠ΅ΡΡΠ°Π½ΡΡ ΠΡΠ°ΡΠ½ΠΎΠ΄Π°Ρ
ΠΠ° ΠΌΠΈΠ½ΡΠ²ΡΠΈΠ΅ ΡΡΡΠΊΠΈ Π² ΠΡΠ°ΡΠ½ΠΎΠ΄Π°ΡΡΠΊΠΎΠΌ ΠΊΡΠ°Π΅ Π±ΡΠ»ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ 96 Π½ΠΎΠ²ΡΡ ΡΠ»ΡΡΠ°Π΅Π² Π·Π°Π±ΠΎΠ»Π΅Π²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΠ½Π°Π²ΠΈΡΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠ΅ΠΉ. Π‘ΡΠ΅Π΄ΠΈ ΠΈΠ½ΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ 57 ΠΆΠ΅Π½ΡΠΈΠ½ ΠΈ 39 ΠΌΡΠΆΡΠΈΠ½, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ΅ΠΌΠ΅ΡΠΎ Π΄Π΅ΡΠ΅ΠΉ. Π‘Π°ΠΌΠΎΠΌΡ ΡΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΠ°ΡΠΈΠ΅Π½ΡΡ 94 Π³ΠΎΠ΄Π°, ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ Π² ΠΊΡΠ°Π΅Π²ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΡΡΠ°Π±Π΅.
Π ΠΡΠ°ΡΠ½ΠΎΠ΄Π°ΡΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ 21 Π½ΠΎΠ²ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π² ΠΠ½Π°ΠΏΠ΅ ΠΈ ΠΡΠΌΠ°Π²ΠΈΡΠ΅ β ΠΏΠΎ 11, Π² Π‘ΠΎΡΠΈ β Π²ΠΎΡΠ΅ΠΌΡ, ΠΏΠΎ ΡΠ΅ΡΡΡ Π·Π°Π±ΠΎΠ»Π΅Π²ΡΠΈΡ Π² ΠΠΎΠ²ΠΎΡΠΎΡΡΠΈΠΉΡΠΊΠ΅ ΠΈ ΠΠΎΡΡΡΠ΅ΠΌ ΠΠ»ΡΡΠ΅, ΠΏΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π² ΠΠ°Π±ΠΈΠ½ΡΠΊΠΎΠΌ ΠΈ ΡΠ΅ΡΡΡΠ΅ β Π² ΠΠΎΡΠ΅Π½ΠΎΠ²ΡΠΊΠΎΠΌ ΡΠ°ΠΉΠΎΠ½Π΅. ΠΠΎ ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ° Π² ΠΠ΅Π»ΠΎΡΠ΅ΡΠ΅Π½ΡΠΊΠΎΠΌ ΠΈ Π’Π΅ΠΌΡΡΠΊΡΠΊΠΎΠΌ ΠΌΡΠ½ΠΈΡΠΈΠΏΠ°Π»ΠΈΡΠ΅ΡΠ°Ρ . ΠΠΎ Π΄Π²Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π²ΡΡΠ²ΠΈΠ»ΠΈ Π² ΠΠ΅Π»Π΅Π½Π΄ΠΆΠΈΠΊΠ΅, Π‘ΡΠ°ΡΠΎΠΌΠΈΠ½ΡΠΊΠΎΠΌ, Π’ΠΈΡ ΠΎΡΠ΅ΡΠΊΠΎΠΌ, ΠΠΎΠ²ΠΎΠΊΡΠ±Π°Π½ΡΠΊΠΎΠΌ ΠΈ ΠΠ°Π²Π»ΠΎΠ²ΡΠΊΠΎΠΌ ΡΠ°ΠΉΠΎΠ½Π°Ρ . ΠΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ β Π² ΠΠΉΡΠΊΠΎΠΌ, ΠΡΡΠ΅Π²ΡΠΊΠΎΠΌ, ΠΡΡΠ»ΠΎΠ²ΡΠΊΠΎΠΌ, ΠΠ΅Π½ΠΈΠ½Π³ΡΠ°Π΄ΡΠΊΠΎΠΌ, ΠΡΡΠ°Π΄Π½Π΅Π½ΡΠΊΠΎΠΌ, Π‘Π»Π°Π²ΡΠ½ΡΠΊΠΎΠΌ, Π©Π΅ΡΠ±ΠΈΠ½ΠΎΠ²ΡΠΊΠΎΠΌ ΠΈ ΠΡΡΠΌΡΠΊΠΎΠΌ ΡΠ°ΠΉΠΎΠ½Π°Ρ .
ΠΠ°ΡΠ°ΡΡΠ°ΡΡΠΈΠΌ ΠΈΡΠΎΠ³ΠΎΠΌ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΎ 48 813 ΡΠ»ΡΡΠ°Π΅Π² COVID-19. ΠΠ· ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²ΡΠΏΠΈΡΠ°Π½Ρ Ρ Π²ΡΠ·Π΄ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ 43 811 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ (83 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π·Π° ΡΡΡΠΊΠΈ). Π£ΠΌΠ΅ΡΠ»ΠΈ Π·Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ°Π½Π΄Π΅ΠΌΠΈΠΈ 3072 ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ° (11 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π·Π° ΡΡΡΠΊΠΈ). Π ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ°Ρ Π»Π΅ΡΠΈΡΡΡ 913 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, Π½Π° Π΄ΠΎΠΌΡ β 1017. Π ΡΡΠΆΠ΅Π»ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π½Π° ΠΠΠ 51 ΠΏΠ°ΡΠΈΠ΅Π½Ρ, Π½Π° ΠΠΠΠ β ΡΡΠΎΠ΅, ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΠ½ΠΈΡΡΠ΅ΡΡΡΠ²Π΅ Π·Π΄ΡΠ°Π²ΠΎΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΠ°ΠΊ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ-ΡΠΊΡΠΏΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»Π° ΡΠΏΠΈΠ΄Π΅ΠΌΠΈΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π½Π°Π΄Π·ΠΎΡΠ°, Π½Π°Π΄Π·ΠΎΡΠ° Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ΅ ΠΈ ΡΠ°Π½ΠΈΡΠ°ΡΠ½ΠΎΠΉ ΠΎΡ ΡΠ°Π½Ρ ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΠΈ ΠΊΡΠ°Π΅Π²ΠΎΠ³ΠΎ Π ΠΎΡΠΏΠΎΡΡΠ΅Π±Π½Π°Π΄Π·ΠΎΡΠ° Π’Π°ΡΡΡΠ½Π° ΠΠ΅ΠΆΠ΅Π²Π°Ρ, ΡΠΏΠΈΠ΄Π΅ΠΌΠΈΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π² ΡΠ΅Π³ΠΈΠΎΠ½Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΅ΠΌΠΏΠΎΠ² ΠΏΡΠΈΡΠΎΡΡΠ°. ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π΅Π΄Π΅Π»Ρ, ΠΏΠΎ Π΅Π΅ Π΄Π°Π½Π½ΡΠΌ, ΠΎΠ½ ΠΎΡΡΠ°Π²Π°Π»ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ 0,2%.
Β«Π ΡΡΡΡΠΊΡΡΡΠ΅ Π·Π°Π±ΠΎΠ»Π΅Π²ΡΠΈΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π΅Π΄Π΅Π»Ρ Π΄Π΅ΡΠΈ Π΄ΠΎ 17 Π»Π΅Ρ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ 4,3%. ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π²Π΅Ρ Π²Π½Π΅ΡΠ»ΠΈ Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ 30β49 Π»Π΅Ρ ΠΈ ΡΡΠ°ΡΡΠ΅ 65 Π»Π΅Ρ. Π‘ 29 ΠΌΠ°Ρ ΠΏΠΎ 4 ΠΈΡΠ½Ρ Π² ΠΊΡΠ°Π΅ Π΄ΠΎΠ»Ρ ΡΠ»ΡΡΠ°Π΅Π² Π·Π°Π±ΠΎΠ»Π΅Π²Π°Π½ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ»ΡΠΆΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΠ½ΡΠ΅ Π² ΡΠ΅ΠΌΡΠ΅, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ 35,1%, ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π»ΠΈΠ΄ΠΈΡΡΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π΄ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠΎΠ½ΡΠ°ΠΊΡΡ ΠΏΠΎ ΠΌΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅Π³ΠΎ 6%. ΠΠ°Π²ΠΎΠ·Π½ΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΒ»,β ΡΠ°ΡΡΠΊΠ°Π·Π°Π»Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ.
ΠΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠ΅ ΡΡΡΠΊΠΈ Π² Π ΠΎΡΡΠΈΠΈ Π±ΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΎ 8947 ΡΠ»ΡΡΠ°Π΅Π² Π·Π°ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΠ½Π°Π²ΠΈΡΡΡΠΎΠΌ, ΡΠΎΠΎΠ±ΡΠΈΠ» ΡΠ΅Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΡΠ°Π± ΠΏΠΎ Π±ΠΎΡΡΠ±Π΅ Ρ COVID-19. ΠΡΠΎ Π½Π° 0,16% Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π°ΠΊΠ°Π½ΡΠ½Π΅ (8933). ΠΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ Π·Π°Π±ΠΎΠ»Π΅Π²ΡΠΈΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΎ 5 108 129.
ΠΠΌΠΈΡΡΠΈΠΉ ΠΠΈΡ Π΅Π΅Π½ΠΊΠΎ
ΠΠ° Π½ΠΎΠ²ΠΎΠΉ ΡΠ°Π·Π²ΡΠ·ΠΊΠ΅ Π² ΡΠΎΡΡΠ°Π²Π΅ ΡΡΠ°ΡΡΡ Π-10 Π² ΠΠ΅Π½ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ ΠΌΠΎΠ½ΡΠ°ΠΆ ΠΏΡΠΎΠ»Π΅ΡΠ½ΡΡ ΡΡΡΠΎΠ΅Π½ΠΈΠΉ ΠΏΡΡΠ΅ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ²
09:17 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
09:16 09 ΠΡΠ½ΡΒ |Β Π ΠΎΡΡΠΈΡ
09:14 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
09:13 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
09:12 09 ΠΡΠ½ΡΒ |Β ΠΡΡΠΌ
08:53 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
08:48 09 ΠΡΠ½ΡΒ |Β Π’Π°ΠΌΠ±ΠΎΠ²ΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
08:42 09 ΠΡΠ½ΡΒ |Β Π‘Π°ΡΠ°ΡΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
08:41 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
08:27 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
08:25 09 ΠΡΠ½ΡΒ |Β Π£ΠΊΡΠ°ΠΈΠ½Π°
08:23 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
08:13 09 ΠΡΠ½ΡΒ |Β ΠΠ±ΡΠ΅ΡΡΠ²ΠΎ
08:11 09 ΠΡΠ½ΡΒ |Β Π‘Π°ΠΌΠ°ΡΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
08:01 09 ΠΡΠ½ΡΒ |Β Π£Π΄ΠΌΡΡΡΡΠΊΠ°Ρ Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠ°
07:56 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
07:47 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
07:41 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
07:16 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
07:05 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
07:04 09 ΠΡΠ½ΡΒ |Β ΠΠΈΡ
07:00 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:55 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:54 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:50 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:47 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:45 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:41 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:39 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:37 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:37 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:32 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:29 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:29 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:27 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:25 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:22 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:18 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:16 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:13 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:10 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:09 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:08 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:08 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:06 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:04 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:03 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:01 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
06:00 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:58 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:55 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:51 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:49 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:46 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:41 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:39 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:37 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:35 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
05:33 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
02:46 09 ΠΡΠ½ΡΒ |Β ΠΠ»Π°ΡΡΡ
02:44 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
02:20 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
02:13 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
02:12 09 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
02:06 09 ΠΡΠ½ΡΒ |Β ΠΠ»Π°ΡΡΡ
02:02 09 ΠΡΠ½ΡΒ |Β ΠΠ»Π°ΡΡΡ
23:02 08 ΠΡΠ½ΡΒ |Β Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠ° ΠΠ°ΡΠΈΠΉ ΠΠ»
22:55 08 ΠΡΠ½ΡΒ |Β ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
22:52 08 ΠΡΠ½ΡΒ |Β ΠΠΈΠΆΠ΅Π³ΠΎΡΠΎΠ΄ΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
22:51 08 ΠΡΠ½ΡΒ |Β ΠΠ΅Π½Π·Π΅Π½ΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
22:49 08 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
22:47 08 ΠΡΠ½ΡΒ |Β Π‘Π²Π΅ΡΠ΄Π»ΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
22:45 08 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
22:43 08 ΠΡΠ½ΡΒ |Β Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³
22:38 08 ΠΡΠ½ΡΒ |Β Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³
22:37 08 ΠΡΠ½ΡΒ |Β ΠΠ΅Π½Π·Π΅Π½ΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
22:18 08 ΠΡΠ½ΡΒ |Β Π‘Π°ΠΌΠ°ΡΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
22:16 08 ΠΡΠ½ΡΒ |Β Π‘Π°ΠΌΠ°ΡΡΠΊΠ°ΡΒ ΠΎΠ±Π»Π°ΡΡΡ
22:14 08 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
22:02 08 ΠΡΠ½ΡΒ |Β Π£Π΄ΠΌΡΡΡΡΠΊΠ°Ρ Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠ°
21:43 08 ΠΡΠ½ΡΒ |Β Π‘Π°ΡΠ°ΡΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
21:42 08 ΠΡΠ½ΡΒ |Β ΠΠΎΡΠΊΠ²Π°
21:22 08 ΠΡΠ½ΡΒ |Β Π Π΅ΡΠΏΡΠ±Π»ΠΈΠΊΠ° ΠΠΎΡΠ΄ΠΎΠ²ΠΈΡ
21:19 08 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
21:19 08 ΠΡΠ½ΡΒ |Β Π Π°Π·Π½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ
21:16 08 ΠΡΠ½ΡΒ |Β Π’ΡΠ»ΡΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
21:11 08 ΠΡΠ½ΡΒ |Β ΠΡΠ°ΡΠ½ΠΎΡΡΡΠΊΠΈΠΉ ΠΊΡΠ°ΠΉ
20:44 08 ΠΡΠ½ΡΒ |Β ΠΠ±ΡΠ΅ΡΡΠ²ΠΎ
20:39 08 ΠΡΠ½ΡΒ |Β Π‘Π°ΡΠ°ΡΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
20:36 08 ΠΡΠ½ΡΒ |Β ΠΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ°
20:25 08 ΠΡΠ½ΡΒ |Β ΠΠ±ΡΠ΅ΡΡΠ²ΠΎ
20:12 08 ΠΡΠ½ΡΒ |Β ΠΠ²Π°Π½ΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
20:07 08 ΠΡΠ½ΡΒ |Β ΠΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ°
20:04 08 ΠΡΠ½ΡΒ |Β Π‘Π°ΡΠ°ΡΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
20:02 08 ΠΡΠ½ΡΒ |Β Π‘Π°ΡΠ°ΡΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
19:46 08 ΠΡΠ½ΡΒ |Β Π’ΡΠ»ΡΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
19:45 08 ΠΡΠ½ΡΒ |Β ΠΠ»Π°ΡΡΡ
19:34 08 ΠΡΠ½ΡΒ |Β ΠΠΈΡ
19:25 08 ΠΡΠ½ΡΒ |Β Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³
19:22 08 ΠΡΠ½ΡΒ |Β Π ΠΎΡΡΠΈΡ
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ»ΠΈ | TensorFlow Core
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°Ρ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΎ ΡΠ΅Π½Π·ΠΎΡΠ°Ρ , ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠΉ Π»Π΅Π½ΡΠ΅ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΡ . Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ Π²ΡΠ΅ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
TensorFlow ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ tf.Keras API, Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ API Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π½Π·ΠΎΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΊΠ°ΠΊ tf
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π³ΠΎΠ²:
- ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ.
- ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, Π²ΡΡΠΈΡΠ»ΡΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΎΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
- Π Π°ΡΡΡΠΈΡΠ°ΠΉΡΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
- ΠΡΠ΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
Π ΡΠ΅Π»ΡΡ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ $ f (x) = x * W + b $, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: $ W $ (Π²Π΅ΡΠ°) ΠΈ $ b $ (ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅).
ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ: Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΡΡ $ x $ ΠΈ $ y $ ΠΏΠΎΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π½Π°ΠΉΡΠΈ Π½Π°ΠΊΠ»ΠΎΠ½ ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΈ.
ΠΠ°Π½Π½ΡΠ΅
ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Ρ ΠΎΠ΄ΠΎΠ² (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ x ) ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ y , ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ ). Π¦Π΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΡΠΎΠΊΠΈ ΠΈΠ· ΠΏΠ°ΡΠ½ΡΡ Π²Ρ ΠΎΠ΄ΠΎΠ² ΠΈ Π²ΡΡ ΠΎΠ΄ΠΎΠ², ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π²Ρ ΠΎΠ΄Π°.
ΠΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π² TensorFlow ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π½Π·ΠΎΡΠΎΠΌ ΠΈ ΡΠ°ΡΡΠΎ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ. ΠΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ Ρ ΡΡΠΈΡΠ΅Π»Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ) ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π½Π·ΠΎΡΠΎΠΌ.
ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π³Π°ΡΡΡΠΎΠ²ΡΠΊΠΎΠ³ΠΎ (Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ) ΡΡΠΌΠ° ΠΊ ΡΠΎΡΠΊΠ°ΠΌ Π²Π΄ΠΎΠ»Ρ Π»ΠΈΠ½ΠΈΠΈ.
# ΠΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°
TRUE_W = 3,0
TRUE_B = 2,0
NUM_EXAMPLES = 1000
# ΠΠ΅ΠΊΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ x
x = tf. random.normal (ΡΠΎΡΠΌΠ° = [NUM_EXAMPLES])
# ΠΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΌ
ΡΡΠΌ = tf.random.normal (ΡΠΎΡΠΌΠ° = [NUM_EXAMPLES])
# Π Π°ΡΡΡΠΈΡΠ°ΡΡ y
y = x * TRUE_W + TRUE_B + ΡΡΠΌ
# ΠΠΎΡΡΡΠΎΠΉΡΠ΅ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ matplotlib.pyplot ΠΊΠ°ΠΊ plt
plt.scatter (x, y, c = "b")
plt.show ()
Π’Π΅Π½Π·ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π² ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏ Π²Ρ ΠΎΠ΄ΠΎΠ² ΠΈ Π²ΡΡ ΠΎΠ΄ΠΎΠ², ΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅.ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ. Π£ΡΠΈΡΡΠ²Π°Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π» ΡΡΠΎΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²Π΅ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ tf. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
Π²Π΅ΡΠΎΠ² Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ. tf.Variable
Ρ
ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅Π½Π·ΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅. ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΌ. Π ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ tf.Module
Π΄Π»Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Python, Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ w , ΡΠ°ΠΊ ΠΈ b ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΊΠ»Π°ΡΡ MyModel (tf.Module):
def __init __ (self, ** kwargs):
super () .__ init __ (** kwargs)
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π²Π΅ΡΠ° Π½Π° `5.0` ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°` 0.0`
# ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
self.w = tf.Variable (5.0)
self.b = tf.Variable (0.0)
def __call __ (self, x):
Π²Π΅ΡΠ½ΡΡΡ self.w * x + self.b
model = MyModel ()
# ΠΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
tf.Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
print ("ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:", model.variables)
# Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ (3.0) .numpy () == 15.0
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; (Variable 'ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0' shape = () dtype = float32, numpy = 0.0>, )
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π·Π΄Π΅ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½ΠΎ Keras ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΈΠ· ΡΡΠ΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ Keras ΠΈΠ»ΠΈ Π±Π΅Π· Π½ΠΈΡ .
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ΅Π»Π΅Π²ΡΠΌ Π²ΡΡ ΠΎΠ΄Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ. Π¦Π΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΠ΅ΡΡ L2, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠ°ΠΊ Β«ΡΡΠ΅Π΄Π½Π΅ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°Β»:
# ΠΡΡΠΈΡΠ»ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΠΏΠ°ΡΡΠΈΠΈ
ΡΠ±ΡΡΠΎΠΊ ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ (target_y, predicted_y):
return tf.reduce_mean (tf.square (target_y - predicted_y))
ΠΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡ, Π½Π°Π½Π΅ΡΡ Π½Π° Π³ΡΠ°ΡΠΈΠΊ ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, Π° Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ — ΡΠΈΠ½ΠΈΠΌ:
ΠΏΠ»Π°Ρ. ΡΠ°Π·Π±ΡΠΎΡ (x, y, c = "b")
plt.scatter (x, ΠΌΠΎΠ΄Π΅Π»Ρ (x), c = "r")
plt.show ()
print ("Π’Π΅ΠΊΡΡΠΈΠ΅ ΡΠ±ΡΡΠΊΠΈ:% 1.6f"% ΡΠ±ΡΡΠΊΠΎΠ² (y, model (x)). numpy ())
Π’Π΅ΠΊΡΡΠ°Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 9,402307
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π¦ΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ:
- ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ
- Π Π°ΡΡΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΏΡΡΠ΅ΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄ΠΎΠ² Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ (ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΊΠΎΠΉ)
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠΉ Π»Π΅Π½ΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ²
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡ
Π΅ΠΌΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ Π² tf.keras.optimizers
. ΠΠΎ Π² Π΄ΡΡ
Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π·Π΄Π΅ΡΡ Π²Ρ ΡΠ°ΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ tf. GradientTape
Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ tf.assign_sub
Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ tf.assign
ΠΈ tf.sub
):
# Π£ΡΠΈΡΡΠ²Π°Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, Π²Ρ
ΠΎΠ΄Ρ, Π²ΡΡ
ΠΎΠ΄Ρ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ...
def train (ΠΌΠΎΠ΄Π΅Π»Ρ, x, y, ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ):
Ρ tf.GradientTape () ΠΊΠ°ΠΊ t:
# ΠΠ±ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΡΡ GradientTape
current_loss = ΡΠ±ΡΡΠΎΠΊ (y, ΠΌΠΎΠ΄Π΅Π»Ρ (x))
# ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ GradientTape Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ W ΠΈ b
dw, db = t.gradient (current_loss, [model.w, model.b])
# ΠΡΡΡΠΈΡΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
model.w.assign_sub (ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ * dw)
model.b.assign_sub (ΡΠΊΠΎΡΠΎΡΡΡ_ΡΡΠ΅Π½ΠΈΡ * db)
ΠΠ»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΏΠ°ΡΡΠΈΡ x ΠΈ y ΡΠ΅ΡΠ΅Π· ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ W
ΠΈ b
.
ΠΌΠΎΠ΄Π΅Π»Ρ = MyModel ()
# Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΈΡΡΠΎΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ W ΠΈ b Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎΠ·ΠΆΠ΅
Ws, bs = [], []
ΡΠΏΠΎΡ
ΠΈ = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10)
# ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΊΠ»
def training_loop (ΠΌΠΎΠ΄Π΅Π»Ρ, x, y):
Π΄Π»Ρ ΡΠΏΠΎΡ
ΠΈ Π² ΡΠΏΠΎΡ
Π°Ρ
:
# ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ Π³ΠΈΠ³Π°Π½ΡΡΠΊΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ΅ΠΉ
ΠΏΠΎΠ΅Π·Π΄ (ΠΌΠΎΠ΄Π΅Π»Ρ, x, y, ΡΠΊΠΎΡΠΎΡΡΡ_ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ = 0,1)
# ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅ ΡΡΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Ρ
Ws.append (ΠΌΠΎΠ΄Π΅Π»Ρ.w.numpy ())
bs.append (ΠΌΠΎΠ΄Π΅Π»Ρ.b.numpy ())
current_loss = ΡΠ±ΡΡΠΎΠΊ (y, ΠΌΠΎΠ΄Π΅Π»Ρ (x))
print ("ΠΠΏΠΎΡ
Π°% 2d: W =% 1.2f b =% 1.2f, ΠΏΠΎΡΠ΅ΡΡ =% 2.5f"%
(ΡΠΏΠΎΡ
Π°, Ws [-1], BS [-1], current_loss))
print ("ΠΠ°ΡΠ°Π»ΠΎ: W =% 1.2f b =% 1.2f, ΡΠ±ΡΡΠΎΠΊ =% 2.5f "%
(model.w, model.b, loss (y, model (x))))
# ΠΡΠΎΠΉΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅
training_loop (ΠΌΠΎΠ΄Π΅Π»Ρ, x, y)
# ΠΠΎΡΡΡΠΎΠΉΡΠ΅ ΡΡΠΎ
plt.plot (ΡΠΏΠΎΡ
ΠΈ, Ws, "r",
ΡΠΏΠΎΡ
ΠΈ, Π±Ρ, "Π±")
plt.plot ([TRUE_W] * len (ΡΠΏΠΎΡ
ΠΈ), "r--",
[TRUE_B] * len (ΡΠΏΠΎΡ
ΠΈ), Β«b--Β»)
plt. legend (["W", "b", "True W", "True b"])
plt.show ()
ΠΠ°ΠΏΡΡΠΊ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 5,00 b = 0,00, ΡΠ±ΡΡΠΎΠΊ = 9,40231 ΠΠΏΠΎΡ Π° 0 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 4,58 b = 0,41, ΡΠ±ΡΡΠΎΠΊ = 6,29136 ΠΠΏΠΎΡ Π° 1 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 4,25 b = 0,74, ΡΠ±ΡΡΠΎΠΊ = 4,32347 ΠΠΏΠΎΡ Π° 2 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3.98 Π± = 1,00, ΡΠ±ΡΡΠΎΠΊ = 3,07861 ΠΠΏΠΎΡ Π° 3 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,77 b = 1,21, ΠΏΠΎΡΠ΅ΡΠΈ = 2,29113 ΠΠΏΠΎΡ Π° 4 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,61 b = 1,38, ΡΠ±ΡΡΠΎΠΊ = 1,79297 ΠΠΏΠΎΡ Π° 5 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,47 b = 1,51, ΡΠ±ΡΡΠΎΠΊ = 1,47783 ΠΠΏΠΎΡ Π° 6 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,37 b = 1,62, ΡΠ±ΡΡΠΎΠΊ = 1,27846 ΠΠΏΠΎΡ Π° 7 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,29 b = 1,70, ΡΠ±ΡΡΠΎΠΊ = 1,15233 ΠΠΏΠΎΡ Π° 8 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,22 b = 1,77, ΡΠ±ΡΡΠΎΠΊ = 1,07254 ΠΠΏΠΎΡ Π° 9 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,17 b = 1,82, ΡΠ±ΡΡΠΎΠΊ = 1,02206
# ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΡΠ΅Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
plt.scatter (x, y, c = "b")
plt.scatter (x, ΠΌΠΎΠ΄Π΅Π»Ρ (x), c = "r")
plt.ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ()
print ("Π’Π΅ΠΊΡΡΠΈΠ΅ ΡΠ±ΡΡΠΊΠΈ:% 1.6f"% ΡΠ±ΡΡΠΊΠΎΠ² (ΠΌΠΎΠ΄Π΅Π»Ρ (x), y) .numpy ())
Π’Π΅ΠΊΡΡΠ°Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1. 022059
Π’ΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ρ Keras
ΠΠΎΠ»Π΅Π·Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ Π² Keras.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΠ΅ tf.keras.Model
. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Keras Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΡ module.
ΠΊΠ»Π°ΡΡ MyModelKeras (tf.keras.Model):
def __init __ (self, ** kwargs):
ΡΡΠΏΠ΅Ρ().__init __ (** kwargs)
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π²Π΅ΡΠ° Π½Π° `5.0` ΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°` 0.0`
# ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈΡ
ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
self.w = tf.Variable (5.0)
self.b = tf.Variable (0.0)
Π²ΡΠ·ΠΎΠ² def (self, x):
Π²Π΅ΡΠ½ΡΡΡ self.w * x + self.b
keras_model = MyModelKeras ()
# ΠΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ Keras
training_loop (keras_model, x, y)
# ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Keras
keras_model.save_weights ("my_checkpoint")
ΠΠΏΠΎΡ Π° 0 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 4. 58 b = 0,41, ΡΠ±ΡΡΠΎΠΊ = 6,29136 ΠΠΏΠΎΡ Π° 1 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 4,25 b = 0,74, ΡΠ±ΡΡΠΎΠΊ = 4,32347 ΠΠΏΠΎΡ Π° 2 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,98 b = 1,00, ΡΠ±ΡΡΠΎΠΊ = 3,07861 ΠΠΏΠΎΡ Π° 3 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,77 b = 1,21, ΠΏΠΎΡΠ΅ΡΠΈ = 2,29113 ΠΠΏΠΎΡ Π° 4 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,61 b = 1,38, ΡΠ±ΡΡΠΎΠΊ = 1,79297 ΠΠΏΠΎΡ Π° 5 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,47 b = 1,51, ΡΠ±ΡΡΠΎΠΊ = 1,47783 ΠΠΏΠΎΡ Π° 6 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,37 b = 1,62, ΡΠ±ΡΡΠΎΠΊ = 1,27846 ΠΠΏΠΎΡ Π° 7 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,29 b = 1,70, ΡΠ±ΡΡΠΎΠΊ = 1,15233 ΠΠΏΠΎΡ Π° 8 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,22 b = 1,77, ΡΠ±ΡΡΠΎΠΊ = 1,07254 ΠΠΏΠΎΡ Π° 9 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; W = 3,17 b = 1,82, ΡΠ±ΡΡΠΎΠΊ = 1,02206
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Keras Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ»ΡΠΊΠ°.ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΡΠΈΠΊΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Python.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ model.compile ()
Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ model.fit ()
Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ Keras ΠΏΠΎΡΠ΅ΡΠΈ L2 ΠΈ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°, ΠΎΠΏΡΡΡ ΠΆΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ»ΡΠΊΠ°. ΠΠΎΡΠ΅ΡΠΈ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΡ Keras ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π²Π½Π΅ ΡΡΠΈΡ
Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ.
keras_model = MyModelKeras ()
# compile ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
keras_model.ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ (
# ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ fit () ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ tf.function (). Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ
# ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ.
run_eagerly = ΠΠΎΠΆΡ,
# ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ
optimizer = tf.keras.optimizers.SGD (ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ = 0.1),
# Keras ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ MSE
# ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ
# ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π²ΡΡΠ΅
loss = tf.keras.losses.mean_squared_error,
)
Keras fit
ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° NumPy. ΠΠ°ΡΡΠΈΠ²Ρ NumPy ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° 32.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΊΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ x
ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 1000.
ΠΏΠ΅ΡΠ°ΡΡ (x.shape [0])
keras_model.fit (x, y, ΡΠΏΠΎΡ
ΠΈ = 10, ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠΈΠΈ = 1000)
1000 ΠΠΏΠΎΡ Π° 1/10 1/1 [==============================] - 0 Ρ 204 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 9,4023 ΠΠΏΠΎΡ Π° 2/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 6.2914 ΠΠΏΠΎΡ Π° 3/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 4,3235 ΠΠΏΠΎΡ Π° 4/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 3,0786 ΠΠΏΠΎΡ Π° 5/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 2,2911 ΠΠΏΠΎΡ Π° 6/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1,7930 ΠΠΏΠΎΡ Π° 7/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1,4778 ΠΠΏΠΎΡ Π° 8/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1. 2785 ΠΠΏΠΎΡ Π° 9/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1,1523 ΠΠΏΠΎΡ Π° 10/10 1/1 [==============================] - 0 Ρ 2 ΠΌΡ / ΡΠ°Π³ - ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1.0725
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΠ΅ΡΠ°Ρ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ, Π° Π½Π΅ Π΄ΠΎ Π½Π΅Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½ΠΈΠΆΠ΅, Π½ΠΎ Π² ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎ ΡΡΡΠΈ, ΡΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ΅Π½Π·ΠΎΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠΉ Π»Π΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΡΡΠΈ ΠΈΠ΄Π΅ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Keras.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ ΡΠΈΠΊΠ»ΠΎΠ² Keras ΡΠΌ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠΈΠΊΠ»Π°Ρ ΠΈ Keras ΡΠΌ. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅. ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΌ. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ.
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠΈΠΊΠ»Π° Ρ Π½ΡΠ»Ρ | TensorFlow Core
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π½Π·ΠΎΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΊΠ°ΠΊ tf
ΠΈΠ· tenorflow import keras
ΠΈΠ· ΡΠ΅Π½Π·ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.ΡΠ»ΠΎΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° keras
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ numpy ΠΊΠ°ΠΊ np
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Keras ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ, fit ()
ΠΈ Assessment ()
.
ΠΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅.
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ fit ()
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ GAN Ρ ΠΏΠΎΠΌΠΎΡΡΡ fit ()
) Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΠΊΠ»Π°ΡΡΠ° Model
ΠΈ
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ train_step ()
, ΠΊΠΎΡΠΎΡΡΠΉ
Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ fit ()
. ΠΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² fit ()
.
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠ΅Π½ΠΊΠΎΠΉ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ Ρ Π½ΡΠ»Ρ. ΠΡΠΎ ΡΠΎ, ΠΎ ΡΠ΅ΠΌ ΡΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
GradientTape
: ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΡΠ·ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π½ΡΡΡΠΈ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°ΡΠ° GradientTape
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ
ΠΎΠ±ΡΡΠ°Π΅ΠΌΡΠ΅ Π²Π΅ΡΠ° ΡΠ»ΠΎΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΡ.ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
(ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ model.trainable_weights
).
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ MNIST:
Π²Ρ
ΠΎΠ΄ΠΎΠ² = keras.Input (shape = (784,), name = "digits")
x1 = Layers. Dense (64, Activation = "relu") (Π²Ρ
ΠΎΠ΄Ρ)
x2 = ΡΠ»ΠΎΠΈ. Dense (64, Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ = "relu") (x1)
output = Layers.Dense (10, name = "ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ") (x2)
model = keras.Model (Π²Ρ
ΠΎΠ΄Ρ = Π²Ρ
ΠΎΠ΄Ρ, Π²ΡΡ
ΠΎΠ΄Ρ = Π²ΡΡ
ΠΎΠ΄Ρ)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠΈΠΌ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠΈΠ½ΠΈ-ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΠΈ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ :
# Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ.
optimizer = keras.optimizers.SGD (ΡΠΊΠΎΡΠΎΡΡΡ_ΡΡΠ΅Π½ΠΈΡ = 1e-3)
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ΅ΡΡ.
loss_fn = keras.losses.SparseCategoricalCrossentropy (from_logits = True)
# ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
.
batch_size = 64
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data ()
x_train = np.reshape (x_train, (-1, 784))
x_test = np.reshape (x_test, (-1, 784))
# ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠΉΡΠ΅ 10 000 ΠΎΠ±ΡΠ°Π·ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.x_val = x_train [-10000:]
y_val = y_train [-10000:]
x_train = x_train [: - 10000]
y_train = y_train [: - 10000]
# ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
.
train_dataset = tf.data.Dataset.from_tensor_slices ((x_train, y_train))
train_dataset = train_dataset.shuffle (ΡΠ°Π·ΠΌΠ΅Ρ_Π±ΡΡΠ΅ΡΠ° = 1024) .batch (ΡΠ°Π·ΠΌΠ΅Ρ_ΠΏΠ°ΠΊΠ΅ΡΠ°)
# ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
val_dataset = tf.data.Dataset.from_tensor_slices ((x_val, y_val))
val_dataset = val_dataset.batch (ΡΠ°Π·ΠΌΠ΅Ρ_ΠΏΠ°ΠΊΠ΅ΡΠ°)
ΠΠΎΡ Π½Π°Ρ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ:
- ΠΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΈΠΊΠ»
Π΄Π»Ρ
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΏΠΎΡ Π°ΠΌ - ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠΈΠΊΠ»
Π΄Π»Ρ
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΡΠΈΡΠΌΠΈ - ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ
GradientTape ()
scope - ΠΠ½ΡΡΡΠΈ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ (ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄) ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΠΈ
- ΠΠ° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ Π²Π΅ΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ±ΡΡΠΊΠ°
- ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ
ΡΠΏΠΎΡ
= 2
Π΄Π»Ρ ΡΠΏΠΎΡ
ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (ΡΠΏΠΎΡ
):
print ("\ nΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ
ΠΈ% d"% (ΡΠΏΠΎΡ
ΠΈ,))
# ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
. Π΄Π»Ρ ΡΠ°Π³Π° (x_batch_train, y_batch_train) Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ (train_dataset):
# ΠΡΠΊΡΠΎΠΉΡΠ΅ GradientTape Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
# Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄Π°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ.
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
# ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ ΡΠ»ΠΎΡ.
# ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ»ΠΎΠΉ
# Π½Π° Π΅Π³ΠΎ Π²Ρ
ΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ
# Π½Π° GradientTape.
logits = model (x_batch_train, training = True) # ΠΠΎΠ³ΠΈΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈ-ΠΏΠ°ΠΊΠ΅ΡΠ°
# ΠΡΡΠΈΡΠ»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΌΠΈΠ½ΠΈ-ΠΏΠ°ΡΡΠΈΠΈ.loss_value = loss_fn (y_batch_train, Π»ΠΎΠ³ΠΈΡΡ)
# ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΡΡ Π»Π΅Π½ΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ
# Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ ΠΎΠ±ΡΡΠ°Π΅ΠΌΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ΅ΡΡ.
grads = tape.gradient (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅_ΠΏΠΎΡΠ΅ΡΠΈ, model.trainable_weights)
# ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ°, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ²
# Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠ΅ΡΡ.
optimizer.apply_gradients (zip (grads, model.trainable_weights))
# Π Π΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 200 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π΅ΡΠ»ΠΈ ΡΠ°Π³% 200 == 0:
Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ(
"ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅% d:%.4f "
% (ΡΠ°Π³, ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (loss_value))
)
print ("Π£ΠΆΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ:% s ΠΎΠ±ΡΠ°Π·ΡΠΎΠ²"% ((step + 1) * batch_size))
ΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ 0 ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 153,8545 ΠΠΈΠ΄Π½ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 64 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 200 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1,4767 ΠΠΈΠ΄Π½ΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 12864 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΡΠ°ΠΏΠ΅ 400 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1,4645 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 25664 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 600 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0.7049 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 38464 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ 1 ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,9202 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 64 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 200 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,8473 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 12864 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΡΠ°ΠΏΠ΅ 400 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,6632 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 25664 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 600 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,8758 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 38464 ΠΎΠ±ΡΠ°Π·ΡΠ°
ΠΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠ΅ΡΡΠΈΠΊ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΡΠΎΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ» ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΌΠ΅ΡΡΠΈΠΊ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ (ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ) Π² ΡΠ°ΠΊΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ. ΠΏΠ΅ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ Π½ΡΠ»Ρ. ΠΠΎΡ ΠΏΠΎΡΠΎΠΊ:
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΈΠΊΠ»Π°
- ΠΡΠ·ΠΎΠ²
metric.update_state ()
ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° - ΠΡΠ·ΠΎΠ²
metric.result ()
, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ - ΠΡΠ·ΠΎΠ²
metric.reset_states ()
, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ (ΠΎΠ±ΡΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΏΠΎΡ ΠΈ)
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ SparseCategoricalAccuracy
ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°
ΠΊΠΎΠ½Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ:
# ΠΠΎΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ
Π²Ρ
ΠΎΠ΄Ρ = keras.ΠΠ²ΠΎΠ΄ (shape = (784,), name = "digits")
x = Layers.Dense (64, Activation = "relu", name = "density_1") (Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅)
x = Layers.Dense (64, Activation = "relu", name = "density_2") (x)
output = Layers. Dense (10, name = "ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ") (x)
model = keras.Model (Π²Ρ
ΠΎΠ΄Ρ = Π²Ρ
ΠΎΠ΄Ρ, Π²ΡΡ
ΠΎΠ΄Ρ = Π²ΡΡ
ΠΎΠ΄Ρ)
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
optimizer = keras.optimizers.SGD (ΡΠΊΠΎΡΠΎΡΡΡ_ΡΡΠ΅Π½ΠΈΡ = 1e-3)
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ΅ΡΡ.
loss_fn = keras.losses.SparseCategoricalCrossentropy (from_logits = True)
# ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
train_acc_metric = ΠΊΠ΅ΡΠ°Ρ.metrics.SparseCategoricalAccuracy ()
val_acc_metric = keras.metrics.SparseCategoricalAccuracy ()
ΠΠΎΡ Π½Π°Ρ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ:
Π²ΡΠ΅ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠ°
ΡΠΏΠΎΡ
= 2
Π΄Π»Ρ ΡΠΏΠΎΡ
ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (ΡΠΏΠΎΡ
):
print ("\ nΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ
ΠΈ% d"% (ΡΠΏΠΎΡ
ΠΈ,))
start_time = time.time ()
# ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
.
Π΄Π»Ρ ΡΠ°Π³Π° (x_batch_train, y_batch_train) Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ (train_dataset):
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
logits = ΠΌΠΎΠ΄Π΅Π»Ρ (x_batch_train, training = True)
loss_value = loss_fn (y_batch_train, Π»ΠΎΠ³ΠΈΡΡ)
Π³ΡΠ°Π΄Ρ = Π»Π΅Π½ΡΠ°. Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ (loss_value, model.trainable_weights)
optimizer.apply_gradients (zip (grads, model.trainable_weights))
# ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
train_acc_metric.update_state (y_batch_train, Π»ΠΎΠ³ΠΈΡΡ)
# Π Π΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 200 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π΅ΡΠ»ΠΈ ΡΠ°Π³% 200 == 0:
Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ(
"ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅% d:% .4f"
% (ΡΠ°Π³, ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (loss_value))
)
print (Β«ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ:% d ΠΎΠ±ΡΠ°Π·ΡΠΎΠ²Β»% ((step + 1) * batch_size))
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ.train_acc = train_acc_metric.result ()
print ("ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΏΠΎΡ
ΠΈ:% .4f"% (float (train_acc),))
# Π‘Π±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ
train_acc_metric.reset_states ()
# ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΈΠΊΠ» ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ.
Π΄Π»Ρ x_batch_val, y_batch_val Π² val_dataset:
val_logits = ΠΌΠΎΠ΄Π΅Π»Ρ (x_batch_val, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ = False)
# ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ val
val_acc_metric.update_state (y_batch_val, val_logits)
val_acc = val_acc_metric.result ()
val_acc_metric.reset_states ()
print ("ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ:% .4f"% (float (val_acc),))
print ("ΠΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ:% .2fs"% (time.time () - start_time))
ΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ 0 ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 114,3453 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 64 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 200 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 2,2635 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 12864 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΡΠ°ΠΏΠ΅ 400 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,5206 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 25664 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 600 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1.0906 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 38464 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΏΠΎΡ ΠΎΠΉ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ; 0,7022 ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ; 0,7853 ΠΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 5,38 Ρ ΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ 1 ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,5879 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 64 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 200 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,9477 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 12864 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΡΠ°ΠΏΠ΅ 400 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,4649 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 25664 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 600 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0.6874 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 38464 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΏΠΎΡ ΠΎΠΉ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ; 0,8114 ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ; 0,8291 ΠΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 5,46 Ρ
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
tf.
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² TensorFlow 2.0: Π½Π΅ΡΠ΅ΡΠΏΠ΅Π»ΠΈΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π°Ρ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ Π½Π΅ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π³ΡΠ°ΡΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π°ΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.ΠΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ ΠΆΠ°Π΄Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ΄Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° Π΄ΡΡΠ³ΠΎΠΉ, Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π°Π»ΡΡΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³ΡΠ°ΡΠΈΠΊ Π»ΡΠ±ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π½Π·ΠΎΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ @ tf.function
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
@ tf.function
def train_step (x, y):
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
logits = ΠΌΠΎΠ΄Π΅Π»Ρ (x, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ = True)
loss_value = loss_fn (y, Π»ΠΎΠ³ΠΈΡΡ)
grads = tape.gradient (loss_value, model.trainable_weights)
optimizer.apply_gradients (zip (grads, model.trainable_weights))
train_acc_metric.update_state (y, Π»ΠΎΠ³ΠΈΡΡ)
Π²ΠΎΠ·Π²ΡΠ°Ρ loss_value
ΠΡΠΎΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ ΡΡΠ°ΠΏΠΎΠΌ ΠΎΡΠ΅Π½ΠΊΠΈ:
@ tf.function
def test_step (x, y):
val_logits = ΠΌΠΎΠ΄Π΅Π»Ρ (x, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ = Π»ΠΎΠΆΡ)
val_acc_metric.update_state (y, val_logits)
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΠΌ Π½Π°Ρ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΡΡΠΈΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ:
Π²ΡΠ΅ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠ°
ΡΠΏΠΎΡ
= 2
Π΄Π»Ρ ΡΠΏΠΎΡ
ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (ΡΠΏΠΎΡ
):
print ("\ nΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ
ΠΈ% d"% (ΡΠΏΠΎΡ
ΠΈ,))
start_time = Π²ΡΠ΅ΠΌΡ.Π²ΡΠ΅ΠΌΡ()
# ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
.
Π΄Π»Ρ ΡΠ°Π³Π° (x_batch_train, y_batch_train) Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ (train_dataset):
loss_value = train_step (x_batch_train, y_batch_train)
# Π Π΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 200 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π΅ΡΠ»ΠΈ ΡΠ°Π³% 200 == 0:
Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ(
"ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅% d:% .4f"
% (ΡΠ°Π³, ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (loss_value))
)
print (Β«ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ:% d ΠΎΠ±ΡΠ°Π·ΡΠΎΠ²Β»% ((step + 1) * batch_size))
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ.train_acc = train_acc_metric.result ()
print ("ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΏΠΎΡ
ΠΈ:% .4f"% (float (train_acc),))
# Π‘Π±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ
train_acc_metric.reset_states ()
# ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΈΠΊΠ» ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ
ΠΈ.
Π΄Π»Ρ x_batch_val, y_batch_val Π² val_dataset:
test_step (x_batch_val, y_batch_val)
val_acc = val_acc_metric.result ()
val_acc_metric.reset_states ()
print ("ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ:% .4f"% (float (val_acc),))
print ("ΠΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ:% .2fs"% (time.time () - start_time))
ΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ 0 ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,4854 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 64 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 200 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,5259 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 12864 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΡΠ°ΠΏΠ΅ 400 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,5035 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 25664 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 600 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,2240 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 38464 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΏΠΎΡ ΠΎΠΉ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ; 0,8502 ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ; 0.8616 ΠΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1,32 Ρ ΠΠ°ΡΠ°Π»ΠΎ ΡΠΏΠΎΡ ΠΈ 1 ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,6278 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 64 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 200 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,3667 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 12864 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΡΠ°ΠΏΠ΅ 400 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,3374 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 25664 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ (Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ) Π½Π° ΡΠ°Π³Π΅ 600 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,5318 ΠΠΎΠΊΠ° ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 38464 ΠΎΠ±ΡΠ°Π·ΡΠ° ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΏΠΎΡ ΠΎΠΉ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ; 0,8709 ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ; 0.8720 ΠΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 1.02 Ρ
ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ?
ΠΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ±ΡΡΠΊΠΎΠ², ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ
Π‘Π»ΠΎΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄Π°
ΡΠ»ΠΎΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ self.add_loss (value)
. Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ
ΠΏΠΎΡΠ΅ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ model.losses
Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΡΠ΅ΡΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡ ΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠ±Π°Π²ΡΡΠ΅ ΠΈΡ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΠΎΡΠ΅ΡΡΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎΡ ΡΠ»ΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
ΠΊΠ»Π°ΡΡ ActivityRegularizationLayer (Layers.Layer):
Π²ΡΠ·ΠΎΠ² def (self, Π²Π²ΠΎΠ΄Ρ):
self.add_loss (1e-2 * tf.reduce_sum (Π²Ρ
ΠΎΠ΄Ρ))
Π²ΠΎΠ·Π²ΡΠ°Ρ Π²Ρ
ΠΎΠ΄ΠΎΠ²
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅Π³ΠΎ:
Π²Ρ
ΠΎΠ΄ΠΎΠ² = keras.Input (shape = (784,), name = "digits")
x = Layers.Dense (64, Activation = "relu") (Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅)
# ΠΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΉ
x = ActivityRegularizationLayer () (x)
x = ΡΠ»ΠΎΠΈ.ΠΠ»ΠΎΡΠ½ΡΠΉ (64, Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ = "relu") (x)
output = Layers.Dense (10, name = "ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ") (x)
model = keras.Model (Π²Ρ
ΠΎΠ΄Ρ = Π²Ρ
ΠΎΠ΄Ρ, Π²ΡΡ
ΠΎΠ΄Ρ = Π²ΡΡ
ΠΎΠ΄Ρ)
ΠΠΎΡ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π½Π°Ρ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°Π³ ΡΠ΅ΠΉΡΠ°Ρ:
@ tf.function
def train_step (x, y):
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
logits = ΠΌΠΎΠ΄Π΅Π»Ρ (x, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ = True)
loss_value = loss_fn (y, Π»ΠΎΠ³ΠΈΡΡ)
# ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΡΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄Π°.
loss_value + = ΡΡΠΌΠΌΠ° (model.losses)
Π³ΡΠ°Π΄Ρ = Π»Π΅Π½ΡΠ°.Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ (loss_value, model.trainable_weights)
optimizer.apply_gradients (zip (grads, model.trainable_weights))
train_acc_metric.update_state (y, Π»ΠΎΠ³ΠΈΡΡ)
Π²ΠΎΠ·Π²ΡΠ°Ρ loss_value
Π‘Π²ΠΎΠ΄ΠΊΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Ρ Π½ΡΠ»Ρ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Π²ΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°: DCGAN ΠΎΠ±ΡΡΠ΅Π½ ΡΠΈΡΡΠ°ΠΌ MNIST.
Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ GAN Ρ Π½ΡΠ»Ρ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΌΠΈ ΡΠΎΡΡΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ (GAN).GAN ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΠΎΡΡΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠΌΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (Β«ΡΠΊΡΡΡΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΒ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ).
GAN ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ: ΠΌΠΎΠ΄Π΅Π»ΠΈ Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Β», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΡΠΊΠΈ Π² ΡΠΊΡΡΡΠΎΠΉ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠΎΡΠ΅ΠΊ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠ΄Π΅Π»Ρ «Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ», ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΎΠ±ΡΡΠ°ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ) ΠΈ ΡΠ΅ΠΉΠΊΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π²ΡΡ ΠΎΠ΄ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ΅ΡΠΈ).
Π¦ΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ GAN Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
1) ΠΠ±ΡΡΠΈΡΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ.- ΠΠ±ΡΠ°Π·Π΅Ρ ΠΏΠ°ΡΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π² ΡΠΊΡΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅. — ΠΡΠ΅Π²ΡΠ°ΡΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π² ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΒ». — ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΈΡ Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. — ΠΠ±ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ «Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ°» ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
2) ΠΠ±ΡΡΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ. — ΠΡΠ±ΠΎΡΠΊΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π² ΡΠΊΡΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅. — ΠΡΠ΅Π²ΡΠ°ΡΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΉΠΊΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΒ». — ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΈΡ Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. — ΠΠ±ΡΡΠΈΡΠ΅ «Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΡ» ΠΌΠΎΠ΄Π΅Π»Ρ «ΠΎΠ±ΠΌΠ°Π½ΡΡΡ» Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎ.
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡΠ° ΡΠ°Π±ΠΎΡΡ GAN ΡΠΌ. ΠΠ»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΊΠ». Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΠΈΡΡ:
Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ = keras.Sequential (
[
keras.Input (shape = (28, 28, 1)),
Layers.Conv2D (64, (3, 3), strides = (2, 2), padding = "same"),
ΡΠ»ΠΎΠΈ.LeakyReLU (Π°Π»ΡΡΠ° = 0,2),
Layers.Conv2D (128, (3, 3), strides = (2, 2), padding = "same"),
ΡΠ»ΠΎΠΈ.LeakyReLU (Π°Π»ΡΡΠ° = 0,2),
Layers.GlobalMaxPooling2D (),
ΡΠ»ΠΎΠΈ ΠΏΠ»ΠΎΡΠ½ΡΠ΅ (1),
],
name = "Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ",
)
discinator.summary ()
ΠΠΎΠ΄Π΅Π»Ρ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; "Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ" _________________________________________________________________ Π‘Π»ΠΎΠΉ (ΡΠΈΠΏ) ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΡΠΌΡ Π²ΡΠ²ΠΎΠ΄Π° # ================================================== =============== conv2d (Conv2D) (ΠΠ΅Ρ, 14, 14, 64) 640 _________________________________________________________________ ΡΡΠ΅ΡΠΊΠ°_re_lu (LeakyReLU) (ΠΠ΅Ρ, 14, 14, 64) 0 _________________________________________________________________ conv2d_1 (Conv2D) (ΠΠ΅Ρ, 7, 7, 128) 73856 _________________________________________________________________ ΡΡΠ΅ΡΠΊΠ°_re_lu_1 (LeakyReLU) (ΠΠ΅Ρ, 7, 7, 128) 0 _________________________________________________________________ global_max_pooling2d (ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ (ΠΠ΅Ρ, 128) 0 _________________________________________________________________ ΠΏΠ»ΠΎΡΠ½ΡΠΉ_4 (ΠΏΠ»ΠΎΡΠ½ΡΠΉ) (Π½Π΅Ρ, 1) 129 ================================================== =============== ΠΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ; 74 625 ΠΠ±ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 74 625 ΠΠ΅ΠΎΠ±ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0 _________________________________________________________________
Π’ΠΎΠ³Π΄Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΡ ΡΠ΅ΡΡ,
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΡΡΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ Π² Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ (28, 28, 1)
(ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅
Π¦ΠΈΡΡΡ MNIST):
latent_dim = 128
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ = ΠΊΠ΅ΡΠ°Ρ.ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ (
[
keras.Input (shape = (latent_dim,)),
# ΠΡ Ρ
ΠΎΡΠΈΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ 128 ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΡΡ 7x7x128
ΡΠ»ΠΎΠΈ ΠΏΠ»ΠΎΡΠ½ΡΠ΅ (7 * 7 * 128),
ΡΠ»ΠΎΠΈ.LeakyReLU (Π°Π»ΡΡΠ° = 0,2),
Layers.Reshape ((7, 7, 128)),
Layers.Conv2DTranspose (128, (4, 4), strides = (2, 2), padding = "same"),
ΡΠ»ΠΎΠΈ.LeakyReLU (Π°Π»ΡΡΠ° = 0,2),
Layers.Conv2DTranspose (128, (4, 4), strides = (2, 2), padding = "same"),
ΡΠ»ΠΎΠΈ.LeakyReLU (Π°Π»ΡΡΠ° = 0,2),
Layers.Conv2D (1, (7, 7), padding = "same", activate = "sigmoid"),
],
name = "Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ",
)
ΠΠΎΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. Π Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ°Π³Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅Π³ΠΎ 17 ΡΡΡΠΎΠΊ.
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ° ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
d_optimizer = keras.optimizers.Adam (ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ = 0,0003)
g_optimizer = keras.optimizers.Adam (ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ = 0,0004)
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ΅ΡΡ.
loss_fn = keras.losses.BinaryCrossentropy (from_logits = True)
@ tf.function
def train_step (real_images):
# ΠΡΠ±ΠΎΡΠΊΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ Π² ΡΠΊΡΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅
random_latent_vectors = tf.random.normal (ΡΠΎΡΠΌΠ° = (ΡΠ°Π·ΠΌΠ΅Ρ_ΠΏΠ°ΠΊΡΠΈΠΈ, Π»Π°ΡΠ΅Π½ΡΠ½ΡΠΉ_Π΄ΠΈΠΌ))
# Π Π°ΡΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΈΡ
Π² ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
created_images = Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ (random_latent_vectors)
# ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΈΡ
Ρ ΡΠ΅Π°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ
Combined_images = tf.concat ([ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π°Π»ΡΠ½ΡΠ΅_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ], ΠΎΡΡ = 0)
# Π‘ΠΎΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΈΠΊΠ΅ΡΠΊΠΈ, ΠΎΡΠ»ΠΈΡΠ°Ρ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΡΡ
ΠΌΠ΅ΡΠΊΠΈ = tf.concat (
[tf.ones ((batch_size, 1)), tf.zeros ((real_images.shape [0], 1))], axis = 0
)
# ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΡΡΠΌ ΠΊ ΡΡΠΈΠΊΠ΅ΡΠΊΠ°ΠΌ - Π²Π°ΠΆΠ½ΡΠΉ ΡΡΡΠΊ!
ΠΌΠ΅ΡΠΊΠΈ + = 0,05 * tf.random.ΡΠ½ΠΈΡΠΎΡΠΌΠ° (label.shape)
# ΠΠ±ΡΡΠ°Π΅ΠΌ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΡ = Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ (ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ)
d_loss = loss_fn (ΠΌΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ)
grads = tape.gradient (d_loss, discinator.trainable_weights)
d_optimizer.apply_gradients (zip (grads, discinator.trainable_weights))
# ΠΡΠ±ΠΎΡΠΊΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ Π² ΡΠΊΡΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅
random_latent_vectors = tf.random.normal (ΡΠΎΡΠΌΠ° = (ΡΠ°Π·ΠΌΠ΅Ρ_ΠΏΠ°ΠΊΡΠΈΠΈ, Π»Π°ΡΠ΅Π½Ρ_Π΄ΠΈΠΌ))
# Π‘ΠΎΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ»ΡΠΊΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ "Π²ΡΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ"
misleading_labels = tf.Π½ΡΠ»ΠΈ ((ΡΠ°Π·ΠΌΠ΅Ρ_ΠΏΠ°ΠΊΡΠΈΠΈ, 1))
# ΠΠ±ΡΡΠ°Π΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π°ΠΌ * Π½Π΅ * * ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π²Π΅ΡΠ°
# Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ°)!
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΡ = Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ (Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ (random_latent_vectors))
g_loss = loss_fn (ΠΌΠ΅ΡΠΊΠΈ, Π²Π²ΠΎΠ΄ΡΡΠΈΠ΅ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ)
grads = tape.gradient (g_loss, generator.trainable_weights)
g_optimizer.apply_gradients (zip (grads, generator.trainable_weights))
Π²Π΅ΡΠ½ΡΡΡ d_loss, g_loss, generated_images
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠΈΠΌ Π½Π°ΡΡ GAN, ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Ρ train_step
Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°Ρ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ²Π΅ΡΡΠΊΠ°ΠΌΠΈ, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅.
ΠΈΠΌΠΏΠΎΡΡ ΠΠ‘
# ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΠΈΡΡΡ MNIST.
batch_size = 64
(x_train, _), (x_test, _) = keras.datasets.mnist.load_data ()
all_digits = np.concatenate ([x_train, x_test])
all_digits = all_digits.astype ("float32") / 255,0
all_digits = np.reshape (all_digits, (-1, 28, 28, 1))
Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
= tf.data.Dataset.from_tensor_slices (all_digits)
Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
= Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
.Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (ΡΠ°Π·ΠΌΠ΅Ρ_Π±ΡΡΠ΅ΡΠ° = 1024) .batch (ΡΠ°Π·ΠΌΠ΅Ρ_ΠΏΠ°ΠΊΠ΅ΡΠ°)
epochs = 1 # ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 20 ΡΠΏΠΎΡ
Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Ρ
ΠΎΡΠΎΡΠΈΡ
ΡΠΈΡΡ.
save_dir = "./"
Π΄Π»Ρ ΡΠΏΠΎΡ
ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (ΡΠΏΠΎΡ
):
print ("\ nΠΠ°ΡΠ°ΡΡ ΡΠΏΠΎΡ
Ρ", ΡΠΏΠΎΡ
Π°)
Π΄Π»Ρ ΡΠ°Π³Π° real_images Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ (Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
):
# ΠΠ±ΡΡΠΈΡΠ΅ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
d_loss, g_loss, generated_images = train_step (real_images)
# ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π΅ΡΠ»ΠΈ ΡΠ°Π³% 200 == 0:
# ΠΠ΅ΡΠ°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
print ("ΠΏΠΎΡΠ΅ΡΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ° Π½Π° ΡΠ°Π³Π΅% d:%.2f "% (ΡΠ°Π³, d_loss))
print ("ΡΠΎΡΡΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠΈΠ³ΡΡΡ Π½Π° ΡΠ°Π³Π΅% d:% .2f"% (step, g_loss))
# Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
img = tf.keras.preprocessing.image.array_to_img (
created_images [0] * 255.0, scale = False.
)
img.save (os.path.join (save_dir, "created_img" + str (ΡΠ°Π³) + ".png"))
# Π§ΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΌΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠΎΡΠ»Π΅ 10 ΡΠ°Π³ΠΎΠ².
# Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½ΠΈΠΆΠ΅, ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΡΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ!
Π΅ΡΠ»ΠΈ ΡΠ°Π³> 10:
ΠΏΠ΅ΡΠ΅ΡΡΠ²
ΠΠΏΠΎΡ Π° Π½Π°ΡΠ°Π»Π° 0 ΠΏΠΎΡΠ΅ΡΡ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΠ° Π½Π° ΡΠ°Π³Π΅ 0 & Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0.68 ΡΠΎΡΡΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠΈΠ³ΡΡΡ Π½Π° ΡΠ°Π³Π΅ 0 ΠΈ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅; 0,67
ΠΠΎΡ ΠΈ Π²ΡΠ΅! ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΡΠ°ΡΠΈΠ²ΡΠ΅ ΡΠ°Π»ΡΡΠΈΠ²ΡΠ΅ ΡΠΈΡΡΡ MNIST Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· ~ 30 ΡΠ΅ΠΊΡΠ½Π΄ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΠΠΎΠ»Π°Π± GPU.
Π¦ΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ| ΠΠ²ΡΠΎΡ ΠΠ»ΡΡ ΠΠ°ΠΉΡΠ΅Π²
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, PyTorch ΠΈ TorchVision.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Π·Π°Π΄ Ρ Π½Π°ΡΠ°Π» ΠΈΠ·ΡΡΠ°ΡΡ PyTorch — ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π», ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ MovieLens.ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΡΠ΅ΠΌΠ΅, Π²Π°ΠΆΠ½ΠΎΠΉ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, — Π½Π° ΡΠΈΠΊΠ»Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ PyTorch ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΠΌ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ Π΄Π°Π΅Ρ Π²Π°ΠΌ ΡΠ΅Π½Π·ΠΎΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ CUDA, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΡ, ΡΠ»ΠΎΠΈ Π½Π΅ΠΉΡΠΎΠ½Π½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΠΈ Π²Π΅ΡΠΈ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠΏΡΡΡΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΡ PyTorch 1.0, ΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΡ ΠΎΠ±ΡΡΠ°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅Π½Π·ΠΎΡΠ°ΠΌΠΈ ΠΈ ΡΠ»ΠΎΡΠΌΠΈ.(ΠΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Β«Ρ Π½ΡΠ»ΡΒ», ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°Π²ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
Ρ ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Python torch
ΠΈ torchvision
.
TL; DR: ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΠ°ΡΡΡ ΠΏΡΡΠΌΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΠΉ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π΄Π΅ΡΡ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° Π±Π»ΠΎΠΊΠ½ΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΎΠΉ.
ΠΠ°ΠΊ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠ΅ΠΊ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌΡ:
- Ignite — ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ PyTorch
- Torchsample — ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ Keras ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ
- Skorch — scikit -Π²ΡΡΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π½Π΅ΠΉΡΠΎΠ½Π½ΡΡ ΡΠ΅ΡΠ΅ΠΉ
- fastai — ΠΌΠΎΡΠ½ΠΎΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠΈΠ»ΠΈΡ ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ — Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅, ΡΡΡΠ΄ΠΎΠ»ΡΠ±ΠΈΠ²ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΏΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»ΡΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΎΠΌΠΎΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Π½Π΅Π΄ΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, Π²ΡΠ΅ ΡΠΆΠ΅ Π·Π΄Π΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ — Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, Π²ΡΠ±ΠΎΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠ²ΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ΅ ΠΏΠΎ Π½Π°ΡΠΊΠ΅ ΠΎ Π΄Π°Π½Π½ΡΡ ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ Π»ΡΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, Π° Π½Π΅ ΡΠΈΠ΄Π΅ΡΡ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ, ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠΊΡΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π²Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΡΡΠ°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΌΡ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π½Π΅ΠΉ (ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»Ρ) Π½Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ΅Π² ResNets ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° SGD.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΌΠ΅Π½Ρ, ΡΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΈ Π½Π°ΡΠ½Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄!
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΠ»ΠΎΠΆΠ½Π°. ΠΠ°ΠΊΠ΅Ρ pytorch ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΡΡΡΠΈ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅.
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ.ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π΅ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠΈΠΊΠ»Π°, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΡΠ½ΠΎΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΠΊΠΎΠ², Π²Π²ΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΈ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΠΏΠ°Π³Π΅ΡΡΠΈ-ΠΊΠΎΠ΄ΠΎΠΌ.ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ ΠΈ ΡΠ΅ΠΌΠΎΠ½ΡΠΎΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ?
ΠΡΠ²Π΅Ρ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ — ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ. ΠΡ Π½Π΅ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, Π° Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅.ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
Π¨Π°Π±Π»ΠΎΠ½ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΏΠΎΠ΄ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ: Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ, Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠΉ / ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ². Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ Keras ΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ) fastai . Π Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ½ΡΡΠΎΠ΅ Π°Π²ΡΠΎΡΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ignite , Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΎΠ΅, Π½ΠΎ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠΉ ΠΆΠ΅ ΠΈΠ΄Π΅Π΅.ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π½ΠΈΠΆΠ΅. ΠΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡ Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π³ΡΡΠΏΠΏΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠ°ΠΊ epoch_started
, batch_started
ΠΈ Ρ. Π., Π ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠΎΡΠ΅ΡΡ. ΠΠ½ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ
Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ batch_ended
, ΠΎΠ½ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ ΠΈΠ΄Π΅ΠΈ Π² Python.
ΠΠΎΡ ΠΈ Π²ΡΠ΅, ΡΠ°Π·Π²Π΅ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ? ΠΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠΈΡΡΡΠΉ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΉ, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ.
ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (ΡΠΌ. Keras.io ΠΈ docs.fast.ai Π΄Π»Ρ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π΅Π½ΠΈΡ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. Π§ΡΠΎΠ±Ρ ΡΡΠ°ΡΡΡ ΠΎΡΡΠ°Π²Π°Π»Π°ΡΡ ΠΊΡΠ°ΡΠΊΠΎΠΉ, ΠΌΡ ΠΎΠΏΠΈΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΡ ΠΈΠ· Π½ΠΈΡ , Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅ΠΌ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ Jupyter.
Loss
Π‘Π°ΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄Π»Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ Π΄Π»Ρ Π½Π°Ρ.
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ ΠΌΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ±ΡΡΠΎΠΊ. ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ — ΡΠ³Π»Π°Π΄ΠΈΡΡ ΠΊΡΠΈΠ²ΡΡ ΠΏΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ»Π° Π±Ρ Π½Π΅ΡΠΎΠ²Π½ΠΎΠΉ.Π€ΠΎΡΠΌΡΠ»Π° a * x + (1 - a) * y
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠΌΠΈ ΠΈ Π½ΠΎΠ²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ½Π°ΠΌΠ΅Π½Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΌ ΡΡΠ΅ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π½Π°ΡΠ°Π»Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΡΠΎΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΏΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡΠΌΡΠ»Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ³Π»Π°ΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ΅ΡΡ.
Π’ΠΎΡΠ½ΠΎΡΡΡ
Π’ΠΎΡΠ½ΠΎΡΡΡ ΠΠ΅ΡΡΠΈΠΊΠ°
, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΠΌΠ΅ΡΡΠΈΠΊ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ.Π₯ΠΎΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ Π²Π°ΠΌ ΡΠΎΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π²Π°ΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ½ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ΅Π½, ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΅Π»ΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΡΠΏΠΎΡ ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ·-Π·Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ° Π½Π°ΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ±ΠΎΡΠΎΠΊ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅.ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°ΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΏΠΎΡ ΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΡΠΌΡΠ»Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.
ΠΠ΄Π΅ b (i) — ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ i, a (i) — ΡΠΎΡΠ½ΠΎΡΡΡ , Π²ΡΡΠΈΡΠ»Π΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° b (i) , N — ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ±ΠΎΡΠΎΠΊ. ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΎΡΠΌΡΠ»Π°, Π½Π°Ρ ΠΊΠΎΠ΄ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊ:
- ΠΠ΅ΡΡΠΈΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΡ fastai
- ΠΠ΅ΡΡΠΈΠΊΠ° ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° ignite
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅.Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΉΡΠΎΠ½Π½ΡΡ ΡΠ΅ΡΠ΅ΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ΅Π΄Π°Π²Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ (ΠΏΠ΅ΡΠ²Π°Ρ, Π²ΡΠΎΡΠ°Ρ ΠΈ ΡΡΠ΅ΡΡΡ) Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π³ΡΠ»ΠΈΡΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΆΠ°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΈΡ Π½Π° Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π³ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΡΠΈΠ½ΡΡ:
ΠΠΎΠ»ΡΠΏΠ΅ΡΠΈΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΡΠΈΠ½ΡΡΠ°ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠ΄Π²Π°ΠΈΠ²Π°Ρ Π΅Π΅ ΠΏΠ΅ΡΠΈΠΎΠ΄, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΎΡΠΆΠΈΠ³Π° ΠΊΠΎΡΠΈΠ½ΡΡΠ° ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ.
ΠΠΎΡΠΈΠ½ΡΡΠ½ΡΠΉ ΠΎΡΠΆΠΈΠ³ Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠΎΠ²Π£ΠΌΠ½ΠΎΠΆΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠΎΡ Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ Ρ ΡΠ΅ΠΏΠ»ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²ΡΠΉΡΠΈ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠΎΠ². Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΊΠΎΡΠΈΠ½ΡΡΠ½ΡΠΌ ΠΎΡΠΆΠΈΠ³ΠΎΠΌ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, Ρ ΠΎΡΡ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ One-Cycle Policy. ΠΠ΄Π΅Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠΈΠΊΠ» ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ-ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅.
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΠΊΠ»ΠΎΠΌΠ ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½Ρ, Π½ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π±Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠ΅ ΡΠ°Π³ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (Ρ. Π. ΠΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ) Π±Π΅Π· ΡΠΈΡΠΊΠ° ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΏΠΎΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π»ΡΡΡΠ΅ ΠΈ Π»ΡΡΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΡΡΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅ΠΌ ΡΠ΅ΠΌΠΏ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ.ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π·Π°ΡΡΡ
Π°Π½ΠΈΡ ΠΊΠΎΡΠΈΠ½ΡΡΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ 27-30
.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ — ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½, ΡΡΠΎΠ±Ρ ΡΡΠΎΡ ΠΏΠΎΡΡ Π±ΡΠ» ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ½ΠΎΡΠ΅ Jupyter.
Stream Logger
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, — ΡΡΠΎ Π·Π°ΠΏΠΈΡΡ Π² ΠΆΡΡΠ½Π°Π», ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.Π‘Π°ΠΌΡΠΉ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ — Π²ΡΠ²Π΅ΡΡΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π² CSV-ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π½Π° ΡΠ²ΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π»Π΅ΡΠΎΠ½.
ΠΡΠ°ΠΊ, ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Ρ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ!
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π³ΠΎΡΠΎΠ²Ρ, ΠΏΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Ρ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π²Π΅Π·Π΄Π΅ΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ MNIST. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΡΠΈΡΡ Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ Π½Π° CPU Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ.
ΠΠ°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π³Π»ΡΠ±ΠΎΠΊΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ²Π΅ΡΡΠΎΡΠ½ΡΠΌΠΈ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌΠΈ ΡΠ»ΠΎΡΠΌΠΈ.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π½ΡΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π°Π΄ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΡ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Ρ Π½ΡΠ»Ρ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ torchvision
, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π°ΡΠ³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π³ΡΡΠΏΠΏΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΄ ΡΡΠ½ΠΊΡΠΈΠΉ.ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠ°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΎΠ±ΡΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π½ΠΈΠΆΠ΅.
ΠΠΏΠΎΡ Π°: 1 | train_loss = 0.8907, train_accuracy = 0.6387, valid_loss = 0.1027, valid_accuracy = 0.9695poch: 2 | train_loss = 0.4990, train_accuracy = 0.8822, valid_loss = 0.0828, valid_accuracy = 0.9794Epoch: 3 | train_loss = 0.3639, train_accuracy = 0.9086, valid_loss = 0.0723, valid_accuracy = 0.9823
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ make_phases ()
, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π°.ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π½ΠΎΡΡΠ±ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎ ΡΡΡΠΈ, ΠΎΠ½ ΠΎΠ±Π΅ΡΡΡΠ²Π°Π΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠΎΠ½ΠΊΠΈΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ, ΠΏΠΎΠΌΠΎΠ³Π°Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° ΠΏΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ — ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΈ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΠΈΡΡ ΡΠ΅Π»ΠΈ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² Π½Π°ΡΠΊΠ΅ ΠΎ Π΄Π°Π½Π½ΡΡ ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Β«ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·ΡΒ».Π₯ΠΎΡΠΎΡΠ΅Π΅ Π·Π½Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΊ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π±ΡΡΡΡΠ΅Π΅ ΠΈΠ·ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π±Π°Π»Π°Π½ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Β«Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Β» Π΄Π΅ΡΠ°Π»Π΅ΠΉ Π΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ Π»ΡΡΡΠΈΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ·ΡΠΊΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ.
ΠΠ°ΠΊ Ρ Π½ΡΠ»Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΈΠΊΠ» Deep Learning Training Π² Tensorflow
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π±Π΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.ΠΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ Π²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²Π°ΡΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅. Π ΡΠ΅Π»ΠΎΠΌ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΡ Π½Π΅ΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ, Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΡΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ΅ΡΠΈΡ Β«ΠΠ»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Β» , ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΡΠ΅Π½Π°ΠΆΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ.Π― ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ ΠΏΡΠΎΠΉΡΠΈ Π²Π΅ΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ°ΠΊ, ΠΌΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ Π²Π΅ΡΡ ΠΊΠ»Π°ΡΡ ΡΡΠ΅Π½Π΅ΡΠ°, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΠ·ΡΡΠΈΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π’Π°ΠΊ ΡΡΠΎ Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΊ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΊΠΎΠ΄Π°.ΠΠ΅Π· Π»ΠΈΡΠ½ΠΈΡ ΡΠ»ΠΎΠ², ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ.
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² Tensorflow
ΠΠ΅ΡΠ²ΠΎ-Π½Π°ΠΏΠ΅ΡΠ²ΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ Π½Π°Ρ ΠΊΠΎΠ΄ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ. ΠΡΠ΅, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠΆΠΊΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, — ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Keras, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
self.model.compile (optimizer = self.config.train.optimizer.type,
loss = tf.keras.losses.SparseCategoricalCrossentropy (from_logits = True),
metrics = self.config.train.metrics)
LOG.info ('ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ°ΡΠΎ')
model_history = self.model.fit (self.train_dataset, epochs = self.epoches,
step_per_epoch = self.steps_per_epoch = self.steps_per_epoch, self.steps_per_epoch, self.steps_per_epoch, self.steps_per_epoch, self.steps_per_epoch, self.steps_per_epoch, self.steps_per_epoch, self.steps_per_epoch .validation_steps,
validation_data = self.test_dataset)
return model_history.history ['loss'], model_history.history ['val_loss']
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ.ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π½Π°ΡΠΈΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Ρ Π΄ΡΠΌΠ°Ρ, Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΡ Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Β«SparseCategoricalCrossentropyΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ΅ΠΉ ΠΏΠΎΡΠ΅ΡΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Adam ΠΈ Β«SparseCategoricalAccuracyΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Python 3.7 ΠΈ Tensorflow 2.0. Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΌΠΎΡ ΠΏΠΎΠ»Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΈ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π½Π΅ΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»ΠΈ Π½Π°Ρ Π½ΠΎΡΡΠ±ΡΠΊ, ΠΈ Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ΠΎΠ±ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠ΅Π»Ρ.
ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ, Ρ Π΄ΡΠΌΠ°Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ΅Π·Π΄Π° Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
optimizer = tf.keras.optimizers.Adam ()
loss = tf.keras. loss.SparseCategoricalCrossentropy (from_logits = True)
metrics = tf.keras.metrics.SparseCategoricalAccuracy ()
trainer = Trainer (self.model, self.train_dataset, loss, optimizer, metrics, self.epoches)
. ()
ΠΡΠ΅, ΡΡΠΎ Ρ Π·Π΄Π΅ΡΡ Π΄Π΅Π»Π°Ρ, — ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ, ΠΏΠΎΡΠ΅ΡΠΈ, ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΈ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«TrainerΒ».Π‘ΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ train, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ Π½Π°ΡΠ°Π»ΠΎ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π₯ΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° — ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π½Π΅ Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡΡ Π·Π½Π°ΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π»Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ , ΠΈ ΡΡΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΎΠ½ΡΠΎΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π½Π°Ρ ΠΊΠ»Π°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΠ±ΡΡΠ½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Executionors, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Π²Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅ΠΉΠ½Π΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΡΠ΅ΡΡΠΈ Π²Π΅ΡΠ΅ΠΉ: ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ΅ΡΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°, ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΏΠΎΡ .
class Trainer:
def __init __ (self, model, input, loss_fn, optimizer, metric, epoches):
self.model = model
self.input = input
self.loss_fn = loss_fn
self.optimizer = optimizer
self.metric = metric
self.epoches = epoches
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π·Π΄Π΅ΡΡ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ. ΠΠ½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° Trainer Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ , , ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ train_step , ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ API, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Keras, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΌΠ΅Π»ΠΎΡΡ ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ.
Π ΡΡΠ½ΠΊΡΠΈΠΈ train_step ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ Π²Π΅ΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ ΠΈΠ·Π²Π»Π΅ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΊΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°.
trainable_variables = self.model.trainable_variables
input, labels = batch
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠΊ ΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π° Unet.
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΎΠ² = self.ΠΌΠΎΠ΄Π΅Π»Ρ (Π²Ρ ΠΎΠ΄Ρ)
step_loss = self.loss_fn (ΠΌΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ)
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ tf.GradientTape () ΠΈΠ· Tensorflow Π΄Π»Ρ Π·Π°Ρ Π²Π°ΡΠ° Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
grads = tape.gradient (step_loss, trainable_variables)
self.optimizer.apply_gradients (zip (grads, trainable_variables))
ΠΠΎ ΡΡΡΠΈ, ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Tensorflow.ΠΠ»Ρ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π°ΡΡ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ Ρ Π½ΡΠ»Ρ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠ°Π³ΠΎΠ² ΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎΠ΅Π·Π΄Π°
self.metric.update_state (ΠΌΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ)
Π²Π΅ΡΠ½ΡΡΡ step_loss, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ:
def train_step (self, batch):
trainable_variables = self.model.trainable_variables
Π²Ρ ΠΎΠ΄ΠΎΠ², ΠΌΠ΅ΡΠΊΠΈ = ΠΏΠ°ΡΡΠΈΡ
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΎΠ² = self.model (Π²Ρ ΠΎΠ΄Ρ)
step_loss = self.loss_fn (ΠΌΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ)
Π³ΡΠ°Π΄Π° = Π»Π΅Π½ΡΠ°.Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ (step_loss, trainable_variables)
self.optimizer.apply_gradients (zip (grads, trainable_variables))
self.metric.update_state (label, predictions)
return step_loss, predictions
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ train.ΠΠ΅ΡΠΎΠ΄ train Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΈΠΊΠ»ΠΎΠΌ for, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠΏΠΎΡ , ΠΈ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ for Π²Π½ΡΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ (ΡΡΠΎ Π½Π°Ρ ΡΠ°Π³ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ).
def train (self):
Π΄Π»Ρ ΡΠΏΠΎΡ ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (self.epoches):
LOG.info (f'Start epoch {epoch} ')
Π΄Π»Ρ ΡΠ°Π³Π°, training_batch in enumerate (self.input):
step_loss, predictions = self.train_step (training_batch)
LOG.info ("ΠΠΎΡΠ΅ΡΠΈ Π½Π° ΡΠ°Π³Π΅% d:%.2f "% (step, step_loss))
train_acc = self.metric.result ()
LOG.info (f'Saved checkpoint: {save_path} ')
ΠΠ°ΠΊ Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΡΠ°Π½Π΅Π΅, Ρ Π½Π°Ρ ΠΏΡΠΎΡΡΠΎ Π΄Π²Π° ΡΠΈΠΊΠ»Π° for ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ / ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΡ Π½ΠΈΡ , ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ LOG — ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π°.
LOG = get_logger ('trainer')
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΆΡΡΠ½Π°Π»Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠΌ. ΠΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΠ°ΡΡΡ ΡΠ΅ΡΠΈΠΈ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π°.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠΉ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ: ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅Π½Π·ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° (tf.data), ΠΈ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ .ΠΠΎ-Π²ΡΠΎΡΡΡ , Ρ ΡΠ²Π΅ΡΠ΅Π½, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΌΡ ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΡΠ΅ΡΠΈ ΠΈ ΡΠΎΡΠ½ΠΎΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ², Π½ΠΎ ΠΈ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tensorboard. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
Π-ΡΡΠ΅ΡΡΠΈΡ , Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈ Π²Π΅ΡΠ° ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ.Π ΡΡΠ°ΡΡΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΆΠ΅ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΊΡΡΡ TensorFlow: Advanced Techniques Specialization ΠΎΡ deeplearning.ai, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Coursera, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°ΡΡ Π²Π°ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Tensorflow
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΠΎΡΠΊΠ°Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ. ΠΡΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΄Π°.ΠΡΠ»ΠΈ ΠΌΡ ΠΎΠ±ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΡΡΠΎΠΉ, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ. ΠΡΠ°ΠΊ, Π² Π½Π°ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ init Ρ Π½Π°Ρ Π΅ΡΡΡ:
self.checkpoint = tf.train.Checkpoint (optimizer = optimizer, model = model)
self.checkpoint_manager = tf.train.CheckpointManager (self.checkpoint, '. / tf_ckpts ')
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΡ, Π° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ — Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΈ ΠΏΠ°ΠΏΠΊΠΎΠΉ Π΄Π»Ρ ΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ.Π ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π²ΡΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ:
save_path = self.checkpoint_manager.save ()
LOG.info (f'Saved checkpoint: {save_path} ')
ΠΠ±ΡΡΠ½ΠΎ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΡΠΎ Π² ΠΊΠΎΠ½Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΏΠΎΡ ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π°ΡΡ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΏΡΡΡ ΠΆΠ΅, Π² Tensorflow ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΠΏΠ°ΡΡ ΡΡΡΠΎΠΊ:
self.model_save_path = 'saved_models /'
save_path = os.path.join (self.model_save_path, "unet / 1 /")
tf.saved_model.save (self.model, save_path)
Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ:
model = tf.saved_model.load (save_path)
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tensorboard
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠ°ΠΊ Ρ, ΠΆΡΡΠ½Π°Π»ΠΎΠ² — Π½Π΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅. ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π²Π°ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ .ΠΡΠ»ΠΎ Π±Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΏΠΎΡΠΎΠ± Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π° Π½Π΅ Π½Π° ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΡΡΠΎΠΊΠΈ ΠΆΡΡΠ½Π°Π»ΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΠ°ΠΊΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ΅, Tensorboard — ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΠΊΡΠ°ΡΠΈΠ²ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π³ΡΠ°Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ Π½Π°ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π΄Π°?)
tf.summary — ΠΎΡΠ΅Π½Ρ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΠΈΡΠΈ Π½Π°ΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΆΡΡΠ½Π°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Tensorboard.ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠ΄Π½ΡΠΉ ΠΏΠΈΡΠ°ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΏΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
self.train_log_dir = 'logs / gradient_tape /'
self.train_summary_writer = tf.summary.create_file_writer (self.train_log_dir)
Π Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΏΠΎΡ Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅:
def _write_summary (self, loss, epoch):
with self.train_summary_writer.as_default ():
tf.summary.scalar ( 'ΡΠ±ΡΡΠΎΠΊ', ΡΠ±ΡΡΠΎΠΊ, ΡΠ°Π³ = ΡΠΏΠΎΡ Π°)
ΡΡ.summary.scalar ('precision', self.metric.result (), step = epoch)
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
tf.summary.scalar ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ
ΠΡΡΠ½Π°Π»Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π»Ρ ΠΏΠΎΡΠ΅ΡΡ), Π»ΠΈΠ±ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ tf.metric ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ°
ΠΠ»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ Π²Π½ΡΡΡΠΈ Π³ΡΠ°ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
self.metric.update_state (ΠΌΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠ³Π½ΠΎΠ·Ρ)
Π Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎ:
self.metric.result ()
Π³Π΄Π΅:
self.metric = tf.keras.metrics.SparseCategoricalAccuracy ()
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ²ΠΎΠ΄ΠΊΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Tensorboard Π½Π° Π½Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ tensorboard --logdir logs / gradient_tape
Π Π²ΠΎΡ:
Tensorboard Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. Π― Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ Π½ΠΈΠΌ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΈΠΌΠ΅Π»ΠΈ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ. . ΠΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π²Π°ΡΠΈΡ Π±ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π·Π°Π²Π΅ΡΡΠΈΠΌ ΡΡΡ ΡΡΠ°ΡΡΡ, Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ. Π ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Π½Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²Π΅ΡΠ½Ρ, Π° ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΡΠ½Π°ΡΠ΅Π½Π°.ΠΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ. Π£ Π½Π°Ρ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ test ΠΈ ΡΡΠ½ΠΊΡΠΈΡ test_step, ΠΈ ΠΌΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ tf.metrics, logs ΠΈ Tensorboard. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² 90% ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π½ΡΠ»Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠΌΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΌΡ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠ»ΠΈΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠ²ΠΊΠΈ Tensorflow, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅.ΠΠΎΠ·Π²ΠΎΠ»ΡΡΠ΅ ΠΌΠ½Π΅ ΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΠΌΡΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π» Π±Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΡΡΠΎΠΌΡ. Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΠΎΡ ΡΠΈΠΏ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ, ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ Π½Π°ΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΠ»ΠΈ ΡΡΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Github
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π΅ ΡΡΠ°ΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.ΠΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ΅Π±Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΡΡΠΎ ΡΠ΅Π΄ΡΠΌΠ°Ρ ΡΡΠ°ΡΡΡ Π² ΡΠ΅ΡΠΈΠΈ ΠΈ Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΎΠ½Π° ΡΠΊΠΎΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ. ΠΠ°ΠΌ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π°ΠΊΠΎΠ½Π΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠΎΠ³Π΄Π° ΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π±ΡΠ΄Π΅ΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ.
Π ΠΏΠΎΠΊΠ° ΡΠ°Π·Π²Π»Π΅ΠΊΠ°ΠΉΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ ΠΎΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΠ.
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ AI Summer
ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π²ΡΠΈΡΡ Π½Π° Π½Π°ΡΡ Π½ΠΎΠ²ΠΎΡΡΠ½ΡΡ ΡΠ°ΡΡΡΠ»ΠΊΡ
* ΠΡ Π·Π°Π±ΠΎΡΠΈΠΌΡΡ ΠΎ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ. AI Summer ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π²Π°ΠΌ Π½Π°ΡΡ Π½ΠΎΠ²ΠΎΡΡΠ½ΡΡ ΡΠ°ΡΡΡΠ»ΠΊΡ ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π½Π° ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠ΅ΠΉ ΠΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ.
* Π Π°ΡΠΊΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ: ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΡΡΠ»ΠΎΠΊ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, ΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΈΡΡΠΈΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΡΠ°Ρ Π΄Π»Ρ Π²Π°Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠΊΡΠΏΠΊΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°.
ΠΡΠΎΡΡΠΎΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² PyTorch Β· GitHub
ΠΡΠΎΡΡΠΎΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² PyTorch Β· GitHubΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΊΠΎΠ΄ΠΎΠΌ, Π·Π°ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
ΠΡΠΎΡΡΠΎΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² PyTorch
# ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΠ΅ΡΡ fn ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ | |
ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ = nn.BCELoss () | |
optimizer = optim.Adam (model.parameters (), lr = 0,001) | |
# ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΠΏΠ°ΡΡΠΈΠΈ | |
batch_losses = [] | |
# ΠΎΠ±ΡΡΠ°Π΅ΠΌ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΡ Π·Π° 5 ΡΠΏΠΎΡ | |
Π΄Π»Ρ ΡΠΏΠΎΡ ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (5): | |
#reset iterator | |
dataiter = iter (Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ ) | |
Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠΈ Π² Dataiter: | |
# ΡΠ±ΡΠΎΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ² | |
ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ.zero_grad () | |
# ΠΏΡΡΠΌΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ΅ΡΠΈ | |
out = ΠΌΠΎΠ΄Π΅Π»Ρ (ΠΏΠ°ΡΡΠΈΡ [«ΡΠ²ΠΈΡΡ»]) | |
# ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΡΠ±ΡΡΠΎΠΊ | |
ΠΏΠΎΡΠ΅ΡΡ = ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ (Π²ΡΡ ΠΎΠ΄, ΠΏΠ°ΡΡΠΈΡ [«Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈΡ»]) | |
#track batch loss | |
batch_losses.Π΄ΠΎΠ±Π°Π²ΠΈΡΡ (loss.item ()) | |
#backpropagation | |
ΡΠ±ΡΡΠΎΠΊ. ΠΠ°Π·Π°Π΄ () | |
# ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ | |
optimizer.step () |
ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠΈΡΡ ΡΠ²ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Ρ TensorFlow Ρ ΠΏΠΎΠΌΠΎΡΡΡ Keras API, ΡΠΎ Π΅ΡΡΡ model.compile
ΠΈ model.fit
ΠΈ Π΅Π³ΠΎ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ. ΠΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΡ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ / ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ².ΠΡΠΌΠ°Ρ, Π΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- Π½ΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ
- Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈ
- ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΡΡΡΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ½ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΡΠΈΡΠ΅Π»Ρ)
- ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ).
TensorFlow Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°ΠΊΡΡ ββΠ½Π°ΡΡΡΠΎΠΉΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ API GradientTape
. ΠΠΎΡ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
@tf.ΡΡΠ½ΠΊΡΠΈΡ
def training_loop (ΡΠΏΠΎΡ
ΠΈ, train_dataset, valid_dataset):
# Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΏΠΎΡ
Ρ Π½Π° Π²ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅
Π΄Π»Ρ ΡΠΏΠΎΡ
ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (ΡΠΏΠΎΡ
):
# ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΏΠ°ΡΡΠΈΡΠΌΠΈ
for (batch, (features, labels)) Π² enumerate (train_dataset):
train_loss = 0
Ρ tf.GradientTape () Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅Π½ΡΡ:
# ΠΏΡΠΎΡ
ΠΎΠ΄ Π²ΠΏΠ΅ΡΠ΅Π΄ Π² ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
logits = ΠΌΠΎΠ΄Π΅Π»Ρ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ = True)
# Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΡΡΠΈΠΈ
loss = loss_func (ΠΌΠ΅ΡΠΊΠΈ, Π»ΠΎΠ³ΠΈΡΡ)
# backprobagation: ΡΠ°ΡΡΡΠΈΡΠ°ΠΉΡΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΡ
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ
Π³ΡΠ°Π΄Ρ = Π»Π΅Π½ΡΠ°.Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ (ΠΏΠΎΡΠ΅ΡΡ, model.trainable_variables)
# Π½Π°ΠΊΠΎΠΏΠΈΡΡ ΠΏΠΎΡΠ΅ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΠΊ
train_loss + = optimizer.apply_gradients (zip (grads, model.trainable_variables))
# Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π½Π°Π±ΠΎΡΠ°
valid_loss = 0
Π΄Π»Ρ (ΠΏΠ°ΠΊΠ΅Ρ, (ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ΅ΡΠΊΠΈ)) Π² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ (valid_dataset):
# ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠ²ΠΎΠ΄Π°
logits = ΠΌΠΎΠ΄Π΅Π»Ρ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ = False)
# Π½Π°ΠΊΠΎΠΏΠΈΡΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅
valid_loss + = loss_func (ΠΌΠ΅ΡΠΊΠΈ, Π»ΠΎΠ³ΠΈΡΡ)
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠΏΠΎΡ Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±Π°ΠΊΡΠ°Ρ .ΠΠ° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠ°ΡΡΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ:
- ΠΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° Π»Π΅Π½ΡΡ
- Π Π°ΡΡΡΠΈΡΠ°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΈΠΊΠ΅ΡΠΎΠΊ
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ²
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π΅ΡΠ° ΡΠ»ΠΎΠ΅Π², ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΊΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ .ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠ²ΠΎΠ΄Π°, ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠΏΠΎΡ ΠΈ. ΠΠ½ ΡΡΠΌΠΌΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ΅ΡΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΠ΅ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΏΠΎΡ ΠΈ.
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ detectron2 0.4.1
ΠΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π²ΡΡ ΡΡΠΈΠ»Π΅ΠΉ:
Π¦ΠΈΠΊΠ» ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΠΎΠ³Π΄Π° ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ Π³ΠΎΡΠΎΠ²Ρ, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² PyTorch, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.ΠΡΠΎΡ ΡΡΠΈΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² tools / plain_train_net.py.
ΠΡΠ±Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
Π’ΡΠ΅ΠΉΠ½Π΅Ρ Abstraction
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Β«ΡΡΠ΅Π½Π΅ΡΠ°Β» Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΡΡΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°:
SimpleTrainer ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π°Π½Π½ΡΡ , Π½ΠΈ Ρ ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠΌ.ΠΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ (ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ, Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΈ Ρ. Π.) ΠΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΡΡΡΠΊΠΎΠ².
DefaultTrainer — ΡΡΠΎ
SimpleTrainer
, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ tools / train_net.py ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ². ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΡΠ±ΡΠ°ΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°, ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, ΠΎΡΠ΅Π½ΠΊΠ°, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΈ Ρ. Π΄.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ DefaultTrainer
:
ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Π³ΡΠ°ΠΌΠΌ. ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ LR, Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π°Π½Π½ΡΡ ΠΈ Ρ. Π΄.), ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅, ΠΊΠ°ΠΊ Π² tools / train_net.py.
ΠΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΠΎΠ½Π°.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ:
ΠΊΠ»Π°ΡΡ HelloHook (HookBase): def after_step (ΡΠ°ΠΌ): Π΅ΡΠ»ΠΈ self.trainer.iter% 100 == 0: print (f "ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅, ΠΈΡΠ΅ΡΠ°ΡΠΈΡ {self.trainer.iter}!")
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΅Π½Π΅Ρ + ΠΊΡΡΡΠΎΠΊ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ .ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΌΡ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ° ΠΈ ΠΊΡΡΡΠΊΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ, Π° Π½Π΅ ΠΌΠΎΡΠ½ΠΎΠΉ. ΠΡΠ»ΠΈ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΎΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ tools / plain_train_net.py ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ.
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ detectron2 ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΌΡ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ:
Ρ ΡΠ°ΠΉΡΠ° detectron2.utils.ΠΈΠΌΠΏΠΎΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ get_event_storage # Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΠΏΡΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ: value = # Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ = get_event_storage () storage.