Понедельник, 29 апреля

Тренировка с: Тренировка с резинкой для крутых результатов без спортзала

Тренировка с резинкой для крутых результатов без спортзала

Тренировка с фитнес‑резинкой может быть не менее эффективной , чем силовые упражнения на тренажёрах или занятия со свободными весами. Конечно, если подобрать подходящее сопротивление эспандера и заниматься до утомления мышц.

Ниже мы приведём хорошую силовую тренировку на все группы мышц, разбитую на два дня. Чередуйте их, и можете забыть про абонемент в спортзал.

Что понадобится для тренировки с резинкой

Есть несколько видов эспандеров для фитнес‑тренировок: длинные ленты, мини‑резинки, трубчатые модели с двумя ручками.

Для нашей тренировки подойдут длинные эспандеры. Вы можете зацепить их за опору и заниматься, как на блочном тренажёре, делать различные жимы и тяги. А при необходимости превратить эспандер в мини‑резинку, свернув в два или три раза.

Лучше всего купить несколько длинных резинок с разным сопротивлением: тонкие подойдут для движений на верхнюю часть тела, широкие и толстые — для прокачки мышц ног и ягодиц. Если это слишком дорого, приобретите нечто среднее и регулируйте нагрузку по количеству повторений и сложности упражнений.

Также вам понадобится стабильная опора, за которую вы сможете зацепить резинку. Выбирайте предмет, который наверняка не оторвётся от стены и не сдвинется с места.

Как выполнять тренировку с резинкой

Мы приведём эффективные упражнения на каждую группу мышц для двух тренировочных дней:

День 1:

  • Отжимания от пола.
  • Подъём рук с разводкой.
  • Тяга к груди в наклоне.
  • Приседания.
  • Становая на прямых ногах.
  • Ягодичный мостик.
  • Велосипед.

День 2:

  • Жим стоя.
  • Разводка горизонтальная.
  • Тяга на одном колене.
  • Выпады.
  • Тяга между ног.
  • Отведение ног.
  • Повороты корпуса.

Каждое упражнение выполняйте в 3 подхода по 6–20 повторений в зависимости от того, насколько тяжёлым оно кажется. Вы должны заканчивать каждый подход с нарастающим чувством усталости в мышцах. Если же и во время последнего подхода вы не чувствуете особой нагрузки, увеличивайте число повторений или берите резинку потолще.

Если вы хотите помимо силы развить ещё и выносливость, выбирайте самую тонкую резинку и выполняйте движения в формате интервальной круговой тренировки.

Поставьте таймер и делайте первое упражнение из списка в течение 40 секунд, затем отдыхайте остаток минуты и переходите к следующему. Таким же образом закончите все упражнения, отдохните 1–2 минуты и начинайте заново. Выполните три полных круга.

Конечно, силы вам такой формат не прибавит, зато прокачает общую и силовую выносливость.

Также вы можете разделить тренировки на верх и низ тела. Но лучше не делать этого в первые две недели после начала занятий, чтобы не перегрузить мышцы и не получить травму. В варианте сплитов на верх и низ два тренировочных дня будут выглядеть следующим образом.

День 1:

  • Отжимания от пола.
  • Жим стоя.
  • Подъём рук с разводкой.
  • Разводка горизонтальная.
  • Тяга к груди в наклоне.
  • Тяга на одном колене.
  • Сгибания на бицепс.
  • Разгибания на трицепс.

День 2:

  • Приседания.
  • Выпады.
  • Становая тяга на прямых ногах.
  • Тяга между ног.
  • Ягодичный мостик.
  • Отведение ног.
  • Велосипед.
  • Повороты корпуса.

Плюс такого подхода в том, что вы сможете хорошенько загрузить мышцы даже с не очень толстым эспандером и увеличите частоту занятий, тренируясь по 4 раза в неделю.

Например, если в понедельник вы прорабатываете верх, а во вторник — низ, к четвергу мышцы плеч и груди уже успеют восстановиться и будут готовы к новой нагрузке.

Как делать упражнения

Отжимания от пола

Это классное упражнение для развития грудных мышц и трицепса. За счёт сопротивления резинки эффект от отжиманий сходен с тем, что можно получить от жима лёжа.

Расположите эспандер за спиной и возьмите его за петли. Встаньте в упор лёжа, прижимая резинку ладонями к полу. Выполняйте отжимания, преодолевая сопротивление резинки. Держите локти близко к телу и следите, чтобы поясница не прогибалась.

Если вы пока плохо отжимаетесь, попробуйте делать упражнение в упоре лёжа на коленях. А через тренировку замените его на классические отжимания без резинки.

Подъём рук с разводкой

Движение прокачает и передние, и средние пучки дельтовидных мышц. Для него понадобится самая тонкая резинка, которую вам удастся найти.

Встаньте на петлю эспандера и возьмитесь за резинку прямым хватом на ширине плеч. Поднимите прямые руки перед собой до уровня груди, затем разведите их в стороны, сведите обратно и опустите.

Старайтесь не поднимать плечи к ушам, напрягайте пресс, чтобы обеспечить жёсткость корпуса.

Тяга к груди в наклоне

Прекрасное движение на прокачку мышц спины. Плюс в том, что нагрузку можно менять, просто взяв эспандер по‑другому.

Наступите на петлю, поставьте ноги на ширине плеч и возьмитесь за резинку. Наклоните корпус вперёд с прямой спиной, подтягивайте эспандер к животу и опускайте обратно.

Если это слишком просто, сложите эспандер пополам и просуньте ноги в получившиеся петли. Возьмите резинку за середину и подтягивайте её к поясу.

Приседания

Это аналог приседания со штангой на груди, только с облегчённой эксцентрической фазой.

Наступите на эспандер, поставьте ноги на ширине плеч и чуть разверните носки стоп в стороны. Согните руки в локтях и удерживайте резинку рядом с грудью. Приседайте, держа спину прямой и не отрывая пятки от пола. Старайтесь сесть пониже, чтобы увеличить нагрузку на ноги.

Становая тяга на прямых ногах

Это движение прокачивает заднюю часть бедра и мышцы спины. Для него лучше выбрать самый толстый эспандер.

Сложите резинку пополам, наступите на её середину и возьмитесь за концы. Полностью выпрямитесь, удерживая эспандер в прямых опущенных руках.

Чуть согните колени и зафиксируйте их в этом положении. Подайте таз назад и, сохраняя прямую спину, наклоните корпус. Вернитесь в исходное положение и повторите.

Ягодичный мостик

В этом упражнении сочетается разгибание в тазобедренном суставе и разведение ног в статике, так что вы хорошо нагрузите и большие, и средние ягодичные мышцы.

Лягте на спину, наденьте резинку на бёдра. На видео показан вариант с мини‑эспандером, но вы можете использовать и длинную модель — просто сверните её в два раза и наденьте на ноги выше коленей.

Соедините стопы и разведите колени в стороны, упритесь ладонями в пол и поднимите таз, чтобы тело вытянулось в одну прямую линию. В верхней точке сильно сожмите ягодицы, затем верните таз на пол и повторите сначала.

Велосипед

Прекрасное упражнение для прокачки прямой и косых мышц живота и сгибателей бедра. Благодаря эспандеру оно станет ещё эффективнее.

Лягте на пол, сверните резинку вдвое и наденьте её на стопы. Уберите руки за голову, выпрямите ноги. Подтяните одно колено ближе к груди, одновременно отрывая лопатки от пола и разворачивая корпус в сторону. Вернитесь в исходное положение и повторите с другой ноги.

Жим стоя

Это движение хорошо прокачает верх тела, включая грудь, трицепс, плечи и мышцы кора.

Наступите на резинку, поставьте ноги на ширине плеч и возьмитесь за другой конец прямым хватом на ширине плеч. Согните руки в локтях и подведите резинку к груди — это исходное положение.

Напрягите пресс, чтобы обеспечить жёсткость корпуса и исключить прогиб в пояснице, и выжмите эспандер вверх над головой до полного выпрямления в плечевых и локтевых суставах.

Опустите резинку в исходное положение и повторите.

Разводка горизонтальная

Упражнение прокачает средние и задние дельтовидные мышцы.

Наденьте резинку так, чтобы одна полоска была за спиной, а другая — перед грудью, и намотайте концы эспандера на запястья. Поднимите руки вперёд до параллели с полом. Преодолевая сопротивление эспандера, разводите их в стороны и возвращайте обратно.

Тяга на одном колене

В своём видео на YouTube физиотерапевт и бодибилдер Джеф Кавальер утверждает, что упражнение прекрасно прокачивает верхнюю часть спины — трапецию и ромбовидные мышцы.

Зацепите эспандер за опору где‑то на уровне своей головы. Просуньте кисти в петлю и возьмитесь за резинку прямым нейтральным хватом.

Сядьте на одно колено, наклоните корпус с прямой спиной и вытяните руки вверх и вперёд, как бы продолжая линию тела. Тяните эспандер к груди и возвращайте обратно. Не меняйте наклон корпуса до конца подхода.

Выпады

Упражнение хорошо нагрузит и квадрицепсы, и ягодицы.

Сделайте шаг вперёд и наступите на один конец резинки. Второй зацепите за шею и придерживайте руками. Сохраняя спину прямой, выполняйте выпады, опускаясь почти до касания сзади стоящим коленом пола, и поднимаясь обратно.

Если это для вас слишком просто, попробуйте вариант с двойной петлёй. Сложите эспандер пополам и наступите на него одной ногой. Концы резинки намотайте на руки.

Сохраняя прямую спину, опускайтесь вниз и поднимайтесь обратно. Не напрягайте руки — всю работу выполняют ноги.

Тяга между ног

Хорошее движение для прокачки ягодиц и разгибателей спины. Чем дальше отойдёте от опоры, тем больше будет нагрузка.

Зацепите эспандер невысоко от пола, пропустите его между ногами и чуть отойдите от опоры, растягивая резинку. Чуть согните колени, наклонитесь вперёд с прямой спиной, а затем выпрямитесь, дополнительно напрягая ягодицы.

Отведение ног

Упражнение хорошо нагрузит средние ягодичные мышцы.

Зацепите резинку невысоко от пола, повернитесь боком и наденьте петлю на дальнюю от опоры ногу. Отводите бедро в сторону и возвращайте обратно. Следите, чтобы корпус не перекашивало в сторону. Повторите равное количество раз с обеих ног.

Повороты корпуса

Суперупражнение для мышц корпуса.

Зацепите резинку примерно на уровне вашей груди. Отойдите от опоры, растягивая эспандер, возьмитесь за петлю обеими руками и вытяните их вперёд перед грудью. Поставьте ноги на ширине плеч, напрягите пресс.

Не сгибая рук, поверните корпус в сторону опоры, ослабляя натяжение резинки, а затем отвернитесь в другую сторону. Представьте, что рисуете прямыми руками линию перед грудью. Когда закончите подход, развернитесь другим боком к опоре и повторите то же самое.

Сгибания на бицепс

Наступите на ленту ногами, поставьте стопы на ширине плеч или чуть уже. Возьмитесь за резинку обратным хватом на ширине плеч. Сгибайте локти и выпрямляйте их.

Разгибания на трицепс

Наступите на эспандер, поставьте ноги на ширине бёдер и возьмитесь за другой конец эспандера узким хватом. Вытяните руки над головой, растягивая эспандер. Резинка при этом должна оказаться у вас за спиной.

Сгибайте руки в локтях, опуская кисти за спину, и возвращайте обратно.

Как часто выполнять тренировку с резинкой

Для начала попробуйте устраивать две силовых тренировки в неделю. Через 1–2 недели увеличьте количество сессий до трёх с обязательным днём отдыха между занятиями.

Если решили делать сплиты, можете заниматься как два, так и четыре раза в неделю в зависимости от того, успеваете ли вы восстановиться.

Если выбираете круговой интервальный формат, можете заниматься чаще — от 3 до 5 раз в неделю в зависимости от наличия свободного времени и самочувствия.

Читайте также 🧐

Suunto 7 — Спортуване със Suunto

Тренировка с музика

С Suunto 7 имате достъп до вашата музика и друго аудио по време на спорт – дори и с ръкавици или в мокри условия.

Автоматични функции за контрол на медиите
Отворете функциите за контрол на медиите по време на тренировка
Спиране на пауза и пропускане на записи с бутони
Слушайте музика без телефона си

Автоматични функции за контрол на медиите

Ако започнете да възпроизвеждате музика от телефона си по време на тренировка, функциите за контрол на медиите могат да се появят в горната част на изгледите ви за тренировки.

За да излезете от изгледа за контрол на медиите, плъзнете надясно.

Управление на функциите за контрол на медиите

Отворете функциите за контрол на медиите по време на тренировка

Ако трябва да направите пауза или да пропуснете записи по време на тренировка, първо трябва да напуснете приложението Suunto Wear, след което да отворите функциите за контрол на медиите.

Като използвате бутон за пряк път, това е лесно дори и с ръкавици или при мокри условия:

  1. Натиснете бутона за включване, за да напуснете приложението Suunto Wear по време на тренировка.
  1. Докато сте на циферблата на часовника, натиснете средния бутон, за да отворите изгледа за контрол на медиите.
  1. Настройте музиката си, както искате. Можете да използвате докосване или бутони.
  1. Натиснете отново бутона за включване, за да отидете на циферблата на часовника.
  2. Натиснете горния десен бутон, за да се върнете към записа на вашата тренировка.

бележка:

Упражнението ви продължава да се записва, дори ако напуснете приложението Suunto Wear.

Спиране на пауза и пропускане на записи с бутони

Приложението за функциите за контрол на медиите поддържа използването на бутони в допълнение към жестове за докосване. С бутоните можете да контролирате музиката си, дори ако ръцете ви са изпотени или имате ръкавици.

Спиране на пауза и възпроизвеждане
Натиснете средния бутон, за да направите пауза, натиснете отново, за да възпроизведете.

Следваща песен
Натиснете горния десен бутон.

Предишна песен
Натиснете долния десен бутон.

В ЕАО прошла тренировка с выполнением пусков ракетных комплексов «Искандер»

https://ria.ru/20211006/iskander-1753273380.html

В ЕАО прошла тренировка с выполнением пусков ракетных комплексов «Искандер»

В ЕАО прошла тренировка с выполнением пусков ракетных комплексов «Искандер» — РИА Новости, 06. 10.2021

В ЕАО прошла тренировка с выполнением пусков ракетных комплексов «Искандер»

Ракетный комплекс «Искандер» опробовали на практике на полигонах Еврейской автономной области (ЕАО), сообщает пресс-служба Восточного военного округа. РИА Новости, 06.10.2021

2021-10-06T07:03

2021-10-06T07:03

2021-10-06T07:03

безопасность

/html/head/meta[@name=’og:title’]/@content

/html/head/meta[@name=’og:description’]/@content

https://cdnn21.img.ria.ru/images/07e4/03/1a/1569169873_0:160:3072:1888_1920x0_80_0_0_00d4b56ae3d65220a7d8d86d35ec2407.jpg

ХАБАРОВСК, 6 окт — РИА Новости. Ракетный комплекс «Искандер» опробовали на практике на полигонах Еврейской автономной области (ЕАО), сообщает пресс-служба Восточного военного округа.По данным ВВО, личный состав расчетов отработал развертывание комплексов, перегрузку ракеты с транспортно-заряжающей машины на пусковую установку. Затем приступили к электронным (учебным) ракетным пускам. Кроме того, командование проверило навыки командиров разного уровня по управлению подразделениями. Отмечается, что в тренировках было задействовано 100% личного состава ракетного соединения ВВО автономии.

https://radiosputnik.ria.ru/20210913/ucheniya-1749903286.html

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

2021

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

Новости

ru-RU

https://ria.ru/docs/about/copyright.html

https://xn--c1acbl2abdlkab1og.xn--p1ai/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

https://cdnn21.img.ria.ru/images/07e4/03/1a/1569169873_171:0:2902:2048_1920x0_80_0_0_47d2473760a60d630e2f46ff348fbf11.jpg

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og. xn--p1ai/awards/

РИА Новости

[email protected]

7 495 645-6601

ФГУП МИА «Россия сегодня»

https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/

безопасность

В ЕАО прошла тренировка с выполнением пусков ракетных комплексов «Искандер»

ХАБАРОВСК, 6 окт — РИА Новости. Ракетный комплекс «Искандер» опробовали на практике на полигонах Еврейской автономной области (ЕАО), сообщает пресс-служба Восточного военного округа.

«В ракетном соединении ВВО, дислоцированном в ЕАО, состоялась практическая тренировка с выполнением электронных пусков из оперативно-тактических ракетных комплексов «Искандер». Военнослужащие совершили марш-бросок и преодолели зараженный участок местности, отразили нападение условной диверсионно-разведывательной группы», — информирует округ.

По данным ВВО, личный состав расчетов отработал развертывание комплексов, перегрузку ракеты с транспортно-заряжающей машины на пусковую установку. Затем приступили к электронным (учебным) ракетным пускам. Кроме того, командование проверило навыки командиров разного уровня по управлению подразделениями.

Отмечается, что в тренировках было задействовано 100% личного состава ракетного соединения ВВО автономии.

13 сентября, 18:18В России»Искандеры-М» уничтожили штаб условного противника на учениях «Запад-2021»

Бесплатная outdoor — тренировка с профессионалами WTC Fitness

25 мая в 17:30 в парке «Красная Пресня» у вас есть уникальная возможность абсолютно бесплатно потренироваться на свежем воздухе с профессиональными тренерами WTC Fitness.


Спорт – важная часть нашей жизни и незаменимая составляющая нашего здоровья. Outdoor — тренировки (или занятия на свежем воздухе) — это не только новые интересные упражнения, яркий румянец, отличное настроение и высокая продуктивность на весь день, но и залог физического и психического здоровья. В процессе тренировки на свежем воздухе активизируется кровоток и дыхание, легкие получают стимул к работе, ускоряются процессы обмена веществ, кровь дополнительно насыщается кислородом. Солнечная погода улучшает настроение и способствует получению легкого загара и природного витамина D. Помимо этого появляется заряд бодрости, улучшается концентрация и уровень производительности, психоэмоциональное состояние и качество сна, снижется уровень стресса, а восстановление проходит быстрее.


Бесплатная тренировка состоится в 17:30 в парке «Красная Пресня». Место сбора — у Сцены в Парке.


Программа:


  • 17:30 — Сбор гостей. Приветствие, перфоманс.


  • 17:45 — «Танцуют все!» — танцевальный мастер-класс (тренер групповых программ Дмитрий Алдошкин)


  • 18:00 — «На здоровье!» — комплекс силовых упражнений (тренер групповых программ Ольга Кочетова)


  • 18:30 — «Гармония жизни» — йога на свежем воздухе (тренер групповых программ Оксана Крестина)


Все активные участники тренировки получат памятные призы и подарки.


Вход свободный!


Подробную информацию можно узнать по телефону +7 (495) 258 22 00 или на сайте wtcfitness.ru


Присоединяйтесь к тренировкам на свежем воздухе! Расписание регулярных outdoor — тренировок будет доступно на сайте WTC Fitness с 1 июня.

Персональные тренировки с тренером | THE BASE


Независимо от поставленной цели, все клиенты фитнес-клуба сталкиваются с выбором формата тренировки: самостоятельные занятия, групповые или индивидуальные с инструктором. Каждый из вариантов имеет свои преимущества. Но только работа с персональным тренером гарантирует наглядный результат за сравнительно короткое время.

Преимущества индивидуальных занятий


  • Индивидуальный подход.


Персональные тренировки – это целая программа трансформации режима питания, сна, физических нагрузок. Составление такого комплексного плана (с учетом ваших целей, состояния здоровья, уровня физической подготовки) входит в услуги персонального тренера. Он формирует основную программу занятия, но ваши пожелания тоже влияют на то, как проходит персональная тренировка. Индивидуальный график даёт вам возможность выбрать удобное время для посещения клуба.


  • Безопасность.


Занятия спортом без понимания основ техники выполнения упражнений могут привести к травмам. Личный тренер уделяет вам всё своё внимание, отмечает неточности, следит за техникой. Вводя в программу тренировок новые элементы, инструктор контролирует ваше самочувствие, корректирует нагрузку, страхует при выполнении сложных упражнений.




Хороший тренер всегда немного психолог. Если вы привыкли жалеть себя, недорабатывать на самостоятельных тренировках, выполняя упражнения вполсилы, изменить фигуру или улучшить здоровье точно не получится. Важность персонального тренера состоит в том, чтобы суметь найти подход к конкретному человеку, подобрать стимул, который заставит двигаться к желаемому результату. Поскольку персональная тренировка с тренером будет дороже других вариантов, вам не захочется прогуливать, теряя деньги. Это станет хорошей мотивацией заниматься регулярно.


  • Оценка результатов.


Занятия с персональным тренером подразумевают профессиональную оценку достигнутого прогресса. По итогам оценки заменяются элементы или вся программа тренировок, повышается или снижается нагрузка. Для максимальной объективности проводят специальные тесты, которые показывают изменения ваших физических параметров: гибкости, координации, силовой выносливости.

Кому необходим личный инструктор


Занятия с личным тренером подходят абсолютно всем, кто хочет заниматься спортом, не рискуя своим здоровьем. Особенно полезны такие тренировки следующим категориям посетителей фитнес-клуба.




Чтобы понять, какие процессы происходят в организме во время физических нагрузок, и поставить правильную технику выполнения упражнений, на первых порах обязательна работа с персональным тренером.


  • Спортсменам при подготовке к соревнованиям.


Программа, составленная и контролируемая специалистом, позволит добиться максимального результата.


  • Беременным и женщинам в послеродовой период.


В это время тренироваться самостоятельно может быть опасно для здоровья, даже если вы уже опытный посетитель фитнес-клуба. Занятия с тренером один на один помогут подобрать щадящую, но эффективную нагрузку.


  • Тем, кто реабилитируется после травмы.


Индивидуальная программа поможет восстановить прежнюю физическую форму, а может быть, даже улучшить её.




Персональные тренировки нужны, чтобы мотивировать начинающих спортсменов на здоровый, подвижный образ жизни.


  • Пожилым людям.


В таком возрасте требуется внимательный подход к тренировкам, чтобы отрегулировать нагрузку на сердце и суставы.


Советы для начинающих


  • Предварительно пообщайтесь с несколькими инструкторами, задайте интересующие вас вопросы, выберите того, с кем вам будет наиболее комфортно во время тренировок.


  • Чётко обозначьте цель: нужно ли вам похудеть, накачать мышцы, поддержать текущую форму.


В клубе THE BASE Fitness доступны персональные тренировки по различным спортивным направлениям. Выбрав студию, вы можете записаться к любому из понравившихся тренеров.


Занятия единоборствами улучшат общую физическую форму, разовьют выносливость и ловкость. Тренировка на беговой дорожке поставит правильную технику бега, укрепит сердечно-сосудистую и дыхательную системы, сожжёт лишние калории.


Программу для набора мышечной массы также эффективнее всего составлять в тандеме с личным инструктором. Так вы грамотно укрепите и разовьёте мышцы, не навредив позвоночнику и суставам.


Очень популярны индивидуальные тренировки по йоге, стретчингу, пилатесу. Тщательное растяжение мышц и связок в статичных упражнениях, концентрация на правильном дыхании делают тело гибким, выравнивают осанку и укрепляют мышцы.


  • Новичкам рекомендуются тренировки три раза в неделю под персональным наблюдением. Занимайтесь в заданном режиме в течение нескольких недель, а при переходе на самостоятельный тренинг регулярно обращайтесь к инструктору для оценки ваших результатов и контроля техники.

Запишитесь на персональную тренировку в THE BASE

  • ЕДИНОБОРСТВА

  • ЖИРОСЖИГАНИЕ

  • НАБОР МЫШЕЧНОЙ МАССЫ


В ОГВ(с) проведена тренировка с артиллеристами Росгвардии


  • 17 марта 2021, 16:27

Личный состав минометной батареи отряда специального назначения, выполняющего задачи в составе Объединенной группировки войск (сил) на Северном Кавказе, в течении двух дней совершенствовал навыки стрельбы и управлению огнем на полигоне в Шелковском районе Чеченской Республики.  

По легенде тренировки, артиллеристы обеспечивали огневую поддержку действий подразделений в ходе проведения условной спецоперации. Военнослужащие совершили марш в заданный район, оборудовали огневые позиции и приступили к выполнению поставленных задач. 

Поступающие вводные от командования и сложные погодные условия потребовали от артиллеристов незаурядного мастерства, выдержки и четкости в действиях. Военнослужащие оперативно готовили расчеты для выполнения задач в быстро меняющейся обстановке, оборудовали огневые позиции, вели огонь полупрямой наводкой на дальности до двух километров с последующей сменой позиции, выполняли огневые задачи с закрытой огневой позиции на дальности до трех километров при сильном ветре в условиях отрицательных температур. 

Особое внимание в ходе тренировки было уделено вопросам слаженной работы артиллерийских корректировщиков с минометной батареей. По оценке командования, личный состав успешно выполнил все огневые задачи. 

«Результат зависит как от профессиональных навыков командиров, так и от действий всех военнослужащих батареи. Именно на полигоне, в условиях, максимально приближенных к реальным, нарабатывается практика, совершенствуется индивидуальный профессионализм и четкость действий в составе подразделения, от которых в итоге зависит успешное выполнение поставленной задачи», — отметил командир минометной батареи капитан Евгений К. 

Воинские части
5878

Пресс-служба Северо-Кавказского округа войск национальной гвардии Российской Федерации

В Новгородской и Псковской энергосистемах прошла общесистемная противоаварийная тренировка с применением дистанционного управления из диспетчерского центра Системного оператора

27 июля в энергосистемах Новгородской и Псковской областей прошла контрольная общесистемная противоаварийная тренировка по ликвидации нарушений нормального режима работы энергосистемы в условиях жаркой погоды с применением цифровой технологии дистанционного управления оборудованием подстанции 330 кВ из диспетчерского центра Системного оператора.

В тренировке приняли участие диспетчерский персонал Филиала Системного оператора Новгородское РДУ (осуществляет функции оперативно-диспетчерского управления объектами электроэнергетики на территории Новгородской и Псковской областей) и оперативный персонал филиала ПАО «ОГК-2» Псковская ГРЭС и Новгородского ПМЭС филиала «Россети ФСК» (ПАО «ФСК ЕЭС»).

Тренировка проводилась с целью отработки взаимодействия при ликвидации аварий в энергосистеме в условиях высоких температур наружного воздуха. В ходе мероприятия совершенствовались практические навыки диспетчерского, оперативного и дежурного персонала, оценивалась готовность участников к действиям по предотвращению развития и ликвидации нарушений нормального режима работы энергосистемы, проверялось выполнение регламентов обмена информацией. На тренировке также отрабатывалось производство необходимых для предотвращения развития аварии переключений оборудования подстанции (ПС) 330 кВ с использованием новой цифровой технологии дистанционного управления из диспетчерского центра Системного оператора.

По сценарию, разработанному специалистами Новгородского РДУ, аварийное отключение воздушной линии (ВЛ) 330 кВ по причине низовых пожаров по трассе ЛЭП, а также системы шин на ПС 330 кВ Старорусская из-за повреждения оборудования, привело к превышению наибольшего рабочего напряжения в сети 330 кВ энергосистемы Псковской области. Ситуацию осложнило аварийное отключение системы шин 330 кВ и одного энергоблока на Псковской ГРЭС, а также аварийное отключение действием защит распределительного устройства 330 кВ еще на одной ПС 330 кВ Псков с последующим срабатыванием устройств противоаварийной автоматики на отключение нагрузки потребителей. В зону условных отключений попали бытовые потребители и предприятия промышленности с совокупной величиной потребления около 30 МВт.

Результаты тренировки подтвердили готовность диспетчерского персонала Новгородского РДУ к эффективному взаимодействию с оперативным персоналом субъектов электроэнергетики при ликвидации нарушений нормального режима, а также готовность диспетчеров АО «СО ЕЭС» и оперативного персонала региональных энергокомпаний к обеспечению надежной работы энергосистемы Псковской области в условиях высоких температур наружного воздуха.

По итогам тренировки отмечен высокий уровень подготовки диспетчерского персонала Новгородского РДУ, продемонстрированный при ликвидации условной аварии с использованием дистанционного управления оборудованием из диспетчерского центра. Применение технологий дистанционного управления оборудованием энергообъектов входит в число ключевых направлений цифровизации электроэнергетики. Использование этой инновационной технологии повышает надежность работы Единой энергетической системы и качество управления ее электроэнергетическим режимом за счет сокращения времени производства оперативных переключений, повышения скорости реализации управляющих воздействий по изменению топологии электрической сети, минимизации «человеческого фактора» в процессе управления энергосистемой.

Джек Уилшир тренируется с «Арсеналом», но в настоящее время не планирует повторно подписывать контракт с клубом | Джек Уилшир

Джек Уилшир тренируется с «Арсеналом», поскольку его бывший клуб поддерживает его в его будущем в игре. 29-летний футболист был свободным агентом с тех пор, как его контракт с «Борнмутом» истек в конце прошлого сезона.

В прошлом месяце он провел короткое время в тренировках с командой Комо Серии В, рассказав о том, что у него нет предложений и о том, какое влияние это оказывает на его психическое здоровье. Затем менеджера «Арсенала» Микеля Артеты спросили, будет ли Уилшир снова в клубе тренироваться, и он ответил: «Дверь всегда открыта».

Сейчас Уилшир, сыгравший 197 матчей за «Арсенал» за 10 лет, тренируется преимущественно с игроками до 23 лет в клубном тренировочном центре «Лондон Колни». PA Media сообщает, что он будет время от времени присоединяться к основной команде и использовать возможность изучать подходы коучинга. Соглашение будет действовать до конца января.

«Вы должны верить в то, что мы хотим помочь Джеку подготовиться к следующему этапу, физически и морально», — сказал Артета официальному сайту клуба.«Он хочет снова получить свои тренерские значки, и мы готовы выполнить все его потребности. Это основная идея, и не более того.

«Я очень рад, что он вернулся. Мы поговорили с Джеком, и мы понимаем его потребности, период, который он переживает, и я думаю, что все в клубе согласились, что это подходящий момент, чтобы помочь ему.

«Мы сели с ним и послушали, что он хотел сделать и на каком этапе он находится, и мы готовы сделать все, что в наших силах, чтобы помочь ему.Иногда он будет тренироваться с нами. Он будет поблизости. Он будет и дальше получать тренерские значки, которые ему очень интересны.

«(Мы будем) пытаться привести его в форму, постараемся донести его опыт до наших игроков, наших молодых игроков, нашей академии, и я думаю, что это так. иметь большое влияние ».

Говоря о потенциальной связи с Уилшером в прошлом месяце, Артета преуменьшил любые шансы на то, что полузащитник сборной Англии перейдет в клуб.

Джек Уилшир тренируется с «Арсеналом» в качестве клуба, демонстрируя поддержку будущего бывшего полузащитника | Новости футбола

Джек Уилшир тренируется с «Арсеналом», поскольку его бывший клуб поддерживает его в его будущем в игре.

29-летний футболист был свободным агентом с тех пор, как его контракт с «Борнмутом» истек в конце прошлого сезона.

В прошлом месяце он провел короткое время, тренируясь с командой Серии В Комо, рассказав о том, что у него нет предложений и о том, какое влияние это оказывает на его психическое здоровье.

Менеджера «Арсенала» Микеля Артеты спросили, будет ли Уилшир снова в клубе тренироваться, и он ответил: «Дверь всегда открыта».

Сейчас Уилшир, сыгравший за «Арсенал» 197 игр за 10 лет, тренируется преимущественно с молодежью до 23 лет в клубном тренировочном центре «Лондон Колни».

Изображение:
Уилшир играл вместе с Микелем Артетой в « Арсенале »

Информационное агентство PA понимает, что иногда он будет присоединяться к первой команде и использовать возможность изучить подходы коучинга в соглашении, которое будет действовать до конца января.

«Вы должны поверить в то, что мы хотим помочь Джеку подготовиться к следующему этапу, физически и морально», — сказал Артета официальному сайту клуба.

«Он хочет снова получить свои тренерские значки, и мы готовы выполнить все его потребности.Это основная идея, и не более того.

«Я очень рад его возвращению.

Используйте браузер Chrome для более доступного видеоплеера

Бывший полузащитник «Арсенала» Джек Уилшир подчеркивает важность разговора о психическом здоровье и о том, как общение с другими людьми помогло ему.

«Мы поговорили с Джеком и поняли, в каких нуждах он нуждается, о периоде, который он переживает, и я думаю, что все в клубе согласились, что это подходящий момент, чтобы помочь ему.

«Мы сели с ним и послушали, что он хотел сделать и на каком этапе он находится, и мы готовы сделать все, что в наших силах, чтобы помочь ему.

« Иногда он будет тренироваться с нами. Он будет поблизости. Он собирается и дальше получать тренерские значки, которые ему очень интересны.

«(Мы будем) пытаться привести его в форму, постараемся передать его опыт нашим игрокам, нашим молодым игрокам, нашей академии, и я думаю, что это так. иметь большое влияние.»

Говоря о потенциальном сотрудничестве с Уилшером в прошлом месяце, Артета преуменьшил любые шансы его подписания в клуб.

границ | Ускорение обучения глубоких нейронных сетей с помощью резистивных коммутационных устройств: соображения проектирования

Введение

Глубокие нейронные сети

(DNN; LeCun et al., 2015) продемонстрировали значительный коммерческий успех в последние годы с производительностью, превышающей сложные предшествующие методы речи (Hinton et al., 2012) и распознавание объектов (Крижевский и др., 2012; Симонян, Зиссерман, 2015; Szegedy et al., 2015). Однако обучение DNN — это чрезвычайно вычислительно-ресурсоемкая задача, требующая огромных вычислительных ресурсов и огромного времени на обучение, что препятствует их дальнейшему применению. Например, относительное улучшение на 70% было продемонстрировано для DNN с 1 миллиардом соединений, которая была обучена на кластере с 1000 машин в течение трех дней (Le et al., 2012). Обучение DNN обычно основывается на алгоритме обратного распространения ошибки, который по своей сути является локальным и параллельным (Rumelhart et al., 1986). Различные аппаратные подходы для ускорения обучения DNN, которые используют эту локальность и параллелизм, были исследованы с различным уровнем успеха, начиная с начала 90-х годов (Arima et al., 1991; Lehmann et al., 1993) и заканчивая текущими разработками с GPU (Coates et al., 2013; Wu et al., 2015), FPGA (Gupta et al., 2015) или специально разработанные ASIC (Chen Y. et al., 2014). Дальнейшее ускорение возможно за счет полного использования локальности и параллелизма алгоритма. Для полностью подключенного слоя DNN, который отображает N нейронов на N нейронов, можно достичь значительного ускорения за счет минимизации перемещения данных с использованием локального хранения и обработки значений весов на одном и том же узле и соединения узлов в массив N × N систолический массив (Lehmann et al., 1993), где может поместиться вся DNN. Вместо обычной временной сложности O ( N 2 ) проблема может быть сведена к постоянному времени O (1) независимо от размера массива . Однако размер решаемой проблемы ограничен числом узлов в массиве, который сложно масштабировать до миллиардов даже с использованием самых передовых технологий CMOS.

Новые концепции наноэлектронных устройств, основанные на технологиях энергонезависимой памяти (NVM), такие как память с фазовым переходом (PCM; Jackson et al., 2013; Kuzum et al., 2013) и резистивной оперативной памяти (RRAM; Jo et al., 2010; Indiveri et al., 2013; Kuzum et al., 2013; Yu et al., 2013; Saïghi et al., 2015). , были недавно исследованы для реализации нейронных сетей с правилом обучения, основанным на пластичности, зависящей от времени всплеска (STDP), наблюдаемой в биологических системах (Bi and Poo, 1998). Лишь недавно была рассмотрена их реализация для ускорения обучения DNN с использованием алгоритма обратного распространения ошибки (Burr et al., 2014; Li et al., 2014; Сюй и др., 2014; Prezioso et al., 2015; Soudry et al., 2015) с сообщенными факторами ускорения от 27 × (Burr et al., 2015) до 900 × (Xu et al., 2014) и даже 2140 × (Seo et al., 2015) и значительным снижением по мощности и площади. Все эти восходящие подходы к использованию ранее разработанных технологий памяти выглядят очень многообещающими, однако предполагаемые факторы ускорения ограничены спецификациями устройств, присущими их применению в качестве ячеек NVM. Характеристики устройства, которые обычно считаются полезными или несущественными для приложений памяти, такие как высокое соотношение включения / выключения, цифровое побитовое хранилище и асимметричные операции установки и сброса, становятся ограничениями для ускорения обучения DNN (Burr et al., 2015; Ю. и др., 2015). Эти неидеальные характеристики устройства потенциально могут быть компенсированы правильной конструкцией периферийных схем и всей системы, но только частично и за счет значительного увеличения рабочего времени (Burr et al., 2015). Напротив, здесь мы предлагаем нисходящий подход, при котором максимальное ускорение обучения DNN достигается за счет проектирования системы и схемы КМОП, которые предъявляют особые требования к резистивным устройствам. Мы предлагаем и анализируем концепцию устройств Resistive Processing Unit (RPU), которые могут одновременно хранить и обрабатывать веса и потенциально масштабируемы до миллиардов узлов с помощью литейных технологий CMOS.В отличие от других подходов в литературе (Burr et al., 2014, 2015; Li et al., 2014; Xu et al., 2014; Prezioso et al., 2015; Seo et al., 2015; Soudry et al. , 2015; Yu et al., 2015) предлагаемые окончательные характеристики устройства, полученные в результате этого анализа, позволяют одному устройству выполнять все операции, требуемые алгоритмом, без дополнительных схемных компонентов. Наши оценки показывают, что коэффициенты ускорения, близкие к 30 000 ×, достижимы на одном кристалле с реалистичными ограничениями по мощности и площади.

Материалы и методы

Определение концепции устройства RPU

Алгоритм обратного распространения ошибки состоит из трех циклов, прямого, обратного и обновления веса, которые повторяются много раз до тех пор, пока не будет выполнен критерий сходимости. Прямые и обратные циклы в основном включают вычисление векторно-матричного умножения в прямом и обратном направлениях. Эта операция может быть выполнена на двумерной решетке двухполюсных резистивных устройств, как это было предложено более 50 лет назад (Steinbuch, 1961).В прямом цикле сохраненные значения проводимости в матрице крестовин образуют матрицу, тогда как входной вектор передается в виде импульсов напряжения через каждую из входных строк. В обратном цикле, когда импульсы напряжения поступают из столбцов в качестве входных данных, произведение вектор-матрица вычисляется при транспонировании матрицы. Эти операции достигают требуемой временной сложности O (1), но только для двух из трех циклов алгоритма обучения.

В отличие от прямого и обратного циклов, реализация обновления веса на двумерном матричном массиве резистивных устройств локально и параллельно, независимо от размера массива, является сложной задачей.Это требует вычисления внешнего произведения вектор-вектор, которое состоит из операции умножения и инкрементного обновления веса, которое должно выполняться локально в каждой точке пересечения, как показано на рисунке 1A. Соответствующее правило обновления обычно выражается как (Rumelhart et al., 1986).

wij ← wij + ηxiδj (1)

, где w ij представляет значение веса для строки i и столбца j th (для простоты индекс слоя опущен) и x i — активность входного нейрона, δ j — ошибка, вычисленная выходным нейроном, а η — глобальная скорость обучения.

Рис. 1. (A) Схема правила обновления исходного веса уравнения (1), выполняемого в каждой точке пересечения. (B) Схема правила стохастического обновления уравнения (2), которое использует простую операцию И в каждой точке пересечения. Импульсная схема, которая позволяет реализовать правило стохастических обновлений устройствами RPU для изменений проводимости (C), вверх и (D), вниз.

Для реализации локального и параллельного обновления на массиве двухтерминальных устройств, которые могут выполнять как хранение, так и обработку (RPU) весовых коэффициентов, мы сначала предлагаем значительно упростить саму операцию умножения с помощью методов стохастических вычислений (Gaines, 1967 ; Поппельбаум и др., 1967; Алаги и Хейс, 2013; Меркель и Кудитипуди, 2014). Было показано, что при использовании двух стохастических потоков операция умножения может быть сведена к простой операции AND (Gaines, 1967; Poppelbaum et al., 1967; Alaghi and Hayes, 2013). На рисунке 1B показано правило стохастического обновления, в котором числа, закодированные из нейронов ( x i и δ j ), преобразуются в стохастические потоки битов с использованием стохастических трансляторов (STR).Затем они отправляются в решетку, где каждое устройство RPU немного меняет свою проводимость ( g, ij ), когда биты из x i и δ j совпадают. В этой схеме мы можем записать правило обновления следующим образом.

wij ← wij ± Δwmin∑n = 1BLAin∧Bjn (2)

, где BL — длина стохастического битового потока на выходе STR, который используется во время цикла обновления, Δ w min — это изменение значения веса из-за единственного события совпадения, Ain и Bjn — случайные величины, которые характеризуются процессом Бернулли, а верхний индекс n представляет позицию бита в пробной последовательности.Вероятности того, что Ain и Bjn равны единице, задаются формулами Cx i и j , соответственно, где C — коэффициент усиления в STR.

Одна из возможных импульсных схем, которая включает правило стохастического обновления уравнения (2), представлена ​​на рисунке 1C. Импульсы напряжения с положительной и отрицательной амплитудами отправляются из соответствующих STR в строках ( A i ) и столбцах ( B j ) соответственно.В отличие от числа с плавающей запятой, закодированного в двоичный поток, соответствующее число, переведенное в стохастический поток, представлено всей совокупностью таких импульсов. Чтобы двухконтактное устройство RPU могло различать события совпадения в точке пересечения, его значение проводимости не должно существенно изменяться, когда амплитуда одиночного импульса составляет половину коммутируемого напряжения устройства ( В S ) . Однако, когда два импульса совпадают и устройство RPU видит полное напряжение ( В, S ), проводимость должна измениться на ненулевую величину Δ г мин .Параметр Δ g min пропорционален Δ w min через коэффициент усиления, определяемый периферийной схемой. Чтобы обеспечить изменение проводимости как в сторону увеличения, так и в сторону уменьшения, полярность импульсов может быть переключена во время цикла обновления, как показано на рисунке 1D. Знак умножения определяется полярностью импульсов, которые используются во время цикла обновления. Следовательно, для случаев x i > 0 знаковое умножение может быть выполнено путем заполнения строк, соответствующих x i > 0 во время циклов вверх и вниз, в то время как столбцы заполняются выборочно либо в цикл вверх или вниз в зависимости от знака δ j .Аналогичную операцию можно повторить, если для некоторых строк существуют отрицательные значения ( x и <0). Предлагаемая импульсная схема позволяет всем устройствам RPU в массиве работать параллельно и выполнять операцию умножения локально, просто полагаясь на статистику событий совпадения, таким образом достигая временной сложности O (1) для цикла обновления веса алгоритм обучения.

Результаты

Обучение сети с массивом RPU с использованием правила стохастического обновления

Чтобы проверить правильность этого подхода, мы сравниваем точность классификации, достигнутую с помощью глубокой нейронной сети, состоящей из полностью связанных слоев с 784, 256, 128 и 10 нейронами соответственно.Эта сеть обучается с использованием стандартного обучающего набора данных MNIST из 60 000 примеров изображений рукописных цифр (LeCun et al., 1998) с использованием целевой функции кросс-энтропии и алгоритма обратного распространения ошибки (Rumelhart et al., 1986). Необработанные значения пикселей каждого изображения 28 × 28 пикселей задаются в качестве входных данных, в то время как функции активации логистической сигмоиды и softmax используются в скрытых и выходных слоях соответственно. Температурный параметр для обеих активационных функций принят равным единице. На рисунке 2 показан набор кривых ошибок классификации для набора тестовых данных MNIST из 10 000 изображений.Кривая, отмеченная открытыми кружками на рисунке 2A, соответствует базовой модели, в которой сеть обучается с использованием обычного правила обновления, определенного в уравнении (1), с операцией умножения с плавающей запятой. Здесь размер мини-партии, равный единице, выбирается на протяжении следующих экспериментов. Обучение выполняется повторно для всех 60 000 изображений в наборе обучающих данных, что составляет одну тренировочную эпоху. Используются скорости обучения η = 0,01, 0,005 и 0,0025 для эпох 0–10, 11–20 и 21–30 соответственно.Базовая модель достигает ошибки классификации 2,0% на тестовых данных за 30 эпох.

Рисунок 2. Ошибка теста DNN с набором данных MNIST . Белые белые кружки соответствуют базовой модели с обучением, выполненным с использованием обычного правила обновления уравнения (1). (A) Строки, отмеченные как 1, 2 и 3, соответствуют стохастической модели уравнения (2) с длинами стохастических битов BL = 1, 2 и 10, соответственно. (B) Линии, отмеченные как 1, 2 и 3, соответствуют стохастической модели с BL = 10 и коэффициентом нелинейности k = 0.5, 0,4 и 0,1 соответственно. (C) Иллюстрация различных нелинейных откликов устройства RPU с k = 0, 0,5 и 1.

Чтобы сделать справедливое сравнение между базовой моделью и стохастической моделью, в которой обучение использует правило стохастического обновления уравнения (2), скорости обучения должны совпадать. В самом общем виде среднее изменение значения веса для стохастической модели может быть записано как.

𝔼 (Δwij) = BLΔwminC2xiδj (3)

Следовательно, скорость обучения для стохастической модели контролируется тремя параметрами: BL , Δ w min и C , которые должны быть скорректированы в соответствии со скоростью обучения, которые используются в базовой модели.

Хотя правило стохастического обновления позволяет заменить операцию умножения простой операцией И, результат операции, однако, уже не точный, а вероятностный со стандартным отклонением к среднему отношению, которое масштабируется с 1 ∕ BL. Увеличение длины стохастического битового потока BL уменьшило бы ошибку, но, в свою очередь, увеличило бы время обновления. Чтобы найти приемлемый диапазон значений BL , который позволяет достичь ошибок классификации, аналогичных базовой модели, мы провели обучение с использованием различных значений BL , задав Δ w min = η ∕ BL и C = 1, чтобы соответствовать скорости обучения, используемой для базовой модели, как обсуждалось выше.Как показано на рисунке 2A, BL всего 10 достаточно для того, чтобы стохастическая модель стала неотличимой от базовой модели.

Кроме того, для правила стохастического обновления изменение значения веса для одного цикла обновления ограничено BL Δ w min , и это условие может произойти, если вероятности генерации импульсов из STR ( Cx i и j ) близки к единице или больше.Эффект этого ограничения при обновлении веса также принимается во внимание в нашем моделировании и не ухудшает производительность, как показано на рис. 2A для BL размером всего 10.

Чтобы определить, насколько сильная нелинейность в характеристиках переключения устройств требуется для того, чтобы алгоритм сходился к ошибкам классификации, сопоставимым с базовой моделью, коэффициент нелинейности варьируется, как показано на рисунке 2B. Коэффициент нелинейности определяется как отношение двух изменений проводимости при половинном и полном напряжении как k = Δg (VS ∕ 2) Δg (VS).Как показано на рисунке 2C, значения k ≈ 1 соответствуют нелинейному отклику насыщающего типа, когда k = 0,5, отклик является линейным, как обычно считается для идеального мемристора (Chua, 1971; Strukov et al. , 2008), а значения k ≈ 0 соответствуют нелинейному отклику выпрямительного типа. Как показано на рисунке 2B, алгоритм не может сходиться для линейного отклика, однако коэффициент нелинейности k ниже 0,1 достаточно для достижения ошибок классификации, сравнимых с базовой моделью.

Эти результаты подтверждают, что, хотя обновления в стохастической модели являются вероятностными, ошибки классификации могут стать неотличимыми от ошибок, достигнутых с помощью базовой модели. Реализация правила стохастического обновления на массиве аналоговых устройств RPU с нелинейными характеристиками переключения эффективно использует локальность и параллелизм алгоритма. В результате время обновления становится независимым от размера массива и является постоянным значением, пропорциональным BL , таким образом достигая требуемой временной сложности O (1).

Получение технических характеристик устройства RPU

Различные материалы, физические механизмы и концепции устройств были проанализированы с точки зрения их потенциальной реализации в виде массивов поперечных полос для обучения нейронной сети (Burr et al., 2014, 2015; Li et al., 2014; Xu et al., 2014; Prezioso et al., 2015; Soudry et al., 2015). Эти технологии изначально были разработаны для приложений памяти класса хранения. Однако заранее не ясно, приведут ли внутренние ограничения этих технологий к реализации предлагаемой концепции RPU к значительному ускорению или, наоборот, могут ограничить производительность.Например, устройства PCM могут увеличивать проводимость только во время обучения, что приводит к насыщению сети после ряда обновлений. Эта проблема может быть смягчена периодическим последовательным сбросом весов, однако с ценой увеличения времени обучения (Burr et al., 2014, 2015), поскольку это нарушает временную сложность O (1). Чтобы определить характеристики устройства, необходимые для достижения максимального ускорения при достижении временной сложности O (1), мы провели серию тренингов, представленных на Рисунке 3.Каждая цифра соответствует определенному «стресс-тесту», при котором один параметр сканируется, а все остальные фиксируются, что позволяет исследовать приемлемые параметры устройства RPU, которые алгоритм может выдержать без значительного штрафа за ошибки. Это включает в себя изменения в характеристиках переключения устройства RPU, такие как инкрементное изменение проводимости из-за единственного совпадения, асимметрия в изменениях проводимости вверх и вниз, настраиваемый диапазон значений проводимости и различные типы шума в системе.Для всех стохастических моделей, показанных на рисунке 3, используется k = 0 и BL = 10. Чтобы соответствовать скорости обучения, используемой для базовой модели, x i и δ j переводятся в стохастические потоки с C , определяемым как C = η ∕ (BL Δwmin). Это позволяет средней скорости обучения быть такой же, как в базовой модели.

Рисунок 3. Ошибка теста DNN с набором данных MNIST .Белые белые кружки соответствуют базовой модели, в которой обучение выполняется с использованием обычного правила обновления уравнения (1). Все сплошные линии предполагают стохастическую модель с BL = 10 и k = 0. (A) Линии 1, 2 и 3 соответствуют стохастической модели с Δ w min = 0,1, 0,032 и 0,01 соответственно. Все кривые в (B – I) используют Δ w min = 0,001. (B) Строки 1, 2 и 3 соответствуют стохастической модели с весами, ограниченными до 0.1, 0,2 и 0,3 соответственно. (C) Строки 1, 2 и 3 соответствуют стохастической модели с вариацией от совпадения к совпадению в Δ w min 1000, 320 и 100% соответственно. (D) Строки 1, 2 и 3 соответствуют стохастической модели с изменением Δ w min , равным 1000, 320 и 100%, от устройства к устройству, соответственно. (E) Строки 1, 2 и 3 соответствуют стохастической модели с вариацией от устройства к устройству в верхней и нижней границах 1000, 320 и 100% соответственно.Все сплошные линии в E имеют среднее значение 1,0 для верхней границы (и -1,0 для нижней границы). (F) Строки 1, 2 и 3 соответствуют стохастической модели, в которой понижательные изменения слабее на 0,5, 0,75 и 0,9 соответственно. (G) Строки 1, 2 и 3 соответствуют стохастической модели, в которой изменения вверх слабее на 0,5, 0,75 и 0,9 соответственно. (H) Строки 1, 2 и 3 соответствуют стохастической модели с вариациями от устройства к устройству в повышении и понижении на 40, 20 и 6% соответственно. (I) Строки 1, 2 и 3 соответствуют стохастической модели с шумом при векторно-матричном умножении 100, 60 и 10%, соответственно, нормированным на температуру функции активации, равную единице.

В идеале устройство RPU должно быть аналоговым, т.е. изменение проводимости из-за единственного совпадения Δ g мин должно быть произвольно малым, таким образом, непрерывно охватывая все допустимые значения проводимости. Для определения наибольшего допустимого Δ g мин из-за единственного события совпадения, которое не приводит к значительному штрафу за ошибку, параметр Δ w мин сканируется между 0.32 и 0,00032, в то время как другие параметры фиксированы, как показано на рисунке 3A. В то время как для большого Δ w min сходимость плохая, поскольку она контролирует стандартное отклонение правила стохастического обновления, для меньшего Δ w min результаты приближаются к базовой модели. Δ w min меньше 0,01 дает ошибку классификации 2,3% в конце 30 -й эпохи , что составляет всего 0.На 3% выше 2,0% ошибки классификации базовой модели.

Чтобы определить минимальные и максимальные значения проводимости, которые устройства RPU должны поддерживать для сходимости алгоритма, рассчитывается набор обучающих кривых, как показано на рисунке 3B. Каждая кривая определяется диапазоном весов, где абсолютное значение весов | w ij | удерживается ниже определенной границы, которая варьируется от 0,1 до 3. Остальные параметры идентичны показанным на рисунке 3A, в то время как Δ w min принимается равным 0.001, чтобы гарантировать, что результаты в основном определяются выбором диапазона веса. Модель с весами | w ij | ограничение на значения больше 0,3 приводит к приемлемым критериям штрафа за ошибку 0,3%, как определено выше. Поскольку параметр Δ g min g ij ) пропорционален Δ w min w ij ) через усиление коэффициент, определяемый периферийной схемой, количество совпадений, необходимых для перемещения устройства RPU от минимального до максимального значения проводимости, может быть получено как (max ( g ij ) — min ( g ij )) ∕ Δ g min = (max ( w ij ) — min ( w ij )) Δ w min .Это дает более низкую оценку количества состояний, которые необходимо сохранить на устройстве RPU, как 600.

Для определения допуска алгоритма к изменению инкрементного изменения проводимости из-за одного события совпадения Δ g мин. , Δ w мин. значение, используемое для каждого события совпадения считается случайной величиной с гауссовым распределением. Соответствующие результаты показаны на рисунке 3C, где стандартное отклонение варьируется, в то время как среднее значение Δ w min установлено равным 0.001. В наших моделях допускается наличие совпадений, которые приводят к изменению в противоположном направлении, если случайное значение меньше -1 (или -100%). Как видно, алгоритм устойчив к случайности изменения веса для каждого случая совпадения, а модели со стандартным отклонением ниже 150% от среднего значения достигают приемлемого штрафа за ошибку 0,3%.

Для стохастических моделей, показанных на рисунке 3D, вводится еще одна случайность, изменение инкрементного изменения проводимости от устройства к устройству из-за единственного события совпадения Δ g min .В этом случае Δ w min , используемое для каждого устройства RPU, выбирается из распределения Гаусса в начале обучения, а затем это фиксированное значение используется на протяжении всего обучения для каждого события совпадения. Для всех стохастических моделей на рисунке 3D используется среднее значение Δ w min , равное 0,001, в то время как стандартное отклонение варьируется для каждой модели. В наших моделях разрешено иметь некоторые устройства, которые выполняют обновления в обратном направлении на протяжении всего обучения, если случайное значение меньше -1 (или -100%).Результаты показывают, что алгоритм также устойчив к вариациям от устройства к устройству, и приемлемый штраф за ошибку может быть достигнут для моделей со стандартным отклонением до 110% от среднего значения.

Чтобы определить допуск алгоритма к изменению от устройства к устройству в верхней и нижней границах значения проводимости, мы предположили, что верхняя и нижняя границы различны для каждого устройства RPU для моделей на рисунке 3E. Границы, используемые для каждого устройства RPU, выбираются из распределения Гаусса в начале обучения и используются на протяжении всего обучения.Для всех стохастических моделей на рисунке 3E среднее значение 1,0 для верхней границы (и -1,0 для нижней границы) используется, чтобы гарантировать, что результаты в основном определяются изменением от устройства к устройству в верхней и нижней границах. Отметим, что по мере того, как стандартное отклонение становится достаточно большим, некоторые устройства могут кодировать только положительные или только отрицательные значения веса. Более того, некоторые устройства могут даже иметь верхнюю границу, которая меньше нижней границы, и предполагается, что эти устройства находятся в стеке в средней точке и не отвечают на обновления.С учетом всех этих вкладов рисунок 3E показывает, что алгоритм устойчив к вариациям в границах, а модели со стандартным отклонением до 80% от среднего могут достигать приемлемого штрафа за ошибку 0,3%.

Изготовленные устройства RPU могут также показывать разную величину изменения значения проводимости из-за положительных (Δgmin +) и отрицательных (Δgmin-) импульсов, как показано на рисунках 1C, D. Чтобы определить, насколько асимметрия между изменениями вверх и вниз может выдержать алгоритм, изменения веса вверх (Δwmin +) и вниз (Δwmin-) варьируются, как показано на рисунках 3F, G.В обоих случаях эта глобальная асимметрия считается однородной по всему массиву устройств RPU. Для каждой модели на Рисунке 3F Δwmin + фиксируется на 0,001, в то время как Δwmin- изменяется от 0,95 до 0,25 меньше, чем значение вверх. Точно так же на рисунке 3G показаны аналогичные результаты для Δwmin-, установленного на 0,001, в то время как Δwmin + варьируется. Результаты показывают, что изменения вверх и вниз должны быть значительно сбалансированы (10% по отношению друг к другу), чтобы стохастическая модель достигла приемлемого штрафа за ошибку 0,3%.Мы определяем пороговое значение по отношению к среднему значению, и поэтому в качестве допустимого порога используется дисбаланс в 5%. Мы отмечаем, что большие колебания, наблюдаемые на Рисунке 3G, но не на Рисунке 3F, немного удивляют. Происхождение неясно, но, по нашим предварительным расчетам, это не связано со стохастическим характером обновлений. Мы провели обучение с использованием умножения с плавающей запятой и члена дисбаланса, и все равно наблюдали аналогичное поведение.

Чтобы определить устойчивость алгоритма к изменению асимметрии от устройства к устройству, в отличие от глобальной асимметрии, рассматриваемой на рисунках 3F, G, кривые на рисунке 3H рассчитываются для различных значений стандартного отклонения Δwmin + / Δwmin-.Параметры Δwmin + и Δwmin- для каждого устройства RPU выбираются из гауссовского распределения в начале обучения, а затем используются на протяжении всего обучения для каждого события совпадения. Все модели предполагают, что среднее значение Δwmin + и Δwmin- равно 0,001. Стандартное отклонение Δwmin + / Δwmin- должно быть менее 6% от среднего значения для достижения приемлемого штрафа за ошибку 0,3%.

Аналоговые вычисления чувствительны к различным источникам шума, таким как тепловой шум, дробовой шум и т. Д., Которые являются аддитивными и могут быть смоделированы как один несмещенный гауссов шум.Влияние штрафа за шум во время цикла обновления веса уже рассмотрено на рисунках 3C – H. Чтобы оценить устойчивость алгоритма к шуму во время прямого и обратного циклов, мы добавили гауссовский шум к результатам векторно-матричного умножения с переменным стандартным отклонением. После вычисления результата векторно-матричного умножения к каждому элементу результирующего вектора добавляется независимый случайный шум. Для данных, показанных на рисунке 3I, используется одно и то же распределение шума как для прямого, так и для обратного циклов и приемлемый 0.Штраф за ошибку 3% достигается для шума со стандартным отклонением 0,1. Это значение составляет 10% от параметра температуры сигмовидного нейрона, равного единице. Однако требования к шуму для прямого и обратного циклов могут не совпадать. Действительно, расчеты показывают, что когда мы вводим шум только в прямой цикл, алгоритм может выдерживать до шести раз больший шум со стандартным отклонением 60%. Обратный цикл менее терпим с порогом 10%, и поэтому он определяет пороговое значение, полученное из рисунка 3I.

Радарная диаграмма на Рисунке 4A суммирует технические характеристики устройств RPU, которые получены в результате «стресс-тестов», выполненных на Рисунке 3. Оси C-I соответствуют экспериментам на Рисунках 3C – I, соответственно. Сплошная линия 1 соединяет пороговые значения, определенные для этих параметров, для приемлемого штрафа за ошибку 0,3%. Отметим, что эти характеристики существенно отличаются от параметров, характерных для технологий NVM. Хранение в устройствах NVM является цифровым и обычно не превышает нескольких бит.Это ограничение накладывается системным требованием достижения высокого отношения сигнал / шум для операций чтения и записи. Кроме того, операция записи не зависит от истории, поскольку она перезаписывает все ранее сохраненные значения. Напротив, значения весов при работе нейронной сети не нужно записывать и разрешать с очень высоким отношением сигнал / шум. Фактически, алгоритм может выдерживать до 150% шума при обновлении весов (параметр C) и может выдерживать до 10% шума чтения в столбцах или строках (параметр I).Однако, в отличие от емкости памяти в несколько бит на устройствах NVM, устройству RPU требуется большое количество совпадений (более 600 на рис. 3B), чтобы отслеживать историю обновлений веса. Кроме того, в отличие от высокой стойкости к полному размаху записи между уровнями битов, требуемой для устройств NVM, устройства RPU должны иметь высокую стойкость только к небольшим инкрементным изменениям, Δ g min .

Рисунок 4. (A) Строка 1 показывает пороговые значения для параметров из Рисунка 3, предполагая, что 0.Штраф за ошибку 3%. Параметры C – I соответствуют экспериментам на рисунках 3C – I соответственно. Заштрихованная синим область, ограниченная линией 3, дает штраф за ошибку не более 0,3% при объединении всех параметров. (B) Кривая 1 соответствует модели со всеми параметрами, объединенными в пороговом значении, как показано на радарной диаграмме линией 1. Кривая 2 соответствует модели, в которой только C, D и E объединены на пороговом значении. Кривые 1 и 2 имеют среднее значение 1,0 для границ веса | w ij |.Кривая 3 соответствует модели с C, D, E на 30%, F / G на 0%, H на 2 и I на 6%, все вместе, как показано на радарной диаграмме линией 3. Кривые 3 имеют среднее значение. 0,6 для оценки веса | w ij |. На всех кривых используется среднее значение 0,001 для Δ w min .

Суммарный вклад всех параметров, рассмотренных на рисунке 4A, может быть аддитивным и, следовательно, превышать допустимый штраф за ошибку 0,3%. На рисунке 4B показаны результаты обучения, когда объединяются эффекты более чем одного параметра.Когда все параметры (C, D, E, F, G, H и I) объединены в пороговом значении, ошибка теста достигает 5,0%, что на 3,0% выше базовой модели. Хотя этот штраф может быть приемлемым для некоторых приложений, он значительно выше, чем штраф за ошибку 0,3%, рассмотренный выше.

Штраф на 3,0% выше, чем простое аддитивное влияние некоррелированных вкладов, указывающее на то, что по крайней мере некоторые из этих параметров взаимодействуют. Это открывает возможность оптимизации штрафных санкций за ошибки путем компромисса между допусками между различными параметрами.Например, модель, которая объединяет только параметры C, D и E на пороге, как показано кривой 2 на рисунке 4B, дает штраф за ошибку 0,9%, что примерно соответствует ожидаемой сумме индивидуальных вкладов. Обратите внимание, что эти параметры определяются несовершенством работы устройства и несоответствием устройств, которые контролируются производственными допусками в данной технологии. Даже для технологий КМОП с большим масштабом допуски изготовления не превышают 30%, что намного меньше 150, 110 и 80%, используемых для расчета кривой 2.Вклады C, D и E в штраф за ошибку можно исключить, установив соответствующие допуски на 30% (данные не показаны).

Среди параметров рисунка 4A асимметрия между повышением и понижением изменений значения проводимости устройств RPU (параметр F, G и H) является наиболее ограничивающим. Параметр F (или G) — это глобальная асимметрия, которую можно компенсировать, управляя импульсными напряжениями и / или количеством импульсов в положительных и отрицательных циклах обновления, и, следовательно, даже асимметрии, превышающие пороговое значение 5%, могут быть устранены с помощью надлежащего проектирования. периферийных схем.Напротив, параметр H, который определяется изменением асимметрии от устройства к устройству, может быть скомпенсирован периферийными схемами только в том случае, если каждое устройство RPU адресуется последовательно. Чтобы поддерживать временную сложность O (1), параметр рассогласования устройства H и параметр шума I могут быть совместно оптимизированы для уменьшения штрафа за ошибки. Результирующая модель, проиллюстрированная синей заштрихованной областью, ограниченной кривой 3 на рис. 4B, дает штраф за ошибку не более 0,3%. Для этой модели параметры C, D и E установлены на 30%, в то время как F (или G) установлен на ноль, H установлен на 2%, а I установлен на 6%.В качестве альтернативы тот же результат (данные не показаны) можно получить, ограничив параметр шума I до 2,5% и увеличив допуск H на рассогласование устройств до 4%, что может упростить изготовление массива за счет разработки схем с меньшим шумом.

В дополнение к параметрам, рассмотренным выше, устройство RPU может также показывать зависимость изменения проводимости от сохраненного значения проводимости Δ г мин ( г ij ). Такое поведение вводит правило обновления, которое зависит от текущего значения веса, которое может быть записано как Δ w min ( w ij ).Мы выполнили моделирование, включая правило обновления, зависящее от веса, с различными функциональными формами для Δ w min ( w ij ), которое включало линейную или квадратичную зависимость от значения веса. В первом наборе моделирования мы предполагаем, что обновления сбалансированы для любого заданного значения веса, такого что Δwmin + (wij) = Δwmin- (wij), и, следовательно, уже удовлетворяют критерию дисбаланса H во всем диапазоне веса. Эти результаты моделирования показывают, что зависимость Δ g min от g ij не является важным параметром, поскольку не требуется дополнительного штрафа за ошибку выше 0.3% наблюдается, даже когда Δ w min изменяется примерно в 10 раз. Однако, когда мы вводим обновления, зависящие от веса, которые не сбалансированы, мы наблюдаем дополнительный штраф за ошибку, поскольку это условие нарушает критерии дисбаланса H.

Рекомендации по проектированию на уровне цепей и систем

Максимальное ускорение обучения DNN с помощью алгоритма обратного распространения на массиве RPU размером N × N может быть достигнуто, когда применяется операция временной сложности O (1).В этом случае общее ускорение пропорционально Н 2 , что способствует очень большим массивам. Как правило, конструкция массива, периферийных цепей и всей системы должна основываться на оптимизации сетевых параметров для конкретной рабочей нагрузки и задачи классификации. Чтобы разработать общую методологию для такого дизайна, мы будем использовать результаты анализа, представленного выше, в качестве примера, понимая, однако, что разработанный подход применим для большего класса более сложных случаев, чем относительно простой трехуровневый сеть, использованная для классификации набора данных MNIST на рисунках 2–4.

Конструкция массива RPU

Для реалистичных технологических реализаций решетчатых панелей размер массива в конечном итоге будет ограничен сопротивлением и паразитной емкостью линий передачи, что приведет к значительной задержке RC-цепочки и падению напряжения. Для дальнейшего анализа мы предполагаем, что устройства RPU интегрированы в стек внутренних линий (BEOL) между промежуточными металлическими уровнями. Это позволяет использовать верхние толстые металлические уровни для распределения питания, а нижние металлические уровни и область под массивом RPU для периферийных схем КМОП.Типичные промежуточные уровни металла в масштабированной КМОП-технологии имеют толщину 360 нм и ширину 200 нм . Соответствующее типичное сопротивление линии составляет около r line = 0,36 Ом μ m с паразитной емкостью c line = 0,2 fF ∕ μ m . Предполагая разумную тактовую частоту ГГц для импульсов, используемых во время цикла обновления, и позволяя задержке RC быть не более 10% от ширины импульса (0.1 нс ), самая длинная линия должна быть l line = 1,64 мм . При разумном межстрочном интервале 200 нм и получается массив из 4096 × 4096 устройств RPU. Поскольку значения проводимости устройств RPU могут быть только положительными, мы предполагаем, что пара идентичных массивов устройств RPU используется для кодирования положительных (gij +) и отрицательных (gij-) значений веса. Значение веса ( w ij ) пропорционально разнице двух значений проводимости, хранящихся в двух соответствующих устройствах (gij + -gij-), расположенных в идентичных позициях пары массивов блоков RPU.Чтобы свести к минимуму площадь, эти две матрицы могут быть уложены друг на друга, занимая 4 последовательных металлических уровня, в результате чего общая площадь массива равна 2,68 мм2. Для этого размера массива полный цикл обновления (как положительный, так и отрицательный), выполняемый с использованием 1 нс импульсов, может быть завершен за 20 нс для BL = 10.

Чтобы оценить среднее сопротивление устройства RPU, R , устройство , мы предполагаем падение напряжения на линии передачи не более 10%, что определяется соотношением N × R line R устройство , где R line — полное сопротивление линии, равное r line l line .Вклад выходного сопротивления драйверов линии в общее сопротивление линии можно свести к минимуму за счет правильной конструкции схемы. Для размера массива Н = 4096 среднее сопротивление устройства RPU, следовательно, составляет R устройство = 24 МОм . Используя это значение сопротивления и предполагая рабочее напряжение 1 В для всех трех тренировочных циклов и в среднем около 20% активности для каждого устройства, что типично для моделей на рисунках 2–4, рассеяние мощности на паре Массивы RPU можно оценить как P array = 0.28 Вт .

Проектирование периферийных схем

Работа одного столбца (или строки) во время прямого (или обратного) цикла проиллюстрирована на рисунке 5A. В отличие от цикла обновления, стохастические трансляторы не нужны. Здесь мы предполагаем, что используется схема временного кодирования, когда входные векторы представлены фиксированной амплитудой В в = 1 В импульсах с настраиваемой длительностью. Длительность импульса кратна 1 нс и пропорциональна значению входного вектора.Токи, генерируемые в каждом устройстве RPU, суммируются в столбцах (или строках), и этот общий ток интегрируется за время измерения, t измеряется схемами считывания тока, как показано на рисунке 5A. Положительные и отрицательные импульсы напряжения подаются отдельно на каждый из идентичных массивов RPU, которые используются для кодирования положительных и отрицательных весов. Токи от обоих массивов подаются в периферийную схему, которая состоит из операционного усилителя, который интегрирует дифференциальный ток на конденсаторе C, и , и аналого-цифрового преобразователя ADC.Обратите внимание, что для импульсов с временной кодировкой ошибка квантования по времени на входе в массив RPU масштабируется обратно пропорционально общему количеству импульсов, и, следовательно, это лучший подход по сравнению со схемой стохастической импульсной передачи (О’Коннор и Веллинг , 2016). Для моделей на Рисунке 4B количество импульсов больше 20 (разрешение ~ 5 бит, ) достаточно, чтобы устранить соответствующее наказание за ошибку.

Рисунок 5. (A) Работа одного столбца (или строки) во время прямого (или обратного) цикла, показывающая операционный усилитель, который интегрирует дифференциальный ток на конденсаторе C int и аналог -цифровой преобразователь АЦП. (B) Ошибка теста для сети модели 3 на рисунке 4B с границами | α | накладывается на результаты векторно-матричного умножения. Кривая 1 соответствует модели с | α | = 3 накладывается только на функцию активации сигмоида в скрытых слоях. Кривые 2 и 3 соответствуют модели с | α | = 3 и 12, соответственно, наложенные как на сигмовидную, так и на softmax-функцию активации. (C) Схема архитектуры микросхемы ускорителя RPU. Плитки RPU расположены внизу, цифровые вычислительные схемы NLF — вверху, связь внутри кристалла обеспечивается шиной или NoC, а связь вне кристалла зависит от схем ввода-вывода. (D) Приемлемые относящиеся к входу уровни шума для различных соотношений включения / выключения на устройствах RPU β и времени интегрирования t изм. . Кривые 1, 2 и 3 соответствуют значениям t изм из 20, 80 и 160 нс соответственно.

Мы определяем один тайл RPU как пару массивов с 4096 × 4096 устройствами с периферийными схемами, которые поддерживают параллельную работу массива во всех трех циклах. Периферийные схемы включают АЦП, операционные усилители, STR, состоящие из генераторов случайных чисел, и линейные драйверы, используемые для направления сигналов по столбцам и строкам.Как показано на рисунке 5C, сигналы от плитки направляются в схему нелинейной функции (NLF), которая вычисляет либо функции активации (т.е. сигмоид, softmax) и их производные, а также арифметические операции (т.е. умножение) в зависимости от цикла. тип и положение соответствующего слоя. На границе тайла входные сигналы в NLF ограничены определенным пороговым значением, чтобы избежать насыщения сигнала. На рисунке 5B показана ошибка теста для сети модели 3 на рисунке 4B, но с границами | α | накладывается на результаты векторно-матричного умножения, что эквивалентно ограничению ввода NLF.Для нейронов в скрытых слоях схема NLF должна вычислять сигмовидную функцию активации. Когда вход в эту сигмовидную NLF ограничен | α | = 3, результирующий штраф за ошибку не превышает дополнительных 0,4%, как показано кривой 1 на рисунке 5B.

Нейроны на выходном слое выполняют операцию softmax NLF, то есть, когда соответствующий вход также ограничен | α | = 3, приводит к очень большой ошибке, как показано кривой 2 на рисунке 5B. Чтобы сделать дизайн более гибким и программируемым, желательно, чтобы NLF как на скрытом, так и на выходном слоях имела одинаковые границы.Когда границы как softmax, так и сигмовидной NLF ограничены значением | α | = 12, общий штраф находится в пределах допустимого диапазона, как показано кривой 3. Предполагая приемлемый уровень шума 6%, взятый из результатов на Рисунке 4B, и диапазон рабочего напряжения от -1 В до 1 В на входе в АЦП, соответствующее разрешение в битах и ​​требуемый шаг напряжения составляют 9 бит и 3,9 мВ соответственно. Эти числа означают, что допустимый общий интегрированный среднеквадратичный шум напряжения на входе АЦП (или на выходе операционного усилителя) не должен превышать 5.0 мВ .

Анализ шума

Чтобы оценить приемлемый уровень шума, приведенного к входу, необходимо определить функцию интегрирования операционного усилителя. Напряжение на выходе операционного усилителя можно получить как

Vout = 2NVin tmeasRdevice Cint (β-1β + 1) (4)

, где β — коэффициент включения / выключения проводимости для устройства RPU. Это уравнение предполагает, что все устройства N вносят свой вклад одновременно, что затрудняет разработку схемы, которая потребовала бы либо очень большого конденсатора, либо большого размаха напряжения.Однако для заданных границ | α | на преобразование NLF и | w ij | для значений веса выходное напряжение не обязательно должно превышать уровень, соответствующий одновременному вкладу | α | ∕ | w ij | устройств. Поскольку, как показано выше, приемлемая оценка | α | = 12 и | w ij | = 0,6 достаточно, число N в уравнении (4) можно заменить на 20. Предполагая, что выход сигнала V out , подаваемый в АЦП, не должен превышать 1 V , а значение R устройство составляет 24 МОм , выбор интегрирующего конденсатора C int продиктован временем интегрирования t изм и коэффициентом включения / выключения β.На рисунке 5D представлены оценки приемлемых уровней шума для различных соотношений включения / выключения на устройствах β и времени интегрирования t изм . Этот уровень шума соответствует приведенному к входу шуму операционного усилителя, рассчитанному с использованием стандартного анализа шума в схемах на основе интегратора (Jensen et al., 2013). Если принять t изм как 20 нс после рассмотрения ошибки квантования, рассмотренной выше, приемлемые уровни шума будут относительно низкими, порядка всего 5 нВ Гц, как показано на рисунке 5D кривой 1.Даже увеличение отношения включения / выключения β до нескольких порядков не помогает справиться с повышенным шумом. Чтобы приспособиться к более высокому шуму, необходимо увеличить значение t изм , но с учетом увеличения общего времени расчета. Как видно из кривых на рис. 5D, для заданного уровня шума приемлемыми могут быть отношения включения / выключения от 2 до 10, что, по сути, довольно скромно по сравнению с несколькими порядками величины, типичными для приложений NVM.Когда t изм и β выбраны равными 80 нс и 8, соответственно, соответствующий уровень приемлемого приведенного к входу шума, показанный кривой 2 на рисунке 5D, может быть получен как 7,6 нВ Гц. Отметим, что этот бюджет рассчитывается с использованием требований для обратного прохода, в то время как для прямого прохода приемлемый уровень шума, как обсуждалось выше, примерно в шесть раз больше и составляет около 45 нВ Гц. Соответствующая емкость C int также может быть рассчитана как 103 фФ с использованием уравнения (4).

Различные источники шума могут вносить вклад в общий допустимый приведенный к входу уровень шума операционного усилителя, включая тепловой шум, дробовой шум, шум напряжения питания и т. Д. Тепловой шум из-за пары массивов с устройствами RPU 4096 × 4096 можно оценить как 7,0 нВ ∕ Гц. В зависимости от точной физической реализации устройства RPU и типа нелинейного отклика I V , уровни дробового шума, создаваемые массивом RPU, могут варьироваться. Предполагая диодоподобную модель, общий дробовой шум от всего массива масштабируется как квадратный корень из числа активных устройств RPU в столбце (или строке) и, следовательно, зависит от общей мгновенной активности массива.Средняя активность сети, которая типична для моделей на рисунках 2–4, составляет менее 1% для обратного цикла, в то время как для прямого цикла она намного выше, приближаясь к 20%. Соответственно, эти действия приводят к значениям дробового шума 3,1 нВ Гц и 13,7 нВ Гц для обратного и прямого циклов соответственно. Следовательно, в шуме обратного цикла преобладает тепловой шум со значением 7,0 нВ Гц, и вместе с вкладом дробового шума он соответствует общему шумовому бюджету 7.6 нВ ∕ Гц. Напротив, в шуме прямого цикла преобладает дробовой шум со значением 13,7 нВ Гц, и он также соответствует соответствующему общему бюджету шума 45 нВ Гц. Следует отметить, что более длительное время интеграции или меньший размер массива требуется для более высоких рабочих нагрузок или дополнительных шумов, включая шум напряжения, шум усилителя и т. Д.

Рекомендации по проектированию системного уровня

Площадь тайла, занимаемая периферийными схемами, и соответствующая рассеиваемая мощность определяются вкладом 4096 АЦП.Предполагая, что t изм. из 80 нс для прямого и обратного циклов, требуются АЦП, работающие с разрешением 9 бит при 12,5 MS отсчетов с . Ультрасовременный SAR-ADC (Jonsson, 2011a, b), который может обеспечить такую ​​производительность, занимает площадь 0,0256 мм 2 и потребляет 0,24 мВт мощности, что в результате дает общую площадь 104 мм 2 и общей мощностью 1 Вт для массива из 4096 АЦП.Эта область намного больше, чем сам массив RPU, поэтому разумно мультиплексировать по времени АЦП между разными столбцами / строками, увеличивая частоту дискретизации, сохраняя при этом общую мощность неизменной. Предполагая, что каждый АЦП разделен на 64 столбца (или строки), общая площадь АЦП может быть уменьшена до 1,64 мм 2 с каждым АЦП, работающим примерно на 800 MS отсчетов сек . Поскольку мы предполагаем, что массивы устройств RPU построены на промежуточных металлических уровнях поверх периферийных схем CMOS, общая площадь плитки определяется площадью массива RPU равной 2.68 мм 2 , что оставляет около 1,0 мм 2 для других схем, которые также могут быть оптимизированы по площади. Например, количество генераторов случайных чисел, используемых для преобразования двоичных данных в стохастический битовый поток, может быть значительно сокращено до 2, поскольку никакие операции не выполняются с потоками, сгенерированными в столбцах (или строках), и о чем свидетельствует отсутствие дополнительных штрафов за ошибку для соответствующего теста классификации. (данные не показаны). Таким образом, общая площадь одной плитки равна 2.68 мм 2 , в то время как общая мощность, рассеиваемая обоими блоками RPU и всеми периферийными схемами (АЦП, операционные усилители, STR), может быть оценена как 2,0 Вт , предполагая, что 0,7 Вт зарезервировано для операционных усилителей и STR.

Количество обновлений веса в секунду для одного тайла можно оценить как 839 TeraUpdates с , учитывая длительность цикла обновления 20 нс и размер массива 4096 × 4096. Это означает энергоэффективность 419 TeraUpdates с Вт и эффективность площади 319 TeraUpdates с мм 2 .Пропускная способность плитки во время прямого и обратного циклов может быть оценена как 419 TeraOps с с учетом 80 нс для прямого (или обратного) цикла с эффективностью мощности и площади 210 TeraOps с Вт. и 156 TeraOps s мм 2 соответственно. Эти показатели эффективности примерно на 5 порядков лучше, чем современные показатели производительности CPU и GPU (Gokhale et al., 2014).

Эффективность мощности и площади, достигаемая для одного тайла, неизбежно будет ухудшаться, поскольку несколько тайлов объединяются вместе как система на кристалле. Как показано на рисунке 5C, дополнительная мощность и площадь должны быть зарезервированы для программируемых схем NLF, связи внутри кристалла через когерентную шину или сеть на кристалле (NoC), схемы ввода-вывода вне кристалла и т. Д. Увеличение количества ячеек на микросхеме сначала приведет к ускорению общей пропускной способности микросхемы, но в конечном итоге приведет к насыщению, поскольку она будет ограничена либо мощностью, либо площадью, либо полосой пропускания связи, либо вычислительными ресурсами.Современный высокопроизводительный CPU (12-ядерный CPU IBM Power8, Stuecheli, 2013) или графический процессор (NVidia Tesla K40 GPU, NVIDIA, 2012) можно взять за эталон для оценки максимальной площади 600 мм и 2 мощностью 250 Вт на одной микросхеме. Хотя мощность и площадь на плитку не являются препятствием для масштабирования количества плиток от 50 до 100, полоса пропускания связи и вычислительные ресурсы, необходимые для эффективности системы, могут быть проблемными.

Пропускная способность для одного тайла может быть оценена исходя из 5 бит входных и 9 бит выходных на столбец (или строку) для прямого (или обратного) циклов, что в сумме дает около 90 ГБ / с однонаправленных полос пропускания, которые будут также удовлетворяют требованиям связи цикла обновления.Это число примерно в 3 раза меньше, чем пропускная способность канала связи в ЦП IBM Power8 между одним ядром и ближайшим кэшем второго уровня (Stuecheli, 2013). Современная встроенная когерентная шина (более трех ТБ / с в ЦП IBM Power8, Stuecheli, 2013) или NoC (2,5 ТБ / с в Chen G. et al., 2014) может обеспечить достаточная пропускная способность связи между удаленными плитками.

Вычислительные ресурсы, необходимые для поддержания временной сложности O (1) для одного тайла, можно оценить как 51 GigaOps с , предполагая время цикла 80 нс и 4096 чисел, сгенерированных в столбцах или строках.Для поддержки параллельной работы n ячеек вычислительные ресурсы необходимо масштабировать на O ( n ), тем самым ограничивая количество ячеек, которые могут быть активны в данный момент времени, чтобы общая огибающая мощности на кристалле была ниже 250 Вт. . Например, одно ядро ​​ЦП IBM Power8 (Stuecheli, 2013) может достичь около 50 GigaFLOP с , что может быть достаточно для поддержки одной плитки, однако максимальная мощность достигается только для 12 плиток при условии 20 Вт на ядро.Соответствующая энергоэффективность для этой расчетной точки (вариант 1 в таблице 1) составит 20 TeraOps с Вт . Те же вычислительные ресурсы могут быть предоставлены 32 ядрами современного графического процессора (NVIDIA, 2012), но с большей энергоэффективностью, что позволяет до 50 плиток работать параллельно. Соответствующая энергоэффективность для этой конструкции (вариант 2 в таблице 1) составит 84 TeraOps с Вт . Дальнейшее увеличение количества ячеек, которые могут работать одновременно, можно предвидеть путем разработки специализированных цифровых схем с энергоэффективностью и эффективностью площади, которые работают с числами с фиксированной запятой с ограниченным битовым разрешением.Альтернативный дизайн (схема 3 в таблице 1) может быть основан всего на нескольких вычислительных ядрах, которые могут обрабатывать данные плитки последовательно, чтобы уместить большее количество плиток для работы с большими размерами сети. Например, микросхема со 100 ячейками и одним вычислительным ядром 50 GigaOps s будет способна работать с сетями с весом до 1,6 миллиарда и рассеивать только около 22 Вт при условии 20 Вт из вычислений. ядро и коммуникационная шина и всего 2 Вт для плиток RPU, поскольку в любой момент времени активен только один.Это дает энергоэффективность 20 TeraOps s W , что на четыре порядка выше, чем у современных CPU и GPU.

Таблица 1. Сводное сравнение различных конструкций систем RPU и современных ЦП и ГП .

Обсуждение

Мы предложили концепцию устройств RPU, которые могут одновременно хранить и обрабатывать данные локально и параллельно, что потенциально обеспечивает значительное ускорение обучения DNN.Исследована устойчивость алгоритма обучения к различным параметрам устройства и системы RPU, а также к технологическим недостаткам и различным источникам шума. Этот анализ позволяет определить список спецификаций для устройств RPU, приведенный в Таблице 2. Текущие претенденты на устройства RPU, основанные на существующих технологиях NVM, могут не соответствовать всем критериям одновременно. Однако мы полагаем, что результаты таблицы 2 могут быть использованы в качестве руководства для систематического поиска новых физических механизмов, материалов и конструкций устройств для реализации концепции устройства RPU с использованием реалистичной CMOS-совместимой технологии.

Таблица 2. Сводка технических характеристик устройства RPU .

Мы также представили анализ различных конструкций систем, основанных на концепции массива RPU, который потенциально может обеспечить на много порядков ускорение глубокого обучения нейронной сети при значительном снижении требуемой мощности и ресурсов компьютерного оборудования. Результаты сведены в Таблицу 1. Этот анализ показывает, что в зависимости от размера сети могут быть сделаны различные варианты конструкции микросхемы ускорителя RPU, что приведет к обмену мощностью и коэффициентом ускорения.

Предлагаемая конструкция микросхемы ускорителя, показанная на рис. 5C, является гибкой и может поддерживать различные типы архитектур DNN, помимо полностью связанных слоев с аналогичными коэффициентами ускорения. Например, сверточные слои могут быть сопоставлены с массивом RPU аналогичным образом. В этом случае вместо выполнения векторно-матричного умножения для прямого и обратного циклов массив должен выполнять матричное матричное умножение, которое может быть достигнуто путем последовательной подачи столбцов входной матрицы в столбцы массива RPU.Кроме того, периферийные схемы NLF необходимо перепрограммировать для выполнения не только вычисления функций активации, но также максимального объединения и подвыборки. Требуемая связь между слоями может быть достигнута путем перепрограммирования адресов плиток в сети. Цикл обновления сверточного слоя потребует вычисления произведения двух матриц, которые используются во время прямого и обратного циклов. Это может быть достигнуто путем последовательной подачи столбцов входной матрицы и столбцов матрицы ошибок одновременно в массив RPU.Во время цикла обновления каждое устройство RPU выполняет ряд операций локального умножения и суммирования и, следовательно, вычисляет произведение двух матриц. Отметим, что все три цикла на массиве RPU одинаковы как для сверточных, так и для полносвязных слоев и не требуют перепрограммирования. Действительно, сверточный слой можно рассматривать как полностью связанный слой с размером мини-пакета больше единицы. Мы подчеркиваем, что пропускная способность микросхемы ускорителя RPU не зависит от архитектуры DNN и размера мини-пакета и, следовательно, должна обеспечивать одинаковые коэффициенты ускорения для аналогичных размеров массива RPU.Однако следует пересмотреть спецификации устройства и системы RPU для различных архитектур DNN и наборов данных, используя подход, описанный в документе.

Большинство последних архитектур DNN основаны на комбинации множества сверточных и полносвязных уровней с числом параметров порядка миллиарда. Наш анализ показывает, что один чип ускорителя RPU может использоваться для обучения таких больших DNN. Проблемы размера классификации ImageNet, которые в настоящее время требуют нескольких дней обучения на нескольких графических процессорах (Le et al., 2012) может занять менее минуты на одном чипе ускорителя RPU.

Авторские взносы

TG разработал оригинальную идею, TG и YV разработали методологию, проанализировали и интерпретировали результаты, составили и отредактировали рукопись.

Заявление о конфликте интересов

Авторы заявляют, что исследование проводилось при отсутствии каких-либо коммерческих или финансовых отношений, которые могут быть истолкованы как потенциальный конфликт интересов.

Благодарности

Мы благодарим Сейенга Кима, Джонатана Просела, Маттиа Риготти, Вилфрида Хенша, Джеффри Берра, Майкла Перроне, Брюса Элмегрина, Суйога Гупту, Анкура Агравала, Мунира Мегелли, Денниса Ньюнса и Джеральда Тесауро за множество полезных обсуждений и предложений.

Ссылки

Алаги, А., Хейс, Дж. (2013). Обзор стохастических вычислений. ACM Trans. Вставить. Comput. Syst. 12, 1–19. DOI: 10.1145 / 2465787.2465794

CrossRef Полный текст | Google Scholar

Арима Ю., Машико К., Окада К., Ямада Т., Маеда А., Нотани Х. и др. (1991). Самообучающийся нейронный сетевой чип с 336 нейронами, 28 K-синапсами и архитектурой ответвлений-нейронов. IEEE J. Твердотельные схемы 26, 1637–1644.

Google Scholar

Би, Г. К., и Пу, М. М. (1998). Синаптические модификации в культивируемых нейронах гиппокампа: зависимость от времени спайков, синаптической силы и типа постсинаптических клеток. J. Neurosci. 18, 10464–10472.

PubMed Аннотация | Google Scholar

Берр, Г. У., Шелби, Р. М., ди Нольфо, К., Янг, Дж. У., Шеной, Р. С., Нараянан, П., и др. (2014). «Экспериментальная демонстрация и определение терпимости крупномасштабной нейронной сети (165 000 синапсов), использующей память с фазовым переходом в качестве элемента синаптического веса», в 2014 IEEE International, Electron Devices Meeting (IEDM) (Сан-Франциско, Калифорния).

Берр, Г. У., Нараянан, П., Шелби, Р. М., Сидлер, С., Бойбат, И., ди Нольфо, К., и др. (2015). «Крупномасштабные нейронные сети, реализованные с энергонезависимой памятью в качестве элемента синаптического веса: сравнительный анализ производительности (точность, скорость и мощность)», в IEDM (International Electron Devices Meeting) (Вашингтон, округ Колумбия).

Чен, Г., Андерс, М. А., Каул, Х., Сатпатия, С. К., Мэтью, С. К., Хсу, С. К. и др. (2014). «Гибридная сеть-на-кристалле 16 × 16 с коммутацией пакетов и коммутацией каналов, от 340 мВ до 0,9 В, 20,2 Тб / с, в 22-нм трехзатворной КМОП-матрице», в дайджесте международной конференции IEEE International Soild-State Circuits, , 2014 г. технических документов (ISSCC) (Сан-Франциско, Калифорния), 276–277.

Chen, Y., Luo, T., Liu, S., Zhang, S., He, L., Wang, J., et al. (2014). «DaDianNao: суперкомпьютер с машинным обучением», , 2014 47-й ежегодный международный симпозиум IEEE / ACM по микроархитектуре (Кембридж, Великобритания), 609–622.

PubMed Аннотация | Google Scholar

Чуа, Л. О. (1971). Мемристор — недостающий элемент схемы. IEEE Trans. Теория схем 18, 507–519. DOI: 10.1109 / TCT.1971.1083337

CrossRef Полный текст | Google Scholar

Коутс, А., Хуваль Б., Ван Т., Ву Д. Дж., Нг, А. Ю. и Катандзаро Б. (2013). Глубокое обучение с помощью систем COTS HPC . Атланта, Джорджия: ICML.

Google Scholar

Гейнс, Б. Р. (1967). «Стохастические вычисления», в Труды AFIPS Spring Joint Computer Conference (Атлантик-Сити, Нью-Джерси), 149–156.

Гокхале В., Джин Дж., Дундар А., Мартини Б. и Кулурчиелло Э. (2014). «Мобильный сопроцессор со скоростью 240 операций в секунду для глубоких нейронных сетей», на конференции IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW) (Колумбус, Огайо), 696–701.

Google Scholar

Гупта, С., Агравал, А., Гопалакришнан, К., и Нараянан, П. (2015). Глубокое обучение с ограниченной числовой точностью. arXiv: 1502.02551 [cs.LG].

Хинтон, Г., Дэн, Л., Ю, Д., Даль, Г. Э., Мохамед, А., Джайтли, Н. и др. (2012). Глубокие нейронные сети для акустического моделирования в распознавании речи: общие взгляды четырех исследовательских групп. Сигнальный процесс IEEE. Mag. 29, 82–97. DOI: 10.1109 / MSP.2012.2205597

CrossRef Полный текст | Google Scholar

Индивери, Г., Линарес-Барранко, Б., Легенштейн, Р., Делигеоргис, Г., и Продромакис, Т. (2013). Интеграция наноразмерных мемристорных синапсов в нейроморфные вычислительные архитектуры. Нанотехнологии 24: 384010. DOI: 10.1088 / 0957-4484 / 24/38/384010

PubMed Аннотация | CrossRef Полный текст | Google Scholar

Джексон, Б. Л., Раджендран, Б., Коррадо, Г. С., Брайтвиш, М., Берр, Г. У., Чик, Р. и др. (2013). Наноразмерные электронные синапсы с использованием устройств с фазовым переходом. ACM J.Emerg. Technol. Comput. Syst. 9, 1–20. DOI: 10.1145 / 2463585.2463588

CrossRef Полный текст | Google Scholar

Йенсен, К., Годе, В. К., и Левин, П. М. (2013). «Анализ шума и измерение схем интерфейса сенсора на основе интегратора для обнаружения флуоресценции в приложениях« лаборатория на кристалле »», на Международной конференции по шуму и флуктуациям (Монпелье).

Джо, С. Х., Чанг, Т., Эбонг, И., Бхадвия, Б. Б., Мазумдер, П., и Лу, В.(2010). Наноразмерное мемристорное устройство как синапс в нейроморфных системах. Nano Lett. 10, 1297–1301. DOI: 10.1021 / nl2h

PubMed Аннотация | CrossRef Полный текст | Google Scholar

Йонссон, Б. Э. (2011a). «Эмпирический подход к поиску энергоэффективных архитектур АЦП», на Международном семинаре 2011 г. по моделированию, тестированию и проектированию преобразователей данных и на форуме IEEE 2011 ADC (Орвието), 132–137.

Йонссон, Б. Э. (2011b).«Эффективность областей архитектуры ADC», , 2011, 20-я Европейская конференция по теории и проектированию схем (ECCTD), (Linkoping), 560–563.

Крижевский А., Суцкевер И., Хинтон Г. Э. (2012). «Классификация Imagenet с глубокими сверточными нейронными сетями», в Neural Information Processing Systems (Lake Tahoe, NV), 1097–1105.

Ле, К. В., Ранзато, М. А., Монга, Р., Девин, М., Чен, К., Коррадо, Г. С. и др. (2012). «Создание высокоуровневых функций с использованием крупномасштабного обучения без учителя», на Международной конференции по машинному обучению (Эдинбург).

ЛеКун, Ю., Ботту, Л., Бенжио, Ю., и Хаффнер, П. (1998). Применение градиентного обучения для распознавания документов. Proce. IEEE 86, 2278–2324. DOI: 10.1109 / 5.726791

CrossRef Полный текст | Google Scholar

Леманн, К., Виредаз, М., и Блайо, Ф.А. (1993). стандартный блок систолического массива для нейронных сетей с обучением на кристалле. IEEE Trans. Neural Netw. 4, 400–407.

PubMed Аннотация | Google Scholar

Ли, Б., Ван, Ю., Ван, Ю., Чен, Ю., и Ян, Х. (2014). «Само обучение: ускорение обучения на основе смешанных сигналов для нейронной сети на основе мемристоров» на 19-й конференции по автоматизации проектирования в Азии и Южной части Тихого океана (ASP-DAC) (Suntec City).

Меркель, К., Кудитипуди, Д. (2014). «Алгоритм стохастического обучения для нейромемристических систем», в 27-й Международной конференции по системам на кристалле (SOCC) IEEE , (Лас-Вегас, Невада), 359–366.

NVIDIA (2012 г.). Вычислительная архитектура CUDA нового поколения от NVIDIA: Kepler GK110. Белая книга .

О’Коннор, П., и Веллинг, М. (2016). Сети с глубокими всплесками. arXiv: 1602.08323 [cs.NE].

Google Scholar

Поппельбаум, В. Дж., Афусо, К., и Эш, Дж. У. (1967). «Стохастические вычислительные элементы и системы», в Proceedings of the AFIPS Fall Joint Computer Conference (Anaheim, CA), 635–644.

Презиосо М., Меррих-Баят Ф., Хоскинс Б. Д., Адам Г. К., Лихарев К. К., Струков Д. Б. (2015). Обучение и работа интегрированной нейроморфной сети на основе металлооксидных мемристоров. Природа 521, 61–64. DOI: 10.1038 / природа14441

PubMed Аннотация | CrossRef Полный текст | Google Scholar

Румелхарт Д. Э., Хинтон Г. Э. и Уиллимс Р. Дж. (1986). Изучение представлений путем обратного распространения ошибок. Природа 323, 533–536.

Сайги С., Майр К. Г., Серрано-Готарредона Т., Шмидт Х., Лесерф Г., Томас Дж. И др. (2015). Пластичность в мемристивных устройствах для пиков нейронных сетей. Фронт. Neurosci. 9:51.DOI: 10.3389 / fnins.2015.00051

PubMed Аннотация | CrossRef Полный текст | Google Scholar

Seo, J., Lin, B., Kim, M., Chen, P., Kadetotad, D., Xu, Z., et al. (2015). Встроенное ускорение разреженного обучения с помощью КМОП и резистивных синаптических устройств. IEEE Trans. Nanotechnol. 14, 969–979. DOI: 10.1109 / TNANO.2015.2478861

CrossRef Полный текст | Google Scholar

Симонян К., Зиссерман А. (2015). Очень глубокие сверточные сети для распознавания крупномасштабных изображений .Сан-Диего, Калифорния: ICLR.

Судри, Д., Ди Кастро, Д., Гал, А., Колодный, А., Кватинский, С. (2015). Многослойные нейронные сети на основе мемристоров с онлайн-обучением градиентным спуском. IEEE Trans. Neural Netw. Учиться. Syst. 26, 2408–2421. DOI: 10.1109 / TNNLS.2014.2383395

PubMed Аннотация | CrossRef Полный текст | Google Scholar

Steinbuch, K. (1961). Die lernmatrix. Кибернетик 1, 36–45.

Google Scholar

Стуэчели, Дж.(2013). «Микропроцессор POWER нового поколения» на конференции Hot Chips Conference (Пало-Альто, Калифорния).

Google Scholar

Сегеди К., Лю В., Цзя Ю., Серманет П., Рид С., Ангелов Д. и др. (2015). Углубляясь в свертки . Бостон, Массачусетс: CVPR.

Google Scholar

Ву, Р., Ян, С., Шань, Ю., Данг, К., и Сун, Г. (2015). Глубокое изображение: масштабирование распознавания изображений. arXiv: 1501.02876 [cs.CV].

PubMed Аннотация | Google Scholar

Сюй, З., Mohanty, A., Chen, P., Kadetotad, D., Lin, B., Ye, J., et al. (2014). Параллельное программирование резистивного массива точек пересечения для синаптической пластичности. Процедуры Comput. Sci. 41, 126–133. DOI: 10.1016 / j.procs.2014.11.094

CrossRef Полный текст | Google Scholar

Ю, С., Гао, Б., Фанг, З., Ю, Х., Кан, Дж., И Вонг, Х. С. (2013). Электронное синаптическое устройство на основе низкоэнергетических оксидов для нейроморфных зрительных систем с устойчивостью к вариациям устройства. Adv. Матер. 25, 1774–1779. DOI: 10.1002 / adma.201203680

CrossRef Полный текст | Google Scholar

Ю. С., Чен П., Цао Ю., Ся Л., Ван Ю. и Ву Х. (2015). «Расширение резистивных синаптических массивов для нейро-вдохновленной архитектуры: проблемы и перспективы», в International Electron Devices Meeting (IEDM) (Вашингтон, округ Колумбия), 451–454. DOI: 10.1109 / iedm.2015.7409718

CrossRef Полный текст

С чего начать Тренировки с Power

Тренировка с измерителем мощности — это лучший способ получить максимальную отдачу как от времени, так и от усилий.В отличие от тренировок, основанных на частоте сердечных сокращений, мощность позволяет нам измерять мышечную нагрузку, а не только аэробную нагрузку. Подход к тренировкам, основанный на показателях, который обеспечивает сила, неоценим в помощи спортсменам в достижении их целей, но на чем нам нужно сосредоточиться и как расшифровать всю доступную информацию, когда кто-то хочет начать тренировку с силой?

Есть несколько ключевых моментов, на которые мы можем направить наше внимание, чтобы начать понимать информацию, генерируемую нашими измерителями мощности, и как наилучшим образом использовать ее для информирования о решениях, которые мы принимаем в отношении назначения тренировок.

Что такое порог?

Чтобы понять и применить показатели мощности к нашему обучению, нам сначала нужно понять основу, на которой все построено: порог. Порог — это просто максимальная мощность (мощность), которую вы можете поддерживать, пока ваше тело может выводить молочную кислоту, вырабатываемую вашими работающими мышцами.

Это также момент, когда ваше тело начинает задействовать большее количество быстро сокращающихся мышечных волокон. Продолжительная работа сверх вашего порога вызывает знакомый «ожог» в ногах в результате накопления молочной кислоты.Спортсмены могут увеличить способность организма к очищению от молочной кислоты, потратив значительное время на тренировки в определенных диапазонах ниже и прямо на пороге.

Время в этих диапазонах также тренирует организм замедлять скорость использования углеводов. Как только вы поймете концепцию порога, мы сможем сделать еще один шаг с FTP (функциональная пороговая мощность). FTP — это стержень силовых тренировок и ключ к их правильному выполнению.

Настройка и обслуживание FTP

К настоящему времени вы, несомненно, по крайней мере знакомы с FTP, как он влияет на ваш подход к тренировкам и общую производительность на велосипеде.Однако знание того, что создает сильный и точный FTP, как его установить и как поддерживать, имеет жизненно важное значение для поддержания правильности тренировок.

Настройка FTP или, скорее, выполнение усилий, которые принесут желаемые результаты, требует некоторой практики и ноу-хау. С такими инструментами, как TrainingPeaks и WKO4, мы можем понимать и анализировать показатели мощности более точно и последовательно, чем когда-либо прежде.

Итак, как узнать, что такое ваш FTP? С инструментами, которые у нас есть сегодня, есть несколько вещей, которые вы захотите сделать и обратите внимание на то, чтобы ваш FTP был точным.Первым шагом является достижение порогового уровня усилий в обучении. «Полевые испытания» — это проверенный и верный метод, и обычно это первый шаг в настройке FTP. Для проведения полевых испытаний используйте следующий протокол.

Разминка

  • 20 минут в выносливом темпе
  • 3 упражнения на высокую частоту вращения педалей по 1 мин при 100 об / мин с 1 мин перерыва между каждыми
  • 5 минут в выносливом темпе

Основной комплект

  • 5 минут изо всех сил.
  • 10 минут в выносливом темпе
  • 20 минут изо всех сил

Охлаждение

После выполнения теста FTP загрузите данные и проанализируйте свою производительность.Чтобы рассчитать свой FTP, потребуется 95 процентов ваших 20-минутных усилий. Это будет хорошим приближением к вашему порогу лактата и надежным исходным значением для вашей тренировки. Однако, хотя полевой тест является сильным индикатором FTP и отличным местом для начала, физиологическая адаптация и производительность более тонкие, чем простой 20-минутный тест.

Кривая длительности мощности

WKO4 делает шаг вперед, предлагая концепцию моделирования FTP (mFTP), которая отображает ваши характеристики в виде кривой и генерирует mFTP на основе исторических данных.Поскольку сила каждого — не обязательно 20-минутный TT, кривая PD может быть хорошим способом понять, где вы сильнее всего и на каких усилиях вам, возможно, потребуется сосредоточиться, чтобы вызвать критическую адаптацию.

Если вы используете mFTP и кривую частичного разряда, лучше всего выполнять всесторонние усилия различной продолжительности от 30 секунд до одного часа, чтобы получить максимальную отдачу от «кривой». При установлении любого показателя, основанного на мощности, важность достоверных и точных данных невозможно переоценить. Скачки мощности и неточные данные могут резко исказить результаты тестирования и даже привести к неточному FTP или другим показателям мощности.Независимо от того, используете ли вы полевой тест, кривую частичного разряда или их комбинацию, вам нужно будет выполнять измерения уровня FTP четыре-шесть раз в год, чтобы ваш FTP был настроен правильно в ключевые моменты сезона. Именно такие инструменты делают мощные тренировки такими проницательными!

Установление зон мощности

Теперь, когда вы определили свой FTP и поняли, что вам нужно для поддержания точного порога, вы можете рассчитать свои тренировочные зоны. Силовые тренировочные зоны — это то, что вы будете использовать на каждой тренировке и каждой поездке, чтобы определить, насколько интенсивной была поездка и было ли достигнуто запланированное намерение поездки или тренировки.Зоны позволяют вам установить соответствующую интенсивность, чтобы вызвать адаптацию, необходимую для аэробного, метаболического и мышечного развития. Зоны мощности также подчеркивают важность точного и актуального FTP. Спортсменам доступны несколько различных структур зон, но в конечном итоге, чем более детально и точно зоны отражают вашу физиологию, тем лучше. Ниже приведен пример формата семи зон, который можно использовать:

Зона 1 Активное восстановление (AR) = <55% от FTP

Зона 2 Долговечность = 56% -75% от FTP

Темп зоны 3 = 76% -90% от FTP

Порог лактата в зоне 4 = 91-105% от FTP

Зона 5 VO2max = 106% -120% от FTP

Зона 6 Анаэробная емкость (AC) = 121% -150% от FTP

Зона 7 Нервно-мышечная мощность (NP) = максимальная мощность

Если вы используете WKO4, вы также можете использовать Dr.Индивидуальные уровни мощности Энди Коггана, которые позволяют применять еще более детальный подход к назначению тренировок и анализу езды.

Тренировка с мощностью

Причина, по которой вы приобрели измеритель мощности, — это улучшить ваши тренировки и улучшить физическую форму. Итак, как вы относитесь к силовым тренировкам? Варианты тренировок, которые можно выполнять, бесконечны, но есть несколько ключевых областей, на которых вы можете сосредоточиться, чтобы вызвать максимальную реакцию.

Sweet Spot

Эти усилия выполняются на 88–94 процентах вашего FTP и являются отличным способом укрепить и построить ваш FTP.Обычно они проводятся в начале сезона или в середине сезона, чтобы перейти к приоритетным гонкам. Продолжительность интервалов зоны наилучшего восприятия может варьироваться в зависимости от спортсмена, но цель должна заключаться в увеличении продолжительности и количества интервалов в течение сезона.

Пороговый уровень

Пороговые тренировки предназначены для непосредственного улучшения вашего FTP и должны выполняться при 96-105 процентах вашего FTP. Это должно довести вас до вашего предела. Как и в случае интервалов зоны наилучшего восприятия, цель состоит в том, чтобы увеличить продолжительность времени, которое вы можете проводить на этом уровне.Обычно эти специфические для FTP усилия основываются на времени, которое вы потратили на тренировку в зоне наилучшего восприятия.

Темп устойчивого состояния

Тренировки

Tempo являются основой для большинства велосипедистов, особенно тех, кто хочет повысить мышечную выносливость и / или тех, кто тренируется для более длительных соревнований на выносливость. Темповые тренировки выполняются между 76 и 88 процентами FTP, и они должны быть длительными, продолжительными от 30 минут до двух часов.

VO2max

Эти усилия часто становятся предметом внимания традиционных гонщиков и шоссейных гонщиков, которые стремятся улучшить спринт и добиться более высоких результатов.Длятся от трех до восьми минут, они очень сложны, и их следует планировать соответствующим образом, так как они требуют надлежащего восстановления после завершения тренировки. В зависимости от продолжительности интервала интенсивность может составлять от 105 до 120 процентов от FTP. Они полезны при сопоставлении специфики гонки для подъемов, спринтов и т. Д.

Обучение анализу и отслеживанию

Силовые тренировки настолько хороши, насколько хороши вы и / или ваш тренер, чтобы отслеживать и анализировать их! Чтобы получить преимущества от тренировок с измерителем мощности, вы должны анализировать свои тренировки и составлять график своего прогресса с течением времени.Опять же, красота тренировок и гонок с мощью заключается в нашей способности количественно оценить усилия и оценить их. Вот несколько ключевых областей, на которых следует сосредоточиться, когда дело доходит до анализа:

  • Проанализируйте свои тренировки, чтобы измерить прогресс и понять, какие рецепты необходимы для продвижения к вашим целям. Как прошла конкретная тренировка? Как вы себя чувствуете? Сравнение качественных и количественных показателей — это не только хорошая практика, но и способ улучшить и узнать больше о себе как о спортсмене.
  • Просмотрите файлы соревнований, чтобы понять, насколько эффективны были ваши тренировки. Цель тренировок для большинства спортсменов — подготовиться к дню соревнований. День соревнований — это нечто большее, чем просто фитнес, но понимание ваших результатов — это начало. Найдите время, чтобы провести углубленный анализ гонок, чтобы получить ценные сведения, которые также могут помочь в продвижении ваших тренировок.
  • Используйте таблицу управления эффективностью (PMC), чтобы отслеживать свое продвижение к приоритетным гонкам. Уделяя особое внимание тренировочной нагрузке, скорости нарастания и утомляемости, вы не будете перетренироваться, а также поможете достичь пика в день соревнований.
  • Обратите особое внимание на хроническую тренировочную нагрузку (CTL), острую тренировочную нагрузку (ATL) и баланс тренировочного стресса (TSB), чтобы в полной мере использовать преимущества силовых тренировок. Эти основные показатели позволяют вам держать руку на пульсе тренировок. Они неоценимы для правильной организации тренировочных блоков и подготовки к приоритетным гонкам.

Ключевые показатели

Часто препятствием для входа спортсменов, которые только начинают тренироваться с силой, может быть кривая обучения, поскольку она связана с показателями мощности.Да, это правда, что есть много показателей и чисел, на которые спортсмен может обратить внимание, но вот некоторые из самых важных:

Ватт на килограмм (Вт / кг)

При прочих равных, гонщик с наибольшим весом / кг будет самым быстрым. Проще говоря, это то, сколько энергии вы производите на килограмм веса тела. Чем выше число, тем сильнее вы будете.

Нормализованная мощность (NP)

Из-за того, что велоспорт по своей природе изменчив, NP лучше показывает, насколько сложной была тренировка с точки зрения метаболизма.Он учитывает скачки мощности сжигания углеводов и, таким образом, подчеркивает общую усталость во время езды лучше, чем средняя мощность.

Коэффициент интенсивности (IF)

IF — это отношение нормализованной мощности поездки к вашему FTP. Думайте о IF как о снимке того, насколько интенсивной (тяжелой) была тренировка или поездка. Вы можете использовать этот показатель, чтобы понять, соответствовали ли ваши предполагаемые усилия фактической интенсивности и были ли вы на тренировке достигли цели.

Оценка тренировочного стресса (TSS)

TSS измеряет общую нагрузку поездки.TSS определяет, сколько работы было выполнено, и, следовательно, сколько требуется восстановления. Показатель тренировочного стресса важно отслеживать с течением времени, потому что он влияет как на физическую форму, так и на усталость, что, в свою очередь, говорит вам, насколько вы готовы к гонке.

Пиковая мощность

Отслеживание показателей пиковой мощности в течение ключевого периода поможет вам не только увидеть, как вы улучшаетесь, но и убедиться, что ваши тренировки соответствуют требованиям ваших гонок. Как показывает практика, если вы сосредоточены на более коротких и более интенсивных гонках, вы должны видеть более высокие пиковые мощности на более коротких отрезках времени, а атлеты, ориентированные на выносливость, должны сосредоточиться на более длительных.

Мощные тренировки, независимо от езды или гонки, чрезвычайно важны для спортсменов всех уровней. Возможность количественно оценивать и отслеживать усилия, а также составлять индивидуальные предписания по тренировкам, гарантирует, что вы получите максимальную отдачу от тренировочного времени. Многое нужно для успешной тренировки с измерителем мощности, но, в конце концов, если вы усвоите несколько основных понятий, вы будете готовы начать. Убедитесь, что ваш FTP точный, и найдите время, чтобы просмотреть и проанализировать свои тренировки и гонки.Успешные спортсмены всегда стремятся к совершенствованию, и силовые тренировки — лучший способ в этом убедиться.

Распределенное обучение с TensorFlow | TensorFlow Core

Обзор

tf.distribute.Strategy — это TensorFlow API для распределения обучения между несколькими графическими процессорами, несколькими компьютерами или TPU. Используя этот API, вы можете распространять существующие модели и обучающий код с минимальными изменениями кода.

тс.distribute.Strategy была разработана с учетом следующих ключевых целей:

  • Простота использования и поддержка нескольких сегментов пользователей, включая исследователей, инженеров машинного обучения и т. Д.
  • Обеспечивает хорошую производительность прямо из коробки.
  • Простое переключение между стратегиями.

Вы можете распределить обучение с помощью tf.distribute.Strategy с высокоуровневым API, таким как Keras Model.fit , а также с пользовательскими циклами обучения (и, в общем, с любыми вычислениями с использованием TensorFlow).

В TensorFlow 2.x вы можете быстро выполнять свои программы или в виде графика, используя функцию tf. . tf.distribute.Strategy намеревается поддерживать оба этих режима выполнения, но лучше всего работает с tf.function . Активный режим рекомендуется только для целей отладки и не поддерживается для tf.distribute.TPUStrategy . Хотя в этом руководстве основное внимание уделяется обучению, этот API также можно использовать для распределения оценок и прогнозов на различных платформах.

Вы можете использовать tf.distribute.Strategy с очень небольшими изменениями в вашем коде, потому что базовые компоненты TensorFlow были изменены, чтобы они учитывали стратегию. Сюда входят переменные, слои, модели, оптимизаторы, метрики, сводки и контрольные точки.

В этом руководстве вы узнаете о различных типах стратегий и о том, как их можно использовать в различных ситуациях. Чтобы узнать, как отлаживать проблемы с производительностью, ознакомьтесь с руководством по оптимизации производительности графического процессора TensorFlow.

Примечание: Для более глубокого понимания концепций просмотрите подробную презентацию — Inside TensorFlow: tf.distribute.Strategy . Это особенно рекомендуется, если вы планируете написать свой собственный цикл обучения.

Настройка TensorFlow

  импортировать тензорный поток как tf
  

Типы стратегий

tf.distribute.Strategy намеревается охватить ряд сценариев использования по разным направлениям. Некоторые из этих комбинаций в настоящее время поддерживаются, а другие будут добавлены в будущем.Вот некоторые из этих топоров:

  • Синхронное и асинхронное обучение: Это два распространенных способа распределения обучения с параллелизмом данных. При синхронном обучении все рабочие обучаются синхронно на разных срезах входных данных и агрегируют градиенты на каждом этапе. При асинхронном обучении все рабочие независимо обучаются над входными данными и асинхронно обновляют переменные. Обычно обучение синхронизации поддерживается с помощью архитектуры all-reduce и async через серверную архитектуру параметров.
  • Аппаратная платформа: Возможно, вы захотите масштабировать свое обучение на несколько графических процессоров на одном компьютере или на нескольких компьютерах в сети (с 0 или более графическими процессорами на каждом) или на облачных TPU.

Для поддержки этих вариантов использования в TensorFlow есть MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy , ParameterServerStrategy , CentralStorageStrategy , а также другие доступные стратегии. В следующем разделе объясняется, какие из них поддерживаются в каких сценариях в TensorFlow.Вот краткий обзор:

API обучения MirroredStrategy TPUStrategy MultiWorkerMirroredStrategy CentralStorageStrategy ParameterServerStrategy
Keras Model.fit Поддерживается Поддерживается Поддерживается Экспериментальная поддержка Экспериментальная поддержка
Индивидуальный цикл обучения Поддерживается Поддерживается Поддерживается Экспериментальная поддержка Экспериментальная поддержка
Оценщик API Ограниченная поддержка Не поддерживается Ограниченная поддержка Ограниченная поддержка Ограниченная поддержка

Примечание: Экспериментальная поддержка означает, что на API не распространяются какие-либо гарантии совместимости. Предупреждение. Поддержка оценщика ограничена. Базовое обучение и оценка являются экспериментальными, а расширенные функции, такие как scaffold, не реализованы. Вы должны использовать Keras или пользовательские циклы обучения, если вариант использования не описан. Оценщики не рекомендуются для нового кода. Оценщики запускают код в стиле v1.Session , который сложнее правильно написать и который может вести себя неожиданно, особенно в сочетании с кодом TF 2. Оценщики подпадают под наши гарантии совместимости, но не получат никаких исправлений, кроме уязвимостей безопасности.Подробности см. В руководстве по миграции.

MirroredStrategy

tf.distribute.MirroredStrategy поддерживает синхронное распределенное обучение на нескольких графических процессорах на одной машине. Он создает одну реплику на каждое устройство с графическим процессором. Каждая переменная в модели отражается во всех репликах. Вместе эти переменные образуют единую концептуальную переменную, которая называется MirroredVariable . Эти переменные синхронизируются друг с другом за счет применения идентичных обновлений.

Эффективные алгоритмы полного сокращения используются для передачи обновлений переменных между устройствами.All-reduce объединяет тензоры на всех устройствах, складывая их, и делает их доступными на каждом устройстве. Это объединенный алгоритм, который очень эффективен и может значительно снизить накладные расходы на синхронизацию. В зависимости от типа связи, доступной между устройствами, существует множество доступных алгоритмов и реализаций all-reduce. По умолчанию он использует библиотеку коллективной коммуникации NVIDIA (NCCL) в качестве реализации полного сокращения. Вы можете выбрать один из нескольких других вариантов или написать свой собственный.

Вот простейший способ создания MirroredStrategy :

  mirrored_strategy = tf.distribute.MirroredStrategy ()
  
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Использование MirroredStrategy с устройствами ('/ job & col; localhost / replica & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; GPU & двоеточие; 0',)
 

Это создаст экземпляр MirroredStrategy , который будет использовать все графические процессоры, видимые для TensorFlow и NCCL, в качестве обмена данными между устройствами.

Если вы хотите использовать только некоторые графические процессоры на вашем компьютере, вы можете сделать это следующим образом:

  mirrored_strategy = tf.distribute.MirroredStrategy (devices = ["/ gpu: 0", "/ gpu: 1"])
  
ПРЕДУПРЕЖДЕНИЕ & Colon; tensorflow & Colon; Некоторые запрошенные устройства в tf.distribute.Strategy не видны для TensorFlow & Colon; / job & двоеточие; localhost / replica & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; графический процессор & двоеточие; 0, / задание & двоеточие; localhost / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; графический процессор & двоеточие; 1
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Использование MirroredStrategy с устройствами ('/ job & col; localhost / replica & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; графический процессор & двоеточие; 0', '/ задание & двоеточие; localhost / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; графический процессор & двоеточие; 1' )
 

Если вы хотите переопределить обмен данными между устройствами, вы можете сделать это с помощью аргумента cross_device_ops , указав экземпляр tf.распространять. CrossDeviceOps . В настоящее время tf.distribute.HierarchicalCopyAllReduce и tf.distribute.ReductionToOneDevice — это два параметра, отличные от tf.distribute.NcclAllReduce , который используется по умолчанию.

  mirrored_strategy = tf.distribute.MirroredStrategy (
    cross_device_ops = tf.distribute.HierarchicalCopyAllReduce ())
  
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Использование MirroredStrategy с устройствами ('/ job & col; localhost / replica & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; GPU & двоеточие; 0',)
 

TPUStrategy

тс.distribute.TPUStrategy позволяет запускать обучение TensorFlow на модулях обработки тензорных блоков (TPU). TPU — это специализированные ASIC от Google, предназначенные для значительного ускорения рабочих нагрузок машинного обучения. Они доступны в Google Colab, TPU Research Cloud и Cloud TPU.

С точки зрения архитектуры распределенного обучения TPUStrategy — это то же самое MirroredStrategy — он реализует синхронное распределенное обучение. TPU обеспечивают собственную реализацию эффективных операций полного сокращения и других коллективных операций на нескольких ядрах TPU, которые используются в TPUStrategy .

Вот как можно создать экземпляр TPUStrategy :

Примечание: Чтобы запустить любой код TPU в Colab, вы должны выбрать TPU в качестве среды выполнения Colab. См. Полный пример в Руководстве по использованию TPU.

  cluster_resolver = tf.distribute.cluster_resolver.TPUClusterResolver (
    tpu = tpu_address)
tf.config.experimental_connect_to_cluster (cluster_resolver)
tf.tpu.experimental.initialize_tpu_system (cluster_resolver)
tpu_strategy = tf.distribute.TPUStrategy (cluster_resolver)
  

Экземпляр TPUClusterResolver помогает найти TPU.В Colab вам не нужно указывать для него какие-либо аргументы.

Если вы хотите использовать это для облачных TPU:

  • Вы должны указать имя вашего ресурса TPU в аргументе tpu .
  • Вы должны явно инициализировать систему TPU при запуске программы. Это необходимо до того, как TPU можно будет использовать для вычислений. Инициализация системы TPU также стирает память TPU, поэтому важно сначала выполнить этот шаг, чтобы избежать потери состояния.

MultiWorkerMirroredStrategy

tf.distribute.MultiWorkerMirroredStrategy очень похож на MirroredStrategy . Он реализует синхронное распределенное обучение для нескольких рабочих, каждый из которых может иметь несколько графических процессоров. Подобно tf.distribute.MirroredStrategy , он создает копии всех переменных в модели на каждом устройстве для всех рабочих процессов.

Вот простейший способ создания MultiWorkerMirroredStrategy :

  стратегия = tf.distribute.MultiWorkerMirroredStrategy ()
  
ПРЕДУПРЕЖДЕНИЕ & Colon; tensorflow & Colon; Коллективные операции не настраиваются при запуске программы. Некоторые функции производительности могут быть не включены.
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; MultiWorkerMirroredStrategy с одним работником с local_devices = ('/ device & col; GPU & col; 0',), communication = CommunicationImplementation.AUTO
 

MultiWorkerMirroredStrategy имеет две реализации для обмена данными между устройствами. CommunicationImplementation.RING основан на RPC и поддерживает как процессоры, так и графические процессоры. CommunicationImplementation.NCCL использует NCCL и обеспечивает высокую производительность на графических процессорах, но не поддерживает процессоры. CollectiveCommunication.AUTO переносит выбор на Tensorflow. Вы можете указать их следующим образом:

  communication_options = tf.distribute.experimental.CommunicationOptions (
    реализация = tf.distribute.experimental.CommunicationImplementation.NCCL)
стратегия = tf.distribute.MultiWorkerMirroredStrategy (
    Communication_options = опции_связи)
  
ПРЕДУПРЕЖДЕНИЕ & Colon; tensorflow & Colon; Коллективные операции не настраиваются при запуске программы. Некоторые функции производительности могут быть не включены.
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; MultiWorkerMirroredStrategy для одного работника с local_devices = ('/ device & col; GPU & Colon; 0',), communication = CommunicationImplementation.NCCL
 

Одним из ключевых отличий обучения с несколькими рабочими от обучения с несколькими графическими процессорами является настройка с несколькими рабочими.Переменная среды 'TF_CONFIG' — это стандартный способ в TensorFlow указать конфигурацию кластера для каждого рабочего, являющегося частью кластера. Дополнительные сведения см. В разделе о настройке TF_CONFIG этого документа.

Дополнительные сведения о MultiWorkerMirroredStrategy см. В следующих руководствах:

ParameterServerStrategy

Обучение сервера параметров — это распространенный метод параллельных данных для расширения обучения модели на нескольких машинах.Обучающий кластер сервера параметров состоит из рабочих и серверов параметров. Переменные создаются на серверах параметров, и они читаются и обновляются рабочими на каждом этапе. Ознакомьтесь с учебным пособием по серверу параметров для получения подробной информации.

В TensorFlow 2 для обучения сервера параметров используется архитектура на основе центрального координатора через класс tf.distribute.experimental.coordinator.ClusterCoordinator .

В этой реализации задачи worker и сервера параметров запускают tf.distribute.Server , которые слушают задачи от координатора. Координатор создает ресурсы, отправляет обучающие задания, записывает контрольные точки и устраняет сбои задач.

При программировании, выполняемом на координаторе, вы будете использовать объект ParameterServerStrategy для определения шага обучения и использовать ClusterCoordinator для отправки шагов обучения удаленным работникам. Вот самый простой способ их создания:

  стратегия = tf.distribute.экспериментальный.ParameterServerStrategy (
    tf.distribute.cluster_resolver.TFConfigClusterResolver (),
    раздел_переменной = раздел_переменной)
координатор = tf.distribute.experimental.coordinator.ClusterCoordinator (
    стратегия)
  

Чтобы узнать больше о ParameterServerStrategy , ознакомьтесь с обучением сервера параметров с помощью Keras Model.fit и учебным курсом по индивидуальному циклу обучения.

Примечание: Если вы используете TFConfigClusterResolver , вам потребуется настроить переменную среды 'TF_CONFIG' .Он аналогичен 'TF_CONFIG' в MultiWorkerMirroredStrategy , но имеет дополнительные оговорки.

В TensorFlow 1 ParameterServerStrategy доступен только с оценщиком через символ tf.compat.v1.distribute.experimental.ParameterServerStrategy .

Примечание: Эта стратегия является экспериментальной , так как в настоящее время она находится в активной разработке.

CentralStorageStrategy

tf.distribute.experimental.CentralStorageStrategy также выполняет синхронное обучение.Переменные не зеркалируются, вместо этого они размещаются на ЦП, а операции реплицируются на всех локальных графических процессорах. Если есть только один графический процессор, все переменные и операции будут размещены на этом графическом процессоре.

Создайте экземпляр CentralStorageStrategy по:

  central_storage_strategy = tf.distribute.experimental.CentralStorageStrategy ()
  
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; ParameterServerStrategy (CentralStorageStrategy, если вы используете один компьютер) с compute_devices = ['/ job & col; localhost / replica & col; 0 / task & col; 0 / device & col; GPU & двоеточие; 0'], variable_device = '/ job & Colon; localhost / replica & двоеточие ; 0 / задача & двоеточие; 0 / устройство & двоеточие; графический процессор & двоеточие; 0 '
 

Будет создан экземпляр CentralStorageStrategy , который будет использовать все видимые графические процессоры и ЦП.Обновление переменных на репликах будет агрегировано перед применением к переменным.

Примечание: Это стратегия экспериментальная , так как в настоящее время работа над ней продолжается.

Другие стратегии

В дополнение к вышеперечисленным стратегиям есть еще две стратегии, которые могут быть полезны для создания прототипов и отладки при использовании tf.distribute API.

Стратегия по умолчанию

Стратегия по умолчанию — это стратегия распределения, которая присутствует, когда явная стратегия распределения не входит в область действия.Он реализует интерфейс tf.distribute.Strategy , но является сквозным и не обеспечивает фактического распределения. Например, Strategy.run (fn) просто вызовет fn . Код, написанный с использованием этой стратегии, должен вести себя точно так же, как код, написанный без какой-либо стратегии. Вы можете думать об этом как о «запретной» стратегии.

Стратегия по умолчанию — одноэлементная, и больше ее экземпляров создать нельзя. Его можно получить с помощью tf.distribute.get_strategy вне любой явной области действия стратегии (тот же API, который можно использовать для получения текущей стратегии внутри области явной стратегии).

  default_strategy = tf.distribute.get_strategy ()
  

Эта стратегия служит двум основным целям:

  • Это позволяет безоговорочно писать код библиотеки с учетом распределения. Например, в tf.optimizer s вы можете использовать tf.distribute.get_strategy и использовать эту стратегию для уменьшения градиентов — он всегда будет возвращать объект стратегии, для которого вы можете вызвать Strategy.reduce API.
  # В оптимизаторе или коде другой библиотеки
# Получить текущую активную стратегию
стратегия = tf.distribute.get_strategy ()
strategy.reduce ("SUM", 1., axis = None) # уменьшает некоторые значения
  
1.0
 
  • Подобно библиотечному коду, его можно использовать для написания программ конечных пользователей для работы со стратегией распределения и без нее, не требуя условной логики. Вот пример фрагмента кода, иллюстрирующий это:
  если tf.config.list_physical_devices ('GPU'):
  стратегия = tf.distribute.MirroredStrategy ()
else: # Использовать стратегию по умолчанию
  стратегия = tf.distribute.get_strategy ()

с помощью strategy.scope ():
  # Сделай что-нибудь интересное
  print (tf.Variable (1.))
  
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Использование MirroredStrategy с устройствами ('/ job & col; localhost / replica & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; GPU & двоеточие; 0',)
Зеркальная переменная & двоеточие; {
  0 & двоеточие; 
}
 
OneDeviceStrategy

tf.distribute.OneDeviceStrategy — это стратегия размещения всех переменных и вычислений на одном указанном устройстве.

  strategy = tf.distribute.OneDeviceStrategy (device = "/ gpu: 0")
  

Эта стратегия отличается от стратегии по умолчанию во многих отношениях. В стратегии по умолчанию логика размещения переменных остается неизменной по сравнению с запуском TensorFlow без какой-либо стратегии распространения. Но при использовании OneDeviceStrategy все переменные, созданные в его области видимости, явно помещаются на указанное устройство. Более того, любые функции, вызываемые через OneDeviceStrategy.запуск также будет размещен на указанном устройстве.

Входные данные, распределяемые по этой стратегии, будут предварительно загружены на указанное устройство. В стратегии по умолчанию нет распределения входных данных.

Подобно стратегии по умолчанию, эту стратегию также можно использовать для тестирования вашего кода перед переключением на другие стратегии, которые фактически распространяются на несколько устройств / машин. Это задействует механизм стратегии распределения несколько больше, чем стратегия по умолчанию, но не в полной мере, используя, например, MirroredStrategy или TPUStrategy .Если вам нужен код, который ведет себя так, как будто стратегии нет, используйте стратегию по умолчанию.

Итак, вы узнали о различных стратегиях и о том, как их реализовать. В следующих нескольких разделах показаны различные способы их использования для распределения тренировок.

Используйте tf.distribute.Strategy с Keras Model.fit

tf.distribute.Strategy интегрирован в tf.keras , который является реализацией TensorFlow спецификации Keras API. tf.keras — это высокоуровневый API для построения и обучения моделей. Благодаря интеграции в серверную часть tf.keras вы легко сможете распространять свои тренировки, написанные в среде обучения Keras, с помощью Model.fit.

Вот что вам нужно изменить в вашем коде:

  1. Создайте экземпляр соответствующего tf.distribute.Strategy .
  2. Переместите создание модели Keras, оптимизатора и метрик в strategy.scope .

Стратегии распространения TensorFlow поддерживают все типы моделей Keras — последовательные, функциональные и подклассы.

Вот фрагмент кода для очень простой модели Keras с одним слоем Dense :

  mirrored_strategy = tf.distribute.MirroredStrategy ()

с mirrored_strategy.scope ():
  model = tf.keras.Sequential ([tf.keras.layers.Dense (1, input_shape = (1,))])

model.compile (потеря = 'mse', optimizer = 'sgd')
  
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Использование MirroredStrategy с устройствами ('/ job & col; localhost / replica & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; GPU & двоеточие; 0',)
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .
 

В этом примере используется MirroredStrategy , поэтому вы можете запустить его на машине с несколькими графическими процессорами. strategy.scope () указывает Керасу, какую стратегию использовать для распределения обучения. Создание моделей / оптимизаторов / показателей внутри этой области позволяет создавать распределенные переменные вместо обычных переменных.После того, как это настроено, вы можете соответствовать своей модели, как обычно. MirroredStrategy заботится о воспроизведении обучения модели на доступных графических процессорах, агрегировании градиентов и многом другом.

  набор данных = tf.data.Dataset.from_tensors (([1.], [1.])). Repeat (100) .batch (10)
model.fit (набор данных, эпохи = 2)
model.evaluate (набор данных)
  
Эпоха 1/2
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .
2021-10-05 01 & двоеточие; 21 & двоеточие; 39.353158 & двоеточие; W tensorflow / core / grappler / optimizers / data / auto_shard.cc & двоеточие 695] Политика сегментирования AUTO будет применять политику сегментирования DATA, поскольку она не смогла применить политику сегментирования FILE по следующей причине & двоеточие; Обнаружен надежный исходный набор данных & col; имя и двоеточие; "TensorDataset / _2"
op & двоеточие; "TensorDataset"
ввод & двоеточие; "Заполнитель / _0"
ввод & двоеточие; "Заполнитель / _1"
attr {
  ключ и двоеточие; "Toutput_types"
  ценить {
    список {
      введите & двоеточие; DT_FLOAT
      введите & двоеточие; DT_FLOAT
    }
  }
}
attr {
  ключ и двоеточие; "output_shapes"
  ценить {
    список {
      форма {
        dim {
          размер и двоеточие; 1
        }
      }
      форма {
        dim {
          размер и двоеточие; 1
        }
      }
    }
  }
}
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .
10/10 [==============================] - 3 с 2 мс / шаг - потеря и двоеточие; 1,6898
ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .ИНФОРМАЦИЯ & двоеточие; тензорный поток & двоеточие; Сократите до / задание & двоеточие; локальный хост / реплику & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0, затем выполните широковещательную передачу на ('/ задание & двоеточие; локальный хост / реплика & двоеточие; 0 / задача & двоеточие; 0 / устройство & двоеточие; ЦП & двоеточие; 0',) .
Эпоха 2/2
10/10 [==============================] - 0 с 2 мс / шаг - потеря и двоеточие; 0,7469
2021-10-05 01 & двоеточие; 21 & двоеточие; 42.157302 & двоеточие; W tensorflow / core / grappler / optimizers / data / auto_shard.cc & двоеточие 695] Политика сегментирования AUTO будет применять политику сегментирования DATA, поскольку она не смогла применить политику сегментирования FILE по следующей причине & двоеточие; Обнаружен надежный исходный набор данных & col; имя и двоеточие; "TensorDataset / _2"
op & двоеточие; "TensorDataset"
ввод & двоеточие; "Заполнитель / _0"
ввод & двоеточие; "Заполнитель / _1"
attr {
  ключ и двоеточие; "Toutput_types"
  ценить {
    список {
      введите & двоеточие; DT_FLOAT
      введите & двоеточие; DT_FLOAT
    }
  }
}
attr {
  ключ и двоеточие; "output_shapes"
  ценить {
    список {
      форма {
        dim {
          размер и двоеточие; 1
        }
      }
      форма {
        dim {
          размер и двоеточие; 1
        }
      }
    }
  }
}
10/10 [==============================] - 1 с 2 мс / шаг - потеря и двоеточие; 0.4638
0,4638328552246094
 

Здесь tf.data.Dataset обеспечивает ввод данных для обучения и оценки. Вы также можете использовать массивы NumPy:

  импортировать numpy как np

входы, цели = np.ones ((100, 1)), np.ones ((100, 1))
model.fit (входы, цели, эпохи = 2, batch_size = 10)
  
Эпоха 1/2
10/10 [==============================] - 0 с 2 мс / шаг - потеря и двоеточие; 0,3301
Эпоха 2/2
10/10 [==============================] - 0 с 2 мс / шаг - потеря и двоеточие; 0,1459
2021-10-05 01 & двоеточие; 21 & двоеточие; 43.378501 & двоеточие; W tensorflow / core / grappler / optimizers / data / auto_shard.cc & двоеточие 695] Политика сегментирования AUTO будет применять политику сегментирования DATA, поскольку она не смогла применить политику сегментирования FILE по следующей причине & двоеточие; Не удалось найти источник, доступный для сегментирования, перешел к узлу, который не является набором данных & col; имя и двоеточие; "FlatMapDataset / _9"
op & двоеточие; "FlatMapDataset"
ввод & двоеточие; "PrefetchDataset / _8"
attr {
  ключ и двоеточие; "Таргументы"
  ценить {
    список {
    }
  }
}
attr {
  ключ и двоеточие; "е"
  ценить {
    func {
      имя и двоеточие; "__inference_Dataset_flat_map_slice_batch_indices_997"
    }
  }
}
attr {
  ключ и двоеточие; "output_shapes"
  ценить {
    список {
      форма {
        dim {
          размер и двоеточие; 10
        }
      }
    }
  }
}
attr {
  ключ и двоеточие; "output_types"
  ценить {
    список {
      введите & двоеточие; DT_INT64
    }
  }
}
.Рассмотрите возможность отключения автоматического сегментирования или переключения auto_shard_policy на DATA, чтобы сегментировать этот набор данных. Вы можете сделать это, создав новый объект `tf.data.Options ()`, затем установив `options.experimental_distribute.auto_shard_policy = AutoShardPolicy.DATA` перед применением объекта опций к набору данных через` dataset.with_options (options) `.

 

В обоих случаях — с Dataset или NumPy — каждый пакет заданных входных данных делится поровну между несколькими репликами.Например, если вы используете MirroredStrategy с 2 графическими процессорами, каждый пакет размером 10 будет разделен между 2 графическими процессорами, каждый из которых получит 5 примеров ввода на каждом этапе. Каждая эпоха будет тренироваться быстрее по мере того, как вы добавляете больше графических процессоров. Как правило, вы хотите увеличивать размер пакета по мере добавления дополнительных ускорителей, чтобы эффективно использовать дополнительную вычислительную мощность. Вам также потребуется перенастроить скорость обучения в зависимости от модели. Вы можете использовать strategy.num_replicas_in_sync , чтобы получить количество реплик.

  # Вычислить глобальный размер пакета, используя несколько реплик.
BATCH_SIZE_PER_REPLICA = 5
global_batch_size = (BATCH_SIZE_PER_REPLICA *
                     mirrored_strategy.num_replicas_in_sync)
набор данных = tf.data.Dataset.from_tensors (([1.], [1.])). repeat (100)
набор данных = набор данных.batch (global_batch_size)

LEARNING_RATES_BY_BATCH_SIZE = {5: 0,1, 10: 0,15}
learning_rate = LEARNING_RATES_BY_BATCH_SIZE [global_batch_size]
  

Что сейчас поддерживается?

API обучения MirroredStrategy TPUStrategy MultiWorkerMirroredStrategy ParameterServerStrategy CentralStorageStrategy
Keras Модель.подходит Поддерживается Поддерживается Поддерживается Экспериментальная поддержка Экспериментальная поддержка

Примеры и учебные пособия

Вот список руководств и примеров, которые иллюстрируют вышеуказанную сквозную интеграцию с Keras Model.fit :

  1. Учебное пособие: Обучение с использованием Model.fit и MirroredStrategy .
  2. Учебное пособие: Обучение с моделью .подходят и MultiWorkerMirroredStrategy .
  3. Руководство

  4. : содержит пример использования Model.fit и TPUStrategy .
  5. Учебное пособие: Обучение параметрическому серверу с Model.fit и ParameterServerStrategy .
  6. Учебное пособие: Тонкая настройка BERT для многих задач из теста GLUE с Model.fit и TPUStrategy .
  7. TensorFlow Model Garden репозиторий, содержащий коллекции современных моделей, реализованных с использованием различных стратегий.

Используйте tf.distribute.Strategy с настраиваемыми циклами обучения

Как показано выше, использование tf.distribute.Strategy с Keras Model.fit требует изменения только пары строк кода. Приложив немного больше усилий, вы также можете использовать tf.distribute.Strategy с настраиваемыми циклами обучения.

Если вам нужна большая гибкость и контроль над циклами обучения, чем это возможно с помощью Estimator или Keras, вы можете написать собственные циклы обучения.Например, при использовании GAN вы можете захотеть выполнять разное количество шагов генератора или дискриминатора в каждом раунде. Точно так же высокоуровневые структуры не очень подходят для обучения обучению с подкреплением.

Классы tf.distribute.Strategy предоставляют основной набор методов для поддержки пользовательских циклов обучения. Их использование может потребовать незначительной реструктуризации кода на начальном этапе, но как только это будет сделано, вы сможете переключаться между графическими процессорами, TPU и несколькими машинами, просто изменив экземпляр стратегии.

Ниже приведен краткий фрагмент, иллюстрирующий этот вариант использования для простого обучающего примера с использованием той же модели Keras, что и раньше.

Сначала создайте модель и оптимизатор внутри области действия стратегии. Это гарантирует, что любые переменные, созданные с помощью модели и оптимизатора, являются зеркальными переменными.

  с mirrored_strategy.scope ():
  model = tf.keras.Sequential ([tf.keras.layers.Dense (1, input_shape = (1,))])
  optimizer = tf.keras.optimizers.SGD ()
  

Затем создайте входной набор данных и позвоните по номеру tf.distribute.Strategy.experimental_distribute_dataset для распределения набора данных на основе стратегии.

  набор данных = tf.data.Dataset.from_tensors (([1.], [1.])). Repeat (100) .batch (
    global_batch_size)
dist_dataset = mirrored_strategy.experimental_distribute_dataset (набор данных)
  
2021-10-05 01 & двоеточие; 21 & двоеточие; 43.580360 & двоеточие; W tensorflow / core / grappler / optimizers / data / auto_shard.cc & двоеточие 695] Политика сегментирования AUTO будет применять политику сегментирования DATA, поскольку она не смогла применить политику сегментирования FILE по следующей причине & двоеточие; Обнаружен надежный исходный набор данных & col; имя и двоеточие; "TensorDataset / _2"
op & двоеточие; "TensorDataset"
ввод & двоеточие; "Заполнитель / _0"
ввод & двоеточие; "Заполнитель / _1"
attr {
  ключ и двоеточие; "Toutput_types"
  ценить {
    список {
      введите & двоеточие; DT_FLOAT
      введите & двоеточие; DT_FLOAT
    }
  }
}
attr {
  ключ и двоеточие; "output_shapes"
  ценить {
    список {
      форма {
        dim {
          размер и двоеточие; 1
        }
      }
      форма {
        dim {
          размер и двоеточие; 1
        }
      }
    }
  }
}
 

Затем определите один шаг обучения.Используйте tf.GradientTape для вычисления градиентов и оптимизатора для применения этих градиентов для обновления переменных вашей модели. Чтобы распространить этот обучающий шаг, поместите его в функцию train_step и передайте в tf.distribute.Strategy.run вместе с входными данными набора данных, которые вы получили из созданного ранее dist_dataset :

  loss_object = tf.keras.losses.BinaryCrossentropy (
  from_logits = Верно,
  сокращение = tf.keras.losses.Reduction.NONE)

def compute_loss (метки, прогнозы):
  per_example_loss = loss_object (метки, прогнозы)
  вернуть tf.nn.compute_average_loss (per_example_loss, global_batch_size = global_batch_size)

def train_step (входы):
  особенности, метки = входы

  с tf.GradientTape () в качестве ленты:
    прогнозы = модель (особенности, обучение = правда)
    loss = compute_loss (метки, прогнозы)

  градиенты = tape.gradient (потеря, model.trainable_variables)
  optimizer.apply_gradients (zip (градиенты, model.trainable_variables))
  обратные потери

@ tf.function
def distribution_train_step (dist_inputs):
  per_replica_losses = зеркальная_стратегия.запустить (train_step, args = (dist_inputs,))
  вернуть mirrored_strategy.reduce (tf.distribute.ReduceOp.SUM, per_replica_losses,
                         ось = Нет)
  

Еще несколько моментов, которые следует отметить в приведенном выше коде:

  1. Вы использовали tf.nn.compute_average_loss для расчета убытка. tf.nn.compute_average_loss суммирует потери для каждого примера и делит сумму на global_batch_size . Это важно, потому что позже, после вычисления градиентов для каждой реплики, они агрегируются по репликам путем суммирования их .
  2. Вы также использовали tf.distribute.Strategy.reduce API для агрегирования результатов, возвращаемых tf.distribute.Strategy.run . tf.distribute.Strategy.run возвращает результаты из каждой локальной реплики в стратегии, и есть несколько способов получить этот результат. Вы можете уменьшить их , чтобы получить агрегированное значение. Вы также можете выполнить tf.distribute.Strategy.experimental_local_results , чтобы получить список значений, содержащихся в результате, по одному на локальную реплику.
  3. Когда вы вызываете apply_gradients в рамках стратегии распределения, его поведение изменяется. В частности, перед применением градиентов к каждому параллельному экземпляру во время синхронного обучения он выполняет суммирование всех реплик градиентов.

Наконец, как только вы определили шаг обучения, вы можете перебрать dist_dataset и запустить обучение в цикле:

  для dist_inputs в dist_dataset:
  печать (Dist_train_step (dist_inputs))
  
tf.Тензор (1.2627472, shape = (), dtype = float32)
tf.Tensor (1.2524828, shape = (), dtype = float32)
tf.Tensor (1.2423018, shape = (), dtype = float32)
tf.Tensor (1.2322043, shape = (), dtype = float32)
tf.Tensor (1.2221898, shape = (), dtype = float32)
tf.Tensor (1.2122582, shape = (), dtype = float32)
tf.Tensor (1.2024096, shape = (), dtype = float32)
tf.Tensor (1.1926432, shape = (), dtype = float32)
tf.Tensor (1.1829592, shape = (), dtype = float32)
tf.Tensor (1.1733572, shape = (), dtype = float32)
tf.Tensor (1.1638371, shape = (), dtype = float32)
tf.Тензор (1.1543984, shape = (), dtype = float32)
tf.Tensor (1.145041, shape = (), dtype = float32)
tf.Tensor (1.1357645, shape = (), dtype = float32)
tf.Tensor (1.1265687, shape = (), dtype = float32)
tf.Tensor (1.117453, shape = (), dtype = float32)
tf.Tensor (1.1084174, shape = (), dtype = float32)
tf.Tensor (1.0994614, shape = (), dtype = float32)
tf.Tensor (1.0

6, shape = (), dtype = float32) tf.Tensor (1.0817871, shape = (), dtype = float32)

В приведенном выше примере вы перебирали dist_dataset , чтобы предоставить входные данные для вашего обучения.Вам также предоставляется tf.distribute.Strategy.make_experimental_numpy_dataset для поддержки входных данных NumPy. Вы можете использовать этот API для создания набора данных перед вызовом tf.distribute.Strategy.experimental_distribute_dataset .

Другой способ перебора данных — явное использование итераторов. Возможно, вы захотите сделать это, если хотите выполнить заданное количество шагов, а не повторять весь набор данных. Вышеупомянутая итерация теперь будет изменена, чтобы сначала создать итератор, а затем явно вызвать на нем , затем , чтобы получить входные данные.

  итератор = iter (dist_dataset)
для _ в диапазоне (10):
  печать (распределенный_поезд_шаг (следующий (итератор)))
  
tf.Tensor (1.0730679, shape = (), dtype = float32)
tf.Tensor (1.0644273, shape = (), dtype = float32)
tf.Tensor (1.0558642, shape = (), dtype = float32)
tf.Tensor (1.0473784, shape = (), dtype = float32)
tf.Tensor (1.03897, shape = (), dtype = float32)
tf.Tensor (1.0306381, shape = (), dtype = float32)
tf.Tensor (1.0223824, shape = (), dtype = float32)
tf.Tensor (1.0142026, shape = (), dtype = float32)
tf.Тензор (1.0060982, shape = (), dtype = float32)
tf.Tensor (0.99806863, shape = (), dtype = float32)
 

Это самый простой случай использования tf.distribute.Strategy API для распределения пользовательских циклов обучения.

Что сейчас поддерживается?

API обучения MirroredStrategy TPUStrategy MultiWorkerMirroredStrategy ParameterServerStrategy CentralStorageStrategy
Индивидуальный цикл обучения Поддерживается Поддерживается Поддерживается Экспериментальная поддержка Экспериментальная поддержка

Примеры и учебные пособия

Вот несколько примеров использования стратегий распределения с пользовательскими циклами обучения:

  1. Учебное пособие: обучение с помощью настраиваемого цикла обучения и MirroredStrategy .
  2. Учебное пособие

  3. : обучение с помощью настраиваемого цикла обучения и MultiWorkerMirroredStrategy .
  4. Руководство

  5. : содержит пример настраиваемого цикла обучения с TPUStrategy .
  6. Учебное пособие

  7. : обучение сервера параметров с помощью настраиваемого цикла обучения и ParameterServerStrategy .
  8. TensorFlow Model Garden репозиторий, содержащий коллекции современных моделей, реализованных с использованием различных стратегий.

Другие темы

В этом разделе рассматриваются некоторые темы, относящиеся к нескольким вариантам использования.

Настройка переменной окружения TF_CONFIG

Для обучения нескольких сотрудников, как упоминалось ранее, вам необходимо настроить переменную среды 'TF_CONFIG' для каждого двоичного файла, запущенного в вашем кластере. Переменная среды 'TF_CONFIG' представляет собой строку JSON, которая определяет, какие задачи составляют кластер, их адреса и роль каждой задачи в кластере. Репозиторий тензорного потока / экосистемы предоставляет шаблон Kubernetes, который настраивает 'TF_CONFIG' для ваших учебных задач.

В 'TF_CONFIG' есть два компонента: кластер и задача.

  • Кластер предоставляет информацию об учебном кластере, который представляет собой диктатор, состоящий из различных типов заданий, таких как рабочие. В обучении с несколькими работниками обычно есть один работник, который берет на себя немного больше ответственности, например, сохраняет контрольную точку и написание сводного файла для TensorBoard в дополнение к тому, что делает обычный работник. Такой рабочий называется «главным» рабочим, и принято, что рабочий с индексом 0 назначается главным рабочим (на самом деле так тс.distribute.Strategy реализована).
  • Задача, с другой стороны, предоставляет информацию о текущей задаче. Первый кластер компонентов одинаков для всех рабочих процессов, а задача второго компонента отличается для каждого рабочего и определяет тип и индекс этого рабочего.

Один из примеров 'TF_CONFIG' :

  os.environ ["TF_CONFIG"] = json.dumps ({
    "cluster": {
        «рабочий»: [«хост1: порт», «хост2: порт», «хост3: порт»],
        «пс»: [«хост4: порт», «хост5: порт»]
    },
   "task": {"type": "worker", "index": 1}
})
  

Этот 'TF_CONFIG' указывает, что есть три рабочих процесса и две задачи «ps» в «кластере» вместе с их хостами и портами.Часть «задача» определяет роль текущей задачи в «кластере» — рабочий 1 (второй рабочий). Допустимые роли в кластере: «главный» , «рабочий» , «пс» и «оценщик» . Не должно быть задания "ps" , за исключением случая использования tf.distribute.experimental.ParameterServerStrategy .

Что дальше?

tf.distribute.Стратегия находится в активной разработке.Попробуйте и поделитесь своим мнением с помощью GitHub issues.

«Мы счастливы, что он рядом» — Уилшир начинает тренировку с «Арсеналом» | Новости Арсеблога

Джек Уилшир тренируется с «Арсеналом» после того, как принял приглашение от Микеля Артеты воспользоваться услугами клуба в Лондонском Колни, пока он ищет новый клуб и получает свои тренерские значки.

В прошлом месяце 29-летний игрок сообщил, что он борется с мотивацией после того, как летом был освобожден Борнмутом и оказался без структуры официальных командных сессий.

«Мы ведем беседу с Джеком, чтобы понять его потребности и то, что он ищет», — сказал Артета три недели назад.

Уилшир дразнил свое возвращение, работая экспертом в Sky Sports во время освещения игры в Брайтоне на прошлых выходных. Размышляя о победе в дерби на севере Лондона, он сказал: «Тренировочная площадка гудит».

Полузащитник также был замечен на трибунах вчера вечером, когда он наблюдал, как игроки «Арсенала» до 23 лет сражаются со своими сверстниками из Борнмута в Кубке Премьер-лиги на стадионе Vitality.

Принимая решение снова поприветствовать Уилшира в лондонском Колни, Артета сказал Arsenal.com: «Вы должны верить в то, что мы хотим помочь Джеку подготовиться к следующему этапу, физически и морально.

«Он хочет снова получить свои тренерские значки, и мы готовы выполнить все его потребности. Это основная идея, и не более того.

«Я очень рад, что он вернулся. Мы поговорили с Джеком, и мы понимаем его потребности, период, который он переживает, и я думаю, что все в клубе согласились, что это подходящий момент, чтобы помочь ему.

«Мы сели с ним и послушали, что он хотел сделать и на каком этапе он находится, и мы готовы сделать все, что в наших силах, чтобы помочь ему.

«Он собирается иногда тренироваться с нами, он будет рядом, он будет продолжать свои тренерские значки, которые ему очень интересны, постарайтесь привести его в форму, постарайтесь донести свой опыт до наши игроки, наши молодые игроки, наша академия, и я думаю, что это большое влияние ».

Босс также подчеркнул, на что он надеется, что Уилшир получит от своего возвращения.

«То, что физически он может поддерживать себя в форме, потому что, очевидно, мы знаем проблемы, которые травмы вызвали у него в его карьере», — сказал он.

«Во-вторых, он чувствует любовь к клубу, привязанность и то же отношение, что и мы к нему.

«Когда вы отсутствуете много лет, может быть, вы потеряете это чувство или зададитесь вопросом, но нет никаких сомнений: мы все его любим, мы счастливы, что он рядом, и он является большой частью нашей истории.”

Хотя Артета преуменьшил значение предположений о том, что его бывший товарищ по команде может заработать себе контракт с основной командой, приятно видеть, что клуб вернул его (и его липкий язык) обратно в лоно.

Очень важно позаботиться о себе.

Тренинг по изъятию для школьного персонала

Что такое «Тренинг по изъятию для школьного персонала»?

«Тренинг для школьного персонала» разработан для людей, которые работают с детьми и молодежью в школьных условиях.Эта программа предоставляет обзор судорог и эпилепсии, первую помощь при припадках, планы действий при припадках, методы спасения, экстренные судорожные припадки и способы оказания поддержки учащимся в школьных условиях. Этот курс подходит для школьных медсестер, учителей, помощников, тренеров, администраторов и всех, кто работает в школе.

По окончании курса школьный персонал сможет:

  • Распознать 3 распространенных типа припадков
  • Опишите 3 шага первой помощи при припадке, чтобы помочь учащемуся, страдающему припадком
  • Определите 3 ключевых фактора, которые могут сделать припадок неотложной медицинской помощью
  • Опишите 3 способа поддержки учащегося, страдающего эпилепсией

Как мне принести программу в мою школу?

Два варианта: обучение по запросу или обучение в режиме реального времени

  1. Доступно обучение по запросу (самый популярный)
    • Доступно 24/7.Принимайте в удобное для вас время!
    • Продолжительность — 60 минут
    • Сертификат выдается по окончании программы
    • Кредиты на непрерывное образование доступны для сертифицированного санитарного просвещения (CHES / MCHES)
  2. Личные и / или живые вебинары доступны в вашем местном фонде эпилепсии.

Найдите ближайший к вам местный фонд эпилепсии!

Начать онлайн-курс

Вопросы и ответы онлайн-курса

Кто может пройти курс?

Любой желающий может пройти курс, чтобы узнать об эпилепсии в школьных условиях, но содержание предназначено для школьного персонала, который хочет получить представление о выявлении приступов и стратегиях оказания первой помощи, в том числе:

  • Классные учителя
  • Учителя специального образования
  • Библиотекари
  • Помощники учителя
  • Водители школьного автобуса
  • Помощники
  • Члены группы планирования IEP / 504
  • Преподаватели здоровья
  • Прочие сотрудники или волонтеры классов K-12
  • Школьные медсестры

Есть ли предпосылки для прохождения курса?

Предварительных условий для прохождения курса нет.

Сколько времени нужно, чтобы пройти онлайн-курс?

Время прохождения курса зависит от пользователя. Курс включает предварительное тестирование, видеоурок и пост-тест. Эти уроки нужно изучать по порядку. Предварительный тест необходимо пройти до получения доступа к видеоуроку. Видеоурок длится примерно 50 минут. Чтобы успешно пройти обучение и получить сертификат об окончании, необходимо просмотреть все видео и пройти последующее тестирование.

Какие материалы или оборудование мне понадобятся для прохождения онлайн-курса?

Вам нужен компьютер с надежным высокоскоростным Интернетом.Браузер должен поддерживать JavaScript.

Как мне получить кредит за прохождение курса?

По завершении курса вы должны пройти онлайн-оценку и оценку, чтобы получить сертификат об окончании.

Как долго длится послетест?

Заключительный тест состоит из нескольких вопросов с несколькими вариантами ответов.

Заявки на размещение

Фонд эпилепсии стремится предоставлять ресурсы, доступные для людей с любым уровнем подготовки.

С вопросами о доступности или запросом приспособлений для полноценного участия в этой деятельности, пожалуйста, свяжитесь с командой программ и услуг по адресу [email protected].

Запросы следует направлять как можно скорее, но не менее чем за две недели до запланированной встречи. С вами свяжется кто-нибудь из наших сотрудников, чтобы обсудить ваши конкретные потребности.

Выражение признательности / отказ от ответственности

Эта программа поддерживается Центрами по контролю и профилактике заболеваний (CDC) США.S. Департамент здравоохранения и социальных служб (HHS) в рамках гранта финансовой помощи в соответствии с соглашением о сотрудничестве № 1U58DP0026256-02-00, CFDA 93.850 , финансируемым CDC / HHS. Содержание принадлежит авторам и не обязательно отражает официальную точку зрения или одобрение CDC / HHS или правительства США.

Доступны ли подразделения непрерывного образования?

Да, для сертифицированных специалистов по санитарному просвещению (CHES) и / или дипломированных специалистов по медицинскому просвещению (MCHES).

Фонд эпилепсии является назначенным поставщиком контактных часов непрерывного образования (CECH) в области санитарного просвещения Национальной комиссией по санитарному просвещению, Inc.

  • Эта программа предназначена для сертифицированных специалистов по санитарному просвещению (CHES) и / или для дипломированных специалистов по медицинскому просвещению (MCHES), которые могут получить до 1,5 общих контактных часов по вопросам образования категории I. Максимальное количество доступных контактных часов для продвинутого уровня непрерывного образования — 0.ID провайдера: 121739
  • Примечание. Программа CHES / MCHES, запрашивающая контактные часы для продолжения образования (CECH), должна заполнить и пройти эту пост-аттестацию. Фонд эпилепсии ежеквартально (январь, апрель, июль и октябрь) сообщает о зачетных средствах непосредственно Национальной комиссии по санитарному просвещению, Inc. (NCHEC). CHES / MCHES должны проверить свою стенограмму NCHEC на предмет зачетных единиц в квартал, следующий за их посещением тренинга.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *