На этом шаге мы рассмотрим слои с точки зрения Keras.
Слои, о которых мы рассказывали на прошлых шагах, являются фундаментальной структурой данных в нейронных сетях. Слой - это модуль обработки данных, принимающий на входе и возвращающий на выходе один или несколько тензоров. Некоторые слои не сохраняют состояния, но чаще это не так: есть веса слоя - один или несколько тензоров, обучаемых с применением алгоритма стохастического градиентного спуска, которые вместе хранят знания, накапливаемые сетью.
Разным слоям соответствуют тензоры разных форматов и разные виды обработки данных. Например, простые векторные данные, хранящиеся в двумерных тензорах с формой (образцы, признаки), часто обрабатываются плотно связанными слоями, которые также называют полносвязными или плотными слоями (класс Dense в Keras). Ряды данных хранятся в трехмерных тензорах с формой (образцы, метки_времени, признаки) и обычно обрабатываются рекуррентными слоями, такими как LSTM, или одномерными сверточными слоями (Conv1D). Изображения хранятся в четырехмерных тензорах и обычно обрабатываются двумерными сверточными слоями (Conv2D).
Слои можно считать кубиками лего глубокого обучения. Библиотеки, подобные Keras, делают это сравнение еще более явным: создание моделей глубокого обучения в Keras осуществляется путем объединения совместимых слоев в конвейеры обработки данных.
На следующем шаге мы рассмотрим базовый класс Layer.