ΠŸΠ΅Ρ‚Π»Ρ трСнировочная: LITE WEIGHTS 0825LW 208 x 2,1 x 0,45 (25 , )

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт 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

Высокая ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ: ΠΊΠ°Ρ€Π΄ΠΈΠΎ ΠΈ силовых, Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…, Π½Π° ΠΌΡ‹ΡˆΡ†Ρ‹-стабилизаторы ΠΈ растягивания, спСциализированных для Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² спорта ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.
Π’ любом ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΡ‹ΡˆΡ†Ρ‹-стабилизаторы ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ всС Ρ‚Π΅Π»ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎ-настоящСму Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ

Π‘Π²ΠΎΠ±ΠΎΠ΄Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ с использованиСм Π»ΡŽΠ±Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ – ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ограничСния стандартных силовых Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ°Π³ΠΈΡ‚Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ инструкция ΠΏΠΎ использованию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ‚Π΅Π»ΡŒ 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% Π‘Ρ‚ΠΈΡ€ΠΎΠ» Π­Ρ‚ΠΈΠ»Π΅Π½-Π‘ΡƒΡ‚Π°Π΄ΠΈΠ΅Π½-Π‘Ρ‚ΠΈΡ€ΠΎΠ» (БСбс)

РСзиновая пСтля (Π»Π΅Π½Ρ‚Π°, эспандСр) фиолСтовая 12

ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ сниТСниС) интСнсивности выполняСмых ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ. Π Π°Π·Π²ΠΈΠ²Π°ΠΉΡ‚Π΅ силу, Π° Π½Π΅ Π²Ρ‹Π½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡ‚ΡŒ! Если Π²Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² отТиманиях Π½Π° Π±Ρ€ΡƒΡΡŒΡΡ… дошли Π΄ΠΎ 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: ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ прямо Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ исходный ΠΊΠΎΠ΄, обсуТдаСмый Π² этом постС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, здСсь Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π±Π»ΠΎΠΊΠ½ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит всю Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ Π² сообщСниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ.

Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Π΅ΡΡ‚ΡŒ нСсколько высокоуровнСвых ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ, построСнных ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ процСсс обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ порядкС возрастания слоТности, ΠΎΡ‚ минималистичного ΠΊ ΠΎΡ‡Π΅Π½ΡŒ слоТному:

  1. Ignite — ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ высокоуровнСвый интСрфСйс для PyTorch
  2. Torchsample — подобная Keras ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ, дополнСниями ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ
  3. Skorch — scikit -Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй
  4. 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 прСдставляСт собой Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ старыми ΠΈ Π½ΠΎΠ²Ρ‹ΠΌΠΈ значСниями.

ГСомСтричСская интСрпрСтация Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ интСрполяции ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ A ΠΈ B

Π—Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΡƒΡ‡Π΅ΡΡ‚ΡŒ смСщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅ вычислСний. ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ этот пост, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описываСтся Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° вычислСния сглаТСнных ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° , вСроятно, ΠΎΠ΄Π½Π° ΠΈΠ· самых извСстных ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ.Π₯отя Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ качСства вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятСн, прост для понимания ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ увСдомлСния Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° обучСния. Он вычисляСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ точности ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ†Π΅Π»ΠΈ Π² памяти Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСй эпохи обучСния.

Из-Π·Π° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° Π½Π°ΡˆΠΈΡ… вычислСний Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ количСство Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π°ΡˆΠΈΡ… вычислСний Π² ΠΊΠΎΠ½Ρ†Π΅ эпохи. ЀактичСски, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π½Π° рисункС Π½ΠΈΠΆΠ΅.

Π“Π΄Π΅ b (i) — Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ i, a (i) — Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ , вычислСнная для ΠΏΠ°ΠΊΠ΅Ρ‚Π° b (i) , N — ΠΎΠ±Ρ‰Π΅Π΅ количСство Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ. Как ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ послСдняя Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°, наш ΠΊΠΎΠ΄ вычисляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ точности. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этими ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ссылками, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… вычислСниях ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ:

  1. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΎΡ‚ fastai
  2. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° точности ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° 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 :

  1. Для простой настройки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,Π³Ρ€Π°ΠΌΠΌ. ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ LR, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄.), ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² подклассС, ΠΊΠ°ΠΊ Π² tools / train_net.py.

  2. Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π²ΠΎ врСмя обучСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ систСму, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, поддСрТиваСтся Π»ΠΈ ΠΎΠ½Π°.

    Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° для Π²Ρ‹Π²ΠΎΠ΄Π° привСтствия Π²ΠΎ врСмя обучСния:

     класс HelloHook (HookBase):
      def after_step (сам):
        Ссли self.trainer.iter% 100 == 0:
          print (f "ЗдравствуйтС, итСрация {self.trainer.iter}!")
     
  3. ИспользованиС систСмы Ρ‚Ρ€Π΅Π½Π΅Ρ€ + ΠΊΡ€ΡŽΡ‡ΠΎΠΊ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всСгда Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСстандартныС Ρ„ΠΎΡ€ΠΌΡ‹ повСдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ, особСнно Π² исслСдованиях.По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΡ‹ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ оставляСм систСму Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π° ΠΈ ΠΊΡ€ΡŽΡ‡ΠΊΠ° минимальной, Π° Π½Π΅ ΠΌΠΎΡ‰Π½ΠΎΠΉ. Если Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнуто с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ систСмы, ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с tools / plain_train_net.py ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ обучСния Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

РСгистрация ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ

Π’ΠΎ врСмя обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ detectron2 ΠΈ инструктор ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ событий. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для доступа ΠΊ Π½Π΅ΠΌΡƒ ΠΈ рСгистрации Π² Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ:

 с сайта detectron2.utils.ΠΈΠΌΠΏΠΎΡ€Ρ‚ событий get_event_storage  # Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ:
ΠΏΡ€ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ:
 value = # Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
 Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ = get_event_storage ()
 storage.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *