Элементы рабочего стола: 22. Основные элементы рабочего стола Windows. Контекстное меню. Работа с

1.1. РАБОЧИЙ СТОЛ И ЕГО ЭЛЕМЕНТЫ

Информатика и вычислительная техника / Компьютерный инструментарий / 1.1. РАБОЧИЙ СТОЛ И ЕГО ЭЛЕМЕНТЫ

Операционные системы Windows реализуют объектно-ориентированный подход. На уровне пользователя объектный подход выражается в том, что интерфейс представляет собой подобие реального мира, а работа с ПК сводится к действиям с привычными объектами. Поэтому при загрузке пользователю предоставляется рабочий стол, который является более или менее точной моделью обычного письменного стола.

Аналогично тому, как ваш настоящий рабочий стол является частью той мебели, на которой вы размещаете различные объекты (такие, как бумага, телефон, калькулятор, карандаш, записная книжка, отчет и т.д.), рабочий стол Windows является частью «мебели», на которой вы размещаете компьютерные эквиваленты документов и инструментов (рис. 6.1). Когда вы перемещаете реальный объект на рабочем столе, вы просто поднимаете вещь и переносите ее на новое место. То же происходит и на рабочем столе Windows.

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

Фоновая часть экрана называется рабочим столом (Desktop). На рабочем столе располагаются: значки (Icons), соответствующие различным приложениям или документам, панель задач (Taskbar), на которой расположена кнопка «Пуск» (Start) кнопки запущенных приложений, а также окна, в которых выполняются приложения.

Рис. 7.1 Внешний вид экрана Windows

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

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

1. деленных очень маленьким промежутком времени; если сделать это недостаточно быстро, Windows будет считать их двумя отельными щелчками).

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

3. Для запуска программ и переключения ранее запущенных программ можно использовать кнопку Пуск (Start) и другие кнопки, расположенные на панели задач.

4.

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

5. Можно перетаскивать с помощью мыши значки, располагающиеся на рабочем столе, в любое удобное для вас место – там они и будут располагаться в дальнейшем. На рабочий стол можно поместить не только значки приложений и отдельных документов, но и значки папок. Папки (Folders) – это новое наименование каталогов (directories).

6. Значки ярлыков (shortcut icons) на рабочем столе Windows представляют собой указатели на программы и документы. В левом нижнем углу ярлыка располагается маленькая изогнутая стрелка. Двойной щелчок по ярлыку открывает документ или запускает программу. Удаление ярлыка не приводит к удалению того файла, на который он указывает. Основная цель введения ярлыков – обеспечить доступ к программе или документу из различных мест, где они могут понадобиться, при этом, не создавая нескольких раздельно хранящихся физических копий файла.

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

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

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

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

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

404 Cтраница не найдена

Контакты

Размер шрифта:
A
A
A

Цвет сайта:
A
A
A
A

Полная версия сайта

Версия для слабовидящих

+7 (81664) 40429

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

  • Сведения об образовательной организации

    • Основные сведения
    • Структура и органы управления образовательной организацией
    • Документы
    • Образование
    • Образовательные стандарты и требования
    • Руководство. Педагогический состав
    • Места осуществления образовательной деятельности
    • Материально-техническое обеспечение и оснащённость образовательного процесса
    • Платные образовательные услуги
    • Стипендии и меры поддержки обучающихся
    • Финансово-хозяйственная деятельность
    • Вакантные места для приёма (перевода) обучающихся
    • Доступная среда
    • Международное сотрудничество
  • Абитуриентам

    • Образец заявления и согласия на обработку персональных данных
    • Правила приема в образовательную организацию
    • Информация для поступления лиц с инвалидностью и ОВЗ
    • Условия приема на обучение по договорам об оказании платных образовательных услуг
    • Перечень специальностей, требования к уровню образования
    • Вступительные испытания
    • Особенности проведения вступительных испытаний для инвалидов и лиц с ограниченными возможностями здоровья
    • Информация о возможности приема заявлений и необходимых документов в электронной форме
    • Медицинские осмотры
    • Общее количество мест для приема по каждой специальности
    • Правила подачи и рассмотрения апелляций по результатам вступительных испытаний
    • Информация о наличии общежития и количество мест в общежитии
    • Образец договора об оказании платных образовательных услуг
    • Информация о начале учебного года
    • Приказ о зачислении поступающих
    • Списки абитуриентов, рекомендованных к зачислению в ОГБПОУ «БАДК»
    • Режим работы приемной комиссии
    • Стандарты ФГОС
    • Презентация БАДК
    • СМИ о нас
    • Мероприятие для школьников в рамках деловой программы V Регионального чемпионата «Молодые профессионалы» (WorldSkills Russia)
    • Дополнительное образование
    • Сведения о ходе приема
    • Рейтинг аттестатов
  • Студентам

    • Промежуточная аттестация
    • Расписание экзаменов
    • Расписание
    • График учебного процесса
    • Доверяем вместе!
    • Дистанционное обучение
    • График пересдачи задолженностей
    • График дежурства учебных групп
    • График приема отчетов (дневников) по практикам за 2020/2021 учебный год
    • Ресурс «Персональныеданные. Дети»
    • Список кураторов учебных групп
    • Порядок постинтернатного сопровождения
    • Персональные данные (видеоролик)
    • График проведения родительских собраний в 1 семестре
    • Содействие трудоустройству
    • График посещения кураторами студентов, проживающих в общежитиях колледжа
  • Доп. материалы

    • Новости
    • Противодействие коррупции
    • Планирование на месяц
    • Одаренная молодежь
    • Независимая оценка
    • Готов к труду и обороне
    • Противодействие наркомании
    • Объекты соц. инфраструктуры
    • Электронные образовательные ресурсы
    • Обратная связь
    • Родителям
    • Поиск
    • Методические материалы по признакам девиаций, действиям специалистов системы образования в ситуациях социальных рисков и профилактике девиантного поведения обучающихся
    • Наставничество
    • Доступная среда
    • Пожарная безопасность
    • Памятка безопасного поведения на дорогах
    • Хотите быть в курсе новостей Новгородской области?
    • Бесплатная юридическая помощь
    • Безопасность на железной дороге
    • Горячая линия в системе СПО
    • Памятка по профилактике новой коронавирусной инфекции
  • Контакты
  • Галерея славы
  • WorldSkills Russia
  • Демонстрационный экзамен
  • RuTube
  • ВКонтакте
  • Реализация основных профессиональных образовательных программ с помощью электронного обучения и дистанционных образовательных технологий
  • Запущена «горячая линия»
  • Мастерские 2019
  • Работа в России
  • В помощь выпускнику в 2022 году
  • Воспитание
  • Содействие трудоустройству
  • Доступная среда
  • Студенческий спортивный клуб
  • Реализация своего потенциала на максимум
  • Направления и результаты научной (научно-исследовательской) деятельности и научно-исследовательской базе для ее осуществления
  • ОГБПОУ «БАДК» —
  • Реализация основных профессиональных образовательных программ с помощью электронного обучения и дистанционных образовательных технологий
  • 2020-2021 учебный год
  • Орлова А. А.

Основные части компьютера

Урок 3: Основные части компьютера

/en/computerbasics/what-is-a-computer/content/

Введение

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

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

Ищете старую версию этого видео? Вы все еще можете просмотреть его здесь.

Корпус компьютера

Корпус компьютера представляет собой металлическую и пластиковую коробку, в которой находятся основные компоненты компьютера, включая материнскую плату, центральный процессор (ЦП) и блок питания. На передней части корпуса обычно имеется кнопка включения/выключения и один или несколько оптических приводов .

Компьютерные корпуса бывают разных форм и размеров. А 9Настольный корпус 0009 лежит на столе, а монитор обычно располагается на нем. Корпус Tower высокий и устанавливается рядом с монитором или на полу. Компьютеры «все в одном» поставляются со встроенными внутренними компонентами в монитор, что устраняет необходимость в отдельном корпусе.

Монитор

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

Новые мониторы обычно имеют LCD (жидкокристаллический дисплей) или LED (светоизлучающий диод). Их можно сделать очень тонкими, и их часто называют плоскопанельными дисплеями . В старых мониторах используются дисплеи CRT (электронно-лучевая трубка). ЭЛТ-мониторы намного больше и тяжелее, и они занимают больше места на столе.

Клавиатура

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

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

doneoneedit hotspots

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

Мышь

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

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

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

Альтернативы мыши

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

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

Продолжать

Предыдущий: Что такое компьютер?

Далее:Кнопки и порты на компьютере

/en/computerbasics/кнопки-и-порты-на-компьютере/контент/

Обнаружение элементов рабочего стола с помощью глубокого обучения :: Alban Siffer

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


Примечания

Исходный пост (написанный Джозефом Пайярдом) был опубликован в блоге Amossys. Здесь некоторые элементы, относящиеся к компании Amossys (и не
главное в этом блоге) были удалены.


Образец прогноза

Контекст

Этот проект был реализован в рамках конкурса AI & Cyber, который проводился во время European Cyber ​​Week (ECW) 2020.
В этом году задача состояла в том, чтобы смоделировать поведение человека на компьютере.
Для этого каждая команда должна была разработать агента, взаимодействующего с машиной по протоколу VNC (на цели нельзя запускать агент).
Затем программы оценивались по визуальным характеристикам, которые они продемонстрировали, и по тому, обманули ли они жюри или нет.

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

Стратегия

Среди 5 органов чувств зрение чаще всего используется во время работы за компьютером. Поэтому для имитации человеческого поведения уместно попытаться воспроизвести зрительное восприятие компьютера человеком.
Компьютерное зрение, подобласть искусственного интеллекта, зародилось в 1960-х годов для решения этой проблемы.

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

Подразделы компьютерного зрения

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

Сверточные нейронные сети (CNN)

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

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

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

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

Пример процесса свертки

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

Выбор модели

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

Три модели отличаются скоростью и точностью обнаружения объектов:

  1. Региональные предложения (Faster-R-CNN)
  2. Ты смотришь только раз (YOLO)
  3. Однокадровый детектор MultiBox (SSD)

По сути, YOLO — самый быстрый, а Faster-R-CNN — самый точный (SSD находится между ними).
Вы можете взглянуть на этот пост для более глубокого анализа.
В нашем подходе мы в основном работали с Faster-R-CNN с тех пор, как
точность казалась наиболее важной характеристикой. Имея пару
прогнозов в секунду достаточно, чтобы имитировать поведение человека.

С аппаратной точки зрения разумный размер графического процессора (GeForce GTX 1660 с 6 ГБ ОЗУ) позволяет нам загружать модель и делать выводы со скоростью примерно 5 кадров в секунду .

Адаптация Faster-R-CNN к обнаружению значков

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

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

Тонкая настройка

Тонкая настройка — довольно эффективный метод адаптации Faster R-CNN к нашей задаче обнаружения значков.
Вместо случайной инициализации модели мы начинаем с модели, предварительно обученной на очень большом наборе данных (например, ImageNet, который содержит 1,2 миллиона изображений с 1000 категориями).
На данном этапе модель очень эффективна для обнаружения обычных объектов. Затем обучение выполняется на последних слоях, а ранние замораживаются.
Это мотивировано наблюдением, что ранние уровни CNN содержат более общие функции (например, детекторы границ или детекторы цвета), которые полезны для многих задач. Более поздние уровни CNN становятся все более специфичными для деталей классов, содержащихся в исходном наборе данных.
Дополнительные сведения об архитектуре Faster R-CNN см. в оригинальной статье.
В результате количество оптимизируемых параметров сильно сокращается, а замороженные уже близки к своему оптимальному значению.

В PyTorch предварительно обученную модель Faster R-CNN (с магистралью resnet50) можно легко загрузить с помощью пакета torchvision :

 import torchvision
модель = torchvision.models.detection.fasterrcnn_resnet50_fpn (предварительно обученный = True)
 

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

 из torchvision.models.detection import fastrcnn_resnet50_fpn
из torchvision.models.detection.faster_rcnn импортировать FasterRCNN, FastRCNNPredictor
def get_model(num_classes: int) -> FasterRCNN:
    # загрузить модель сегментации экземпляра, предварительно обученную на COCO
    модель = fastrcnn_resnet50_fpn (предварительно обученный = True)
    # получаем количество входных признаков для классификатора
    in_features = model. roi_heads.box_predictor.cls_score.in_features
    # заменить предварительно обученную голову на новую
    model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes)
    модель возврата
 

Чтобы проверить, какие параметры будут оптимизированы, мы можем посмотреть
к их атрибуту require_grad .
Каждый параметр, у которого require_grad установлен на True , будет обновляться всякий раз, когда вызывается функция оптимизатора (т. е. выполняется шаг градиентного спуска). В нашем случае легко проверить, какая часть модели заморожена:

 для имени в model.named_parameters():
    если param.requires_grad:
        print("{0} требует диплома".format(name))
    еще:
        print("{0} не требует градации".format(name))
 
 backbone.body.layer1.X.convX.weight не требует градации
backbone.body.layer2.X.convX.weight требует градации
...
rpn.head.conv.weight требует град
roi_heads. box_head.XXX требует диплома
roi_heads.box_predictor.bbox_pred.weight требует градации
 

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

Выделенный набор данных

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

Сначала было сделано несколько скриншотов (около 100) из различных сред [Linux]. Затем каждое изображение было аннотировано ограничивающими рамками, относящимися к классам, которые мы хотим обнаружить (около 10 в начале).
Для аннотации изображений мы используем аннотатор VGG, который представляет собой простое и удобное в использовании HTML-приложение (см. ниже).

Аннотатор VGG: пользователь выбирает объекты, рисуя вокруг них прямоугольную рамку, и приложение создает файл json, содержащий аннотации

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

 ...
"0061_screenshot.png708446": {
    "файл_атрибуты": {
        "дистрибутив": "убунту"
    },
    "имя файла": "0061_screenshot.png",
    "регионы": [
    {
        "атрибуты формы": {
            "имя": "прямой",
            "х": 111,
            "у": 36,
            "ширина": 47,
            "высота": 42
        },
        "регион_атрибуты": {
            «Значок»: «папка»
        }
    },
    {
        "атрибуты формы": {
            "имя": "прямой",
            "х": 14,
            "у": 109,
            "ширина": 45,
            "высота": 45
        },
        "регион_атрибуты": {
            «Значок»: «папка»
        }
    },
 ...
 ],
 

Мы можем легко идентифицировать ограничивающие рамки ( shape_attributes ) и их метки ( region_attributes ).

Практическое обучение

Для обучения Faster-RCNN на нашем пользовательском наборе данных нам нужны два элемента:

  • загрузчик данных для подачи данных в CNN
  • оптимизатор для изменения параметров CNN для обеспечения наилучшего обнаружения

Загрузчик данных

Чтобы передать некоторые данные в наш Faster R-CNN, нам в основном нужен класс, учитывающий базовый интерфейс.
Он должен соединять json , предоставленный VIA, и интерфейс набора данных pytorch .
В нашем случае его структура приведена ниже.

 класс ScreenDataset:
    def __init__(я,
                 корень: ул,
                 преобразует: вызываемый,
                 json_file: ул):
        ...
 
    def __getitem__(self, idx: int):
        """
        Вернуть idx-е изображение (внутренне преобразованное) и его аннотации (n полей),
        следуя следующей структуре:
        цель = {
            «ящики»: [тензор n x 4],
            «метки»: [n x 1 тензор],
            'оценки': [n x 1 тензор],
        }
        """
        ...
        вернуть изображение, цель
 
    защита __len__(я):
        """
        Возвращает количество изображений в
        корневая директория
        """
        ...
 

Функция инициализации проверяет образы, расположенные в заданном корневом каталоге.
Предоставленная функция преобразования является общим инструментом для правильного формирования входного изображения в CNN.
Наконец, json_file — это файл аннотаций.

Для этого объекта необходимо обернуть два дополнительных метода в более общий PyTorch DataLoader (позволяющий пакетный выбор, перетасовку и т. д.).
В деталях функция __getitem__ выбирает изображение, преобразует его и анализирует файл json для вывода
аннотированные поля ( цель ).

 набор данных = ScreenDataset(
    корень="/путь/к/изображениям",
    трансформируется = весело,
    json_file="/path/to/file.json")
data_loader = torch.utils.data.DataLoader(
    набор данных = набор данных,
    размер партии = 5,
    перемешать = верно)
 

Оптимизатор и гиперпараметры

PyTorch предлагает несколько оптимизаторов.
В нашем случае мы используем классический стохастический градиентный спуск (SGD), который дает неплохие результаты.

 # получаем параметры для оптимизации
params = [p вместо p в model.parameters(), если p. requires_grad]
# запустите оптимайзер
оптимизатор = torch.optim.SGD (параметры, lr = 0,005, импульс = 0,9)
 

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

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

  1. количество эпох : Количество прямых проходов для каждого изображения набора данных
  2. размер партии : количество обучающих выборок (здесь изображения) для обработки перед выполнением обратного прохода.
  3. скорость обучения : размер шага, предпринимаемого при каждом градиентном спуске.

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

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

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

Другие параметры также существуют и должны быть тщательно выбраны.

Образец обучения

Теперь у нас есть все материалы для обучения нашей CNN. Этот этап включает в себя 4 этапа:

  1. проход вперед (предсказание)
  2. оценка (расчет потерь)
  3. обратный проход (расчет градиентов)
  4. шаг оптимизатора (градиентный спуск)

Учебная диаграмма PyTorch

На практике нам просто нужно перебрать данные в цикле. Одна эпоха может выглядеть так:

 для изображений, цели в data_loader:
    # здесь у нас есть набор изображений
    # и ограничивающие рамки (цели)
    # обнуляем градиенты параметров
    оптимизатор.zero_grad()
    # вычислить потери (прямой проход)
    потеря = модель (изображения, цели)
    # обратное распространение градиента
    потеря. назад()
    # обновление весов
    оптимизатор.шаг()
 

Теперь давайте увеличим Faster R-CNN:

  • Во время прямого прохода модель получает пакет изображений и возвращает объекты, обнаруженные на этих изображениях, вместе с их ограничивающими рамками и оценкой достоверности для каждое предсказание. Вывод выглядит так:
 модель.eval()
печать (модель (изображение))
{'ящики': тензор([[1668.7316, 271.4885, 1753.3470, 359.6610],
[973,9626, 402,9771, 1059,8567, 490,3125],
[1669.7742, 403.1881, 1754.4435, 490.4958],
[ 973.8992, 271.6441, 1059.7217, 359.6740]], устройство='cuda:0'),
метки: тензор ([7, 7, 7, 4], устройство = 'cuda: 0'),
'оценки': тензор ([0,9905, 0,6706, 0,4652, 0,3768], устройство = 'cuda: 0')}
 

Нашей модели требуется около 10-15 минут для обучения (100 изображений, 15 эпох, 2 пакета изображений) с GTX 1060 6 ГБ.

Результаты

После конкурса ECW мы разработали библиотеку desker , целью которой является
при реализации нескольких процедур обнаружения элементов рабочего стола.
Наша модель Faster R-CNN доступна через эту библиотеку, так что вы можете протестировать ее!

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

Заключение

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

Кроме того, обнаружение объектов может быть связано с оптическим распознаванием символов (OCR) и
другие методы обработки изображений для анализа текста на тех же скриншотах.
Такая информация может привести к еще более реалистичным действиям.
(просмотр определенных папок, нажатие на ссылки…).
Некоторые из этих методов, в частности, можно найти в Desker.

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

Стоит отметить, что размер пакета соответствует количеству изображений, которые будут загружены одновременно на GPU.
Следовательно, помимо замедления процесса обучения, ограниченная вычислительная мощность также не позволяет достичь хорошего приближения градиента и, таким образом, снижает качество обучения.
Однако метод накопления градиента позволяет компенсировать нехватку оперативной памяти. Чтобы справиться с ограниченной памятью, данный пакет делится на мини-пакеты, которые последовательно загружаются в GPU и передаются в модель.
Затем после каждого шага вычисляется градиент с обратным распространением , но параметры модели обновляются только после заданного количества шагов (равного количеству мини-пакетов в пакете).
Даже если сумма градиентов явно не равна градиенту большей партии, она предлагает лучшее приближение, избегая ошибок нехватки памяти.

Тренировочный процесс с накоплением градиента

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

Гиперпараметр Значение
размер партии 3
количество эпох 10
скорость обучения 0,005
ухудшение обучения 0,0005

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

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

Источники

  • https://en.wikipedia.org/wiki/Convolutional_neural_network
  • https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
  • https://medium.