Сообщения

Сообщения за ноябрь, 2019

Keras. Слои нейронной сети

Истточник  https://www.kaggle.com/yassineghouzam/introduction-to-cnn-keras-0-997-top-6#1.-Introduction  Keras Sequential API, нужно просто добавлять один слой за раз, начиная с ввода. Первый - это сверточный (Conv2D) слой. Это как набор обучаемых фильтров. Я решил установить 32 фильтра для двух первых слоев conv2D и 64 фильтра для двух последних. Каждый фильтр преобразует часть изображения (определяется размером ядра), используя фильтр ядра. Матрица фильтра ядра применяется ко всему изображению. Фильтры можно рассматривать как преобразование изображения. CNN может изолировать функции, которые везде полезны, от этих преобразованных изображений (карты функций). Вторым важным уровнем в CNN является уровень пула (MaxPool2D). Этот слой просто действует как фильтр понижающей дискретизации. Он смотрит на 2 соседних пикселя и выбирает максимальное значение. Они используются для уменьшения вычислительных затрат и в некоторой степени также для уменьшения переоснащения. Мы должн...

Разбор кода. Инсталляции(начало)

import os import numpy as np import matplotlib.pyplot as plt import cv2 % matplotlib inline Команда  %matplotlib inline  указывает, что график необходимо построить все в той же оболочке Jupyter, но теперь он выводится как обычная картинка. Данный способ удобен тем, что позволяет проводить очень много экспериментов в рамках одного окна (точнее web-страницы). В этом статическом режиме, никакие изменения не отобразятся до тех пор пока не будет выполнена команда  plt.show() plt.imshow(image)  Принимает на вход матрицу и выдает изображение. import os Модуль os предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. os.path  является вложенным модулем в  модуль os , и реализует некоторые полезные функции для работы с путями. os.path.join (path1[, path2[, ...]]) - соединяет пути с учётом особенностей операционной системы. im...

Создание сверточных нейронных сетей с нуля

Изображение
Источник  https://towardsdatascience.com/a-guide-to-convolutional-neural-networks-from-scratch-f1e3bfc3e2de Создание сверточных нейронных сетей с нуля Сверточные слои: Способ количественной оценки влияния каждого фильтра состоял бы в том, чтобы вычислить оценку для каждого изображения и каждого фильтра.  Чем ближе оценка к единице, тем больше функция влияет на ввод.  Применение фильтра 5x5x3 (полукруг и линия) к изображению 32x32x3 (круг и квадрат) создает карту активации 28x28, которая показывает, где изображение больше всего похоже на фильтр.  Это изображение показывает, что там, где фильтр похож на изображение, оценка высока. Применение фильтра 5x5x3 (полукруг и линия) к изображению 32x32x3 (круг и квадрат) создает карту активации 28x28, которая показывает, где изображение больше всего похоже на фильтр.  Это изображение показывает, что фильтры не похожи на изображение, поэтому оценки низкие. Одна проблема с...

Просмотреть. ConvNN

Изображение
Материал взят здесь  http://cs231n.github.io/convolutional-networks/ Сверточные нейронные сети (CNNs / ConvNets) Сверточные нейронные сети очень похожи на обычные нейронные сети из предыдущей главы: они состоят из нейронов, которые имеют обучаемые веса и смещения.  Каждый нейрон получает некоторые входные данные, выполняет точечное произведение и, возможно, следует за ним с нелинейностью.  Вся сеть по-прежнему выражает одну дифференцируемую функцию оценки: от необработанных пикселей изображения на одном конце до оценки класса на другом.  И у них все еще есть функция потерь (например, SVM / Softmax) на последнем (полностью подключенном) слое, и все советы / приемы, которые мы разработали для изучения обычных нейронных сетей, по-прежнему применимы. Так что меняется?  Архитектуры ConvNet делают явное предположение, что входные данные являются изображениями, что позволяет нам кодировать определенные свойства в архитектуру.  Это делает функцию пересылки ...