Калькулятор типа телосложения и фигуры у женщин
Данный калькулятор предназначен для женщин, которые хотят определить форму своего тела и проверить здоровье. Некоторые типы фигур действительно могут быть связаны с определенными болезнями. Но по большому счету телосложение вообще не указывает на какую-либо патологию. Единственным объективным показателем является лишь соотношение объема талии и бедер.
Как пользоваться калькулятором
Доклад ВОЗ от 2008 года гласит, что ширина талии и бедер может указывать на абдоминальное ожирение и связана с повышенным риском для здоровья.
Чтобы рассчитать свои параметры, встаньте прямо, держа руки по швам. При этом целесообразно воспользоваться помощью другого человека. Убедитесь, что измерительная лента плотно прилегает к телу, но не сдавливает его.
Вам необходимо снять несколько мерок:
Объем груди – измерение обхвата грудной клетки. Можно проводить его в правильно подобранном бюстгальтере;
Объем талии. Замеряется по наименьшей (естественной) окружности – чуть выше пупка;
Объем верхней части бедра. Проводится над областью таза – примерно на 18 см ниже естественной талии;
Объем бедер. Замер проводится по наибольшей окружности, непосредственно над ягодицами.
Какие существуют типы женских фигур
Как мы уже сказали, для медицины типы фигур имеют мало значения. Такое разделение применяется больше в индустрии моды, где все они, как правило, делятся на четыре класса.
Яблоко или перевернутый треугольник
Характерна для людей, у которых плечи и бюст шире бёдер.
Банан или прямоугольник
Описывает человека с неявно выраженными бедрами и бюстом. Талия, как правило, всего на 27 см уже по сравнению с ними.
Груша, ложка, колокольчик или треугольник
Указывает на человека, чьи бедра шире бюста.
Песочные часы или Х-образная фигура
Часто представляется как «идеальная» для женщины, то есть бедра и бюст примерно одинаковы по размеру, а талия значительно уже. Стандарт из индустрии моды 90-60-90 указывает именно на это соотношение.
Согласно исследованию, проведенному Университетом Северной Каролины в 2005 году, среди более чем 6000 женщин 46% имели фигуру типа «банан», чуть более 20% – типа «груша»; чуть менее 14% – «яблоко». А вот идеальное телосложение типа «песочные часы» оказалось характерным лишь для 8% женщин
Как определяются типы женских фигур
Представление об идеальном женском теле основывается на общественных стандартах, которые во многом субъективны и различаются в разных культурах.
Алгоритм, который применяется в этом калькуляторе типа телосложения, основан на исследовании, опубликованном в Международном журнале моды, в котором все типы фигур были разделены на семь категорий[i]. При этом внутри каждого из типов есть свой широкий диапазон реальных размеров. Некоторые формы и вовсе не укладываются ни в одну из категорий.
Все расчеты основываются на соотношении бедер, талии и бюста.
Песочные часы
Если (бюст – бедра) ≤ 2,5 см И (бедра – бюст) < 9,2 см И (бюст – талия) ≥ 23 см, либо ≥ 25 см.
Нижние песочные часы
Если (бёдра – бюст) ≥ 2,5 см И (бедра – бюст) < 25 см И (бедра – талия) ≥ 23 см И (верх бёдер по отношению к талии) < 1,193
Верхние песочные часы
Если (бюст – бедра) > 2,5 см И (бюст – бедра) < 25 см И (бюст — талия) ≥ 23 см
Ложка (груша)
Если (бёдра – бюст) > 5 см И (бедра – талия) ≥ 18 см И (верх бёдер/талия) ≥ 1,193
Треугольник
Если (бедра – бюст) ≥ 9,2 см И (бедра – талия) < 23 см.
Перевернутый треугольник
Если (бюст – бедра) ≥ 9,2 см И (бюст – талия) < 23 см.
Прямоугольник
Если (бедра – бюст) < 9,2 см И (бюст – бедра) < 9,2 см И (бюст – талия) < 23 см И (бедра – талия) < 25 см.
Коэффициент талии
Существует также коэффициент талии (Waist-Hip Ratio, или WHR). Он определяется как соотношение окружности талии и окружности бедра. К примеру, женщина с талией 86 см и бедрами 102 сантиметра будет иметь соотношение 86/102, или коэффициент 0,84.
Коэффициент WHR иногда используется как показатель здоровой массы тела. Научные исследования на эту тему показывают, что женщины с большим объемом талии или с фигурой типа «яблоко» чаще страдают от ожирения, чем женщины с грушевидной фигурой.
Согласно данным Национального института по исследованию диабета, болезней пищеварительной системы и почек США (NIDDK), женщины с WHR выше 0,8 и мужчины с WHR выше 1 имеют более высокие риски для здоровья из-за ненормального распределения жира
Как тип фигуры связан с рисками для здоровья?
WHR чаще всего используется для определения степеней ожирения. ВОЗ устанавливает следующие параметры:
Оба показателя соответствуют индексу массы тела (ИМТ) выше 30, а это указывает на повышенные риски по целому ряду заболеваний от ишемической болезни сердца и гипертонии до сахарного диабета и некоторых видов рака.
При этом коэффициент талии оказался более эффективным для определения рисков у пожилых людей (старше 75 лет). WHR также оказался полезнее для предугадывания сердечно-сосудистых заболеваний[ii].
Специалистами ВОЗ также было установлено, что брюшной (абдоминальный) жир, характерный для людей с фигурой типа «яблоко», более опасен для здоровья, нежели периферический. Чем выше WHR, тем хуже.
Соотношение талии и бедер также коррелирует с фертильностью, причем для женщин и мужчин оптимальными будут разные значения. При WHR>0,8 у женщин значительно ухудшаются шансы забеременеть. При этом WHR>0,9 у мужчин практически никак не влияет на их репродуктивные качества.
[i] Lee, J.Y., Istook,C.L., Nam, Y. J., and Park, S. M.,, «Comparison of body shape between USA and Korean women», International Journal of Clothing Science and Technology, Vol.19, No.5, 2007, pp.374-391.
[ii] Yusuf S, Hawken S, Ounpuu S, Bautista L, Franzosi MG, Commerford P, Lang CC, Rumboldt Z, Onen CL, Lisheng L, Tanomsup S, Wangai P, Razak F, Sharma AM, Anand SS (November 2005). «Obesity and the risk of myocardial infarction in 27,000 participants from 52 countries: a case-control study». Lancet. 366 (9497): 1640-9.
Как определить свой тип фигуры и как с ним жить
3 ноября 2016
Ликбез
Жизнь
Лайфхакер рассказывает, что такое тип фигуры, как определить его самостоятельно, что делать с получившимся результатом, и приводит советы по выбору одежды для женщин любой комплекции.
Почему один и тот же наряд на вашей подруге и на вас смотрится совершенно по-разному, даже если рост и вес одинаковы? Всё дело в разных типах фигуры.
Тип фигуры зависит от особенностей строения и развития костной, жировой и мышечной тканей. Большей частью он обусловлен генетикой, но может корректироваться режимом питания и физическими упражнениями.
Любой человек красив и неповторим. Тело каждого имеет свои достоинства и недостатки. Знать свой тип фигуры важно для того, чтобы эффективнее тренироваться и научится подбирать одежду так, чтобы выглядеть наиболее привлекательно.
Женские типы фигуры
По общим признакам можно выделить пять типов женской фигуры: «песочные часы», «прямоугольник», «треугольник», «перевёрнутый треугольник» и «яблоко». Чтобы определить, к какому типу принадлежите вы, достаточно вооружиться сантиметровой лентой и сделать три замера.
- Объём груди: поверх привычного бюстгальтера без пуш-апа, по самой выступающей точке, держа сантиметр параллельно полу.
- Объём талии: по наиболее узкой части тела (чуть выше пупка), не втягивая и не выпячивая живот.
- Объём бёдер: по самой широкой части бёдер, держа ленту параллельно полу.
Теперь оцениваем результаты.
- Если грудь и бёдра примерно равны по объёму, а талия ощутимо меньше (на 20–30 сантиметров), то ваш тип фигуры — «песочные часы».
- Если грудь и бёдра примерно равны по объёму, а талия не сильно выделяется на их фоне, то вы — «прямоугольник».
- Если грудь меньше бёдер в объёме при видимой талии, то ваш тип фигуры — «треугольник» («груша»).
- Если грудная клетка объёмнее низа тела, а плечи внешне шире бёдер, то ваша фигура — «перевёрнутый треугольник» (Т-образная фигура).
- Если больше всего выделяется талия, живот и грудная клетка, а ноги стройные, то ваш тип фигуры — «круг» («яблоко»).
Uaua.info
Песочные часы
Пресловутые 90/60/90 — про этот тип фигуры. Такие дамы могут гордиться хорошо выраженной талией и выделяющимися плечами и бёдрами. Причём такие пропорции сохранятся даже при наборе веса, что не может не радовать.
X-образный силуэт женского тела является негласным идеалом, воспеваемым со времён Античности. Если вы счастливая обладательница подобного типа фигуры, обрадуем. Главное в вашем случае — не нарушать гармоничные пропорции груди, талии и бёдер.
Основная задача
Подчеркнуть изгибы фигуры, сохраняя гармонию верха и низа.
Подойдёт
Практически всё. Наиболее выгодно подчеркнут фигуру:
- Приталенные силуэты.
- Блузки, пальто и плащи с запáхом и поясами.
- V-образный или круглый вырез на кофточках и платьях.
- Юбка-карандаш, трапеция или солнышко.
- Джинсы и брюки с высокой посадкой.
- Пояс на талию в качестве аксессуара.
Не подойдёт
- Мешковатая одежда, скрывающая силуэт.
- Верхняя одежда прямого покроя.
- Платья или блузки с завышенной или заниженной талией.
- Джинсы или брюки с низкой посадкой.
Обладательницы фигуры «песочные часы»: Софи Лорен, Элизабет Тейлор, Дита фон Тиз, Ким Кардашьян
Прямоугольник
Женщины с подобным типом фигуры обладают равными по объёму грудью и бёдрами, а талия у них выражена слабо или не выражена совсем (например, если при объёме груди в 92 сантиметра талия больше 70 сантиметров).
Такое телосложение более атлетично и спортивно, чем, например, «песочные часы», а недостаточный изгиб талии можно визуально увеличить. Для того, чтобы подчеркнуть особенности подобной фигуры, надо всего лишь сохранить гармонию плеч и бёдер, визуально сузив талию. Этого эффекта можно добиться, создав дополнительный объём в другой части тела.
Основная задача
Сделать акцент на талии и красивых ногах, сохранив равновесие верхней и нижней частей тела.
Подойдёт
- Приталенная верхняя одежда, пальто с поясом.
- Топы на тонких лямках, кофточки с рукавами фонариком.
- Пиджаки или верхняя одежда с прямой линией плеч.
- Платья без лямок или с запáхом.
- Юбка-трапеция, солнышко или с разрезом.
- Облегающие брюки или джинсы со средней или низкой посадкой.
- Классические прямые брюки или капри.
Не подойдёт
- Мешковатая или oversized-одежда.
- Одежда, чрезмерно открывающая область живота.
- Прямые фасоны верхней одежды или платья.
- Майки, топы без рукавов или с вырезом под горло, водолазки.
- Легинсы, юбки-карандаш.
Звёзды с «прямоугольной» фигурой: Николь Кидман, Кира Найтли, Кэмерон Диаз, Анна Курникова
Треугольник (груша)
Обладательницы такого телосложения могут гордиться своими изящными узкими плечами и талией, а также аппетитными бёдрами. Стоит учесть, что с такими параметрами изнурять себя строгими диетами, пытаясь сделать пятую точку меньше, чем она может быть, бессмысленно.
Тип фигуры «груша» сохраняется при модельном и при избыточном весе. Лучше больше внимания привлечь к красивым шее, ключицам и рукам, что легко можно сделать с помощью подходящей одежды.
Основная задача
Уравновесить бёдра акцентом на верхнюю часть тела.
Подойдёт
- Приталенная верхняя одежда, пальто-трапеция.
- Любая приталенная одежда с накладными плечами (пальто, пиджаки, жакеты).
- Блузки, топы и майки с открытыми плечами, без рукавов или с широким вырезом.
- Юбка-трапеция или карандаш.
- Тёмные брюки или джинсы прямого покроя.
- Брюки или джинсы, расширяющиеся книзу.
Не подойдёт
- Мешковатая верхняя одежда, длинные пальто прямого покроя.
- Топы или блузки с вырезом под горло, водолазки.
- Яркие массивные ремни на бёдра.
- Облегающие брюки или брюки-дудочки, особенно светлых цветов или с ярким принтом.
- Брюки или джинсы с декоративными элементами на карманах или поясе, пышные юбки, юбки клёш.
- Брюки или юбки с большим количеством утяжеляющих элементов: кружева, рюши, складки.
Знаменитости с типом фигуры «груша»: Рианна, Бейонсе, Дженнифер Лопес, Дженнифер Лав Хьюитт
Перевёрнутый треугольник (Т-образная фигура)
Для такого типа телосложения характерны широкие плечи и относительно узкие бёдра (например, по 95 и 90 сантиметров соответственно). Зачастую у обладательниц этой фигуры ноги длиннее и стройнее остальных женщин, с чем их можно поздравить.
Чтобы добавить больше гармонии «перевёрнутому треугольнику», воспользуемся ухищрениями стилистов. С помощью подходящей одежды визуально уменьшим плечи, увеличим бёдра и подчеркнём талию. Для этого больше всего подойдёт прямой покрой, минимальное количество деталей в районе груди, максимальное — на бёдрах.
Основная задача
Уравновесить верх и низ, не забыв о талии.
Подойдёт
- Пальто-трапеция.
- Квадратные, V- или U-образные вырезы на платьях, топах или блузках.
- Брюки или джинсы с низкой посадкой.
- Платья или топы с баской (оборкой ниже уровня талии).
- Широкие массивные ремни на бёдра.
- Юбки-трапеции, с запáхом, со складками или объёмными карманами.
Не подойдёт
- Длинные прямые пальто, мешковатая верхняя одежда.
- Топы или кофточки с широким вырезом лодочкой.
- Яркие объёмные свитеры или джемперы.
- Одежда с накладными плечами.
- Блузы или пиджаки с пышными рукавами.
- Тёмные прямые брюки или джинсы, легинсы.
- Юбка-карандаш или с длиной до лодыжек.
Знаменитые «перевёрнутые треугольники»: Анджелина Джоли, Деми Мур, Кэтрин Макфи, Кэйт Босуорт
Круг (яблоко)
У обладательниц этого типа фигуры прямой силуэт без выраженной талии, но с выдающейся грудью. Основная часть объёма фигуры находится в верхней части тела (зато ноги дольше всех остаются стройными).
Женщинам-«яблочкам» стоит внимательно следить за лишним весом: он имеет тенденцию откладываться на животе.
Основные задачи
Визуально вытянуть фигуру, обозначить талию и подчеркнуть красивые декольте и ноги.
Подойдёт
- Пальто-трапеция, верхняя одежда с А-силуэтом (узкая в груди и расширяющаяся книзу).
- Блузки или топы с V-образным вырезом.
- Платья с А-силуэтом или запáхом.
- Брюки и джинсы клёш с объёмными карманами.
- Одежда с крупными деталями (оборки, узоры, драпировки) ниже линии бёдер.
- Однотонная одежда с вертикальными вытачками.
Не подойдёт
- Сильно обтягивающая или мешковатая одежда.
- Топы и блузки без рукавов, с вырезом под горло или завязками через шею.
- Водолазки, короткие топы.
- Одежда с ярким принтом, оборками, декоративными элементами на плечах и животе.
- Узкие брюки, брюки и джинсы без карманов или с низкой посадкой.
- Обтягивающие юбки, юбка-карандаш.
Популярные «яблоки»: Кэтрин Зета-Джонс, Бритни Спирс, Джессика Джонс, Эми Шумер
Любая фигура красива и привлекательна, особенно если выгодно её подчеркнуть. А как одеваетесь вы, чтобы выглядеть ещё лучше?
type() и isinstance() в Python с примерами
Что такое type() в Python?
В Python есть встроенная функция type(), которая помогает найти тип класса переменной, переданной в качестве входных данных. Например, если ввод представляет собой строку, вы получите вывод как
Используя команду type(), вы можете передать один аргумент, а возвращаемое значение будет типом класса данного аргумента, например: тип (объект).
Также можно передать три аргумента в type(), т. е. type(name, bases, dict), в таком случае он вернет вам объект нового типа.
В этом уроке вы узнаете:
- Что такое type() в Python?
- Синтаксис для type():
- Пример type()
- Пример: Использование type() для объекта класса.
- Пример: использование имени, базы и dict в type()
- Что такое isinstance() в Python?
- Синтаксис isinstance():
- Примеры isinstance()
- Разница между type() и isinstance() в Python
Синтаксис для type():
type() можно использовать двумя способами, как показано ниже:
type(object) тип(намр, базы, дикт)
Параметры : тип (объект)
- объект: Это обязательный параметр. Если это единственный параметр, переданный в type(), он вернет вам тип параметра.
Параметры : type(name, bases, dict)
- name:имя класса.
- оснований: (необязательно). Это необязательный параметр, и он является базовым классом
- дикт: (необязательно). Это необязательный параметр, и это пространство имен, содержащее определение класса.
.
Возвращаемое значение:
Если объект является единственным параметром, переданным в type(), то он вернет вам тип объекта.
Если параметры, переданные в type, являются типом (object, bases, dict), в таком случае он вернет новый тип объекта.
Пример type()
В этом примере у нас есть строковое значение, число, значение с плавающей запятой, комплексное число, список, кортеж, dict и набор. Мы будем использовать переменные с типом, чтобы увидеть вывод для каждой из них.
str_list = "Добро пожаловать в Guru99" возраст = 50 пи = 3,14 c_num = 3j+10 my_list = ["А", "Б", "С", "Д"] my_tuple = ("А", "Б", "С", "Г") my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"} my_set = {'А', 'Б', 'С', 'Г'} print("Тип: ",type(str_list)) print("Тип: ",тип(возраст)) print("Тип: ",type(pi)) print("Тип: ",type(c_num)) print("Тип: ",type(my_list)) print("Тип: ",type(my_tuple)) print("Тип: ",type(my_dict)) print("Тип: ",type(my_set))
Вывод:
Тип:Тип: <класс 'int'> Тип: <класс 'поплавок'> Тип: <класс 'сложный'> Тип: <класс 'список'> Тип: <класс 'кортеж'> Тип: <класс 'dict'> Тип: <класс 'набор'>
Пример: Использование type() для объекта класса.
Когда вы проверяете объект, созданный из класса, с помощью type(), он возвращает тип класса вместе с именем класса. В этом примере мы создадим класс и проверим тип объекта, созданный из теста класса.
тест класса: с = «тестирование» т = тест () печать (тип (т))
Вывод:
<класс '__main__.test'>
Пример: Использование имени, оснований и словаря в type()
Тип также может быть вызван с использованием синтаксиса: type(name, bases, dict).
Три параметра, переданные в type(), т. е. name, bases и dict, являются компонентами, составляющими определение класса. Имя представляет имя класса, bases — это базовый класс, а dict — это словарь атрибутов базового класса.
В этом примере мы собираемся использовать все три параметра, т. е. имя, базы и dict в type().
Пример:
класс MyClass: х = «Привет, мир» у = 50 t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50)) печать (тип (t1)) печать (вары (t1))
Вывод:
<класс 'тип'> {'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': нет}
Когда вы передаете все три аргумента в type() , это помогает вам инициализировать новый класс с атрибутами базового класса.
Что такое isinstance() в Python?
Python isinstance является частью встроенных функций Python. Python isinstance() принимает два аргумента и возвращает true, если первый аргумент является экземпляром classinfo, заданным в качестве второго аргумента.
Синтаксис isinstance()
isinstance(объект, тип класса)
Параметры
- объект: Объект, экземпляр которого вы сравниваете с типом класса. Он вернет true, если тип соответствует false, в противном случае.
- тип класса: Тип или класс или кортеж типов и/или классов.
Возвращаемое значение:
Возвращает true, если объект является экземпляром classtype, и false, если нет.
Примеры isinstance()
В этом разделе мы рассмотрим различные примеры для изучения isinstance()
Пример: isinstance() Целочисленная проверка
Приведенный ниже код сравнивает целочисленное значение 51 с типом int. Он вернет true, если тип 51 совпадает с int, иначе false.
возраст = экземпляр (51, целое число) print("возраст - целое число:", возраст)
Вывод:
age - целое число: True
Пример: isinstance() Проверка с плавающей запятой
В этом примере мы собираемся сравнить значение с плавающей запятой с типом float, т.е. значение 3.14 будет сравниваться с типом float.
pi = экземпляр (3.14, с плавающей запятой) print("пи равно числу с плавающей запятой:", пи)
Вывод:
pi — число с плавающей запятой: True
Пример: isinstance() Проверка строки
message = isinstance("Hello World",str) print("сообщение представляет собой строку:", сообщение)
Вывод:
сообщение представляет собой строку: True
Пример: isinstance() Проверка кортежа
Код проверяет наличие кортежа (1,2,3,4,5) с типом tuple. Он вернет true, если введенный вход имеет тип tuple, и false, если нет.
my_tuple = экземпляр((1,2,3,4,5),кортеж) print("my_tuple является кортежем:", my_tuple)
Вывод:
my_tuple является кортежем: True
Пример: isinstance() Проверка набора
Код проверяет набор ({1,2,3,4,5}, с установленным типом. Он возвращает true, если заданный тип ввода имеет установленный тип, и false, если нет
my_set = экземпляр ({1,2,3,4,5}, набор) print("my_set это набор:", my_set)
Вывод:
набор my_set: True
Пример: проверка списка isinstance()
Код проверяет наличие списка [1,2,3,4,5] со списком типов. Он вернет true, если введенный вход имеет тип list, и false, если нет.
my_list = экземпляр([1,2,3,4,5],список) print("my_list это список:", my_list)
Вывод:
my_list — это список: True
Пример: проверка словаря isinstance()
Код проверяет dict({«A»:»a», «B»:»b», «C»:»c», «D»:»d»}, с типом dict. Он возвращает истина, если данный ввод имеет тип dict и ложь, если нет
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":" д"},дикт) print("my_dict это словарь:", my_dict)
Вывод:
my_dict — это словарь: True
Пример: проверка isinstance() для класса
Код показывает проверку типа класса с помощью isinstance() . Объект класса сравнивается с именем класса внутри isinstance(). Он возвращает true, если объект принадлежит классу, и false в противном случае.
класс MyClass: _message = "Привет, мир" _класс = МойКласс() print("_class является экземпляром MyClass() : ", isinstance(_class,MyClass))
Вывод:
_class является экземпляром MyClass() True
Разница между type() и isinstance() в Python
type() | isinstance() |
---|---|
В Python есть встроенная функция type(), которая помогает найти тип класса переменной, переданной в качестве входных данных. | В Python есть встроенная функция isinstance(), которая сравнивает значение с заданным типом. Если заданное значение и тип совпадают, он вернет true, в противном случае — false. |
Возвращаемое значение является типом объекта | Возвращаемое значение является логическим, т. е. истинным или ложным. |
класс А: мой_список = [1,2,3] класс Б(А): мой_списокB = [1,2,3] печать (тип (А ()) == А) печать (тип (B ()) == A) Выход: Верно Ложь В случае типа проверка подкласса возвращает false. | класс А: мой_список = [1,2,3] класс Б(А): мой_списокB = [1,2,3] печать (экземпляр (A(), A)) печать (экземпляр (B(), A)) Выход: Верно Правда isinstance() дает истинное значение при проверке с подклассом. |
Резюме:
- Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, переданной в качестве входных данных. Например, если ввод представляет собой строку, вы получите вывод как
, для списка это будет и т. д. - Для type() вы можете передать один аргумент, и возвращаемое значение будет типом класса данного аргумента, например, type(object).
- Также можно передать три аргумента в type(), т. е. type(name, bases, dict), в таком случае он вернет вам объект нового типа.
- Python имеет встроенную функцию instance(), которая сравнивает значение с заданным типом. Если заданное значение и тип совпадают, он вернет true, в противном случае false. Используя isinstance(), вы можете тестировать строку, число с плавающей запятой, целое число, список, кортеж, словарь, набор, класс и т. д.
- Используя метод isinstance(), вы можете проверить строку, число с плавающей запятой, целое число, список, кортеж, словарь, набор, класс и т. д.
Понимание и расчет количества параметров в сверточных нейронных сетях (CNN) | Ракшит Васудев
https://www.learnopencv.com/wp-content/uploads/2018/05/AlexNet-1.pngПример взят с курса: https://www.coursera.org/learn/convolutional-neural-networks /lecture/uRYL1/cnn-example
К вашему сведению: приведенное выше изображение не представляет правильное количество параметров. Обратитесь к разделу «ИСПРАВЛЕНИЕ». Вы можете пропустить этот раздел, если вам нужны только цифры.
Если вы играли с CNN, то обычно сталкиваетесь со сводкой параметров, как показано на изображении выше. Мы все знаем, что размер активации легко рассчитать, учитывая, что это просто произведение ширины, высоты и количества каналов в этом слое.
Например, как показано на изображении выше с курса, форма входного слоя (32, 32, 3), размер активации этого слоя 32 * 32 * 3 = 3072. То же самое верно, если вы хотите рассчитать форму активации любого другого слоя. Скажем, мы хотим рассчитать размер активации для CONV2. Все, что нам нужно сделать, это просто умножить (10,10,16) , то есть 10*10*16 = 1600, и вы закончили вычисление размера активации.
Однако, что иногда может вызвать затруднения, так это подход к подсчету количества параметров в заданном слое. С учетом сказанного, вот несколько простых идей, которые следует иметь в виду, чтобы сделать то же самое.
Позвольте задать вам вопрос: как CNN учится?
Это восходит к идее понимания того, что мы делаем со сверточной нейронной сетью, которая в основном пытается узнать значения фильтров, используя обратное распространение. Другими словами, если слой имеет весовые матрицы, это «обучаемый» слой.
По сути, количество параметров в данном слое — это количество «обучаемых» (при условии, что такое слово существует) элементов для фильтра, также называемых параметрами фильтра для этого слоя.
Параметры в целом представляют собой веса, которые изучаются во время обучения. Это весовые матрицы, которые вносят свой вклад в предсказательную силу модели и изменяются в процессе обратного распространения. Кто управляет изменениями? Ну, выбранный вами алгоритм обучения, особенно стратегия оптимизации, заставляет их менять свои значения.
Теперь, когда вы знаете, что такое «параметры», давайте углубимся в вычисление количества параметров в примере изображения, которое мы видели выше. Но я хотел бы снова включить это изображение сюда, чтобы избежать ваших усилий и времени на прокрутку.
Пример взят из Coursera: https://www.coursera.org/learn/convolutional-neural-networks/lecture/uRYL1/cnn-example
- Входной слой: Входному слою нечего изучать, по сути, что это просто обеспечивает форму входного изображения. Так что здесь нет обучаемых параметров. Таким образом число параметров = 0 .
- Слой CONV: Здесь учится CNN, поэтому, конечно, у нас будут весовые матрицы. Чтобы рассчитать обучаемые параметры здесь, все, что нам нужно сделать, это просто умножить на форму ширина m , высота n , фильтры предыдущего слоя d и учесть все такие фильтры k в текущем слое . Не забывайте о смещении для каждого фильтра. Количество параметров в слое CONV будет: ((m * n * d)+1)* k) , добавлено 1 из-за члена смещения для каждого фильтра. Это же выражение можно записать следующим образом: ((форма ширины фильтра * форма высоты фильтра * количество фильтров в предыдущем слое+1)*количество фильтров). Где термин «фильтр» относится к количеству фильтров в текущем слое.
- Слой POOL: У него нет обучаемых параметров, потому что все, что он делает, это вычисляет конкретное число, без обратного обучения! Таким образом число параметров = 0 .
- Полносвязный слой (FC): У этого, безусловно, есть обучаемые параметры, на самом деле, по сравнению с другими слоями, эта категория слоев имеет наибольшее количество параметров, почему? потому что каждый нейрон связан с каждым другим нейроном! Итак, как здесь посчитать количество параметров? Вы наверное знаете, это произведение количества нейронов текущего слоя c и количества нейронов предыдущего слоя p и как всегда не забывайте про термин смещения. Таким образом, количество параметров здесь: ((нейроны текущего слоя c * нейроны предыдущего слоя p)+1*c) .
Теперь давайте проследим за этими указателями и посчитаем количество параметров, хорошо?
Пример взят с курса https://www.coursera.org/learn/convolutional-neural-networks/lecture/uRYL1/cnn-example
- Первый входной слой не имеет параметров. Ты знаешь почему.
- Параметры в второй CONV1(форма фильтра =5*5, шаг=1) слой: ((форма ширины фильтра*форма фильтра высоты*количество фильтров в предыдущем слое+1)*количество фильтров ) = (((5*5*3)+1)*8) = 608.
- Третий уровень POOL1 не имеет параметров. Ты знаешь почему.
- Параметры в четвертом слое CONV2 (форма фильтра = 5*5, шаг = 1) : ((форма ширины фильтра * форма фильтра высоты * количество фильтров в предыдущем слое+1) * количество фильтров) = (((5*5*8)+1)*16) = 3216,
5. Пятый слой POOL2 не имеет параметров. Ты знаешь почему.
6. Параметры в Шестой слой FC3 ((текущий слой c*предыдущий слой p)+1*c) = 120*400+1*120= 48120.
7. Параметры в Седьмой слой FC4: ((текущий слой c*предыдущий слой p)+1*c) = 84*120+1* 84 = 10164.
8. Восьмой слой Softmax имеет ((текущий слой c*предыдущий слой p)+1*c) параметры = 10*84+1*10 = 850,
Спасибо за комментарии наблюдательных читателей. Оцените исправления. Изменено изображение для лучшего понимания.
FYI :
- Я использовал термин «слой», чтобы объяснить разделение. В идеале CONV + объединение называется слоем.
2. Тот факт, что в слое пула нет параметров, не означает, что пул не играет никакой роли в обратном распространении. Слой пула отвечает за передачу значений на следующий и предыдущий уровни во время прямого и обратного распространения соответственно.