Класс: Автоэнкодер
Восстановите входы с помощью обученного автоэнкодера
autoenc
- Обученный автоэнкодерAutoencoder
объектОбученный автоэнкодер, возвращенный как объект Autoencoder
класс.
Xnew
- Входные данныеВходные данные, заданные как матрица выборок, массив ячеек с данными изображения или массив данных с одним изображением.
Если автоэнкодер autoenc
был обучен на матрице, где каждый столбец представляет одну выборку, затем Xnew
должна быть матрицей, где каждый столбец представляет одну выборку.
Если автоэнкодер autoenc
был обучен на массиве ячеек изображений, затем Xnew
должен быть массивом ячеек с данными изображений или массивом с данными одиночных изображений.
Типы данных: single
| double
| cell
Y
- Предсказания для входных данных Xnew
Предсказания для входных данных Xnew
, возвращенный как матрица или массив ячеек с данными изображений.
Если Xnew
является матрицей, тогда Y
также является матрицей, где каждый столбец соответствует одной выборке (наблюдение или пример).
Если Xnew
- массив ячеек с данными изображений, затем Y
также является массивом ячеек данных изображений, где каждая камера содержит данные для одного изображения.
Если Xnew
- массив данных одиночного изображения, затем Y
также является массивом из одиночных данных изображения.
Загрузите обучающие данные.
X = iris_dataset;
Обучающие данные содержат измерения четырех атрибутов радужной оболочки глаза: Длина сепала, ширина чашелистика, длина лепестка, ширина лепестка.
Обучите автоэнкодер обучающим данным, используя положительную насыщающую линейную передаточную функцию в энкодере и линейную передаточную функцию в декодере.
autoenc = trainAutoencoder(X,'EncoderTransferFunction',... 'satlin','DecoderTransferFunction','purelin');
Восстановите измерения с помощью обученной сети, autoenc
.
xReconstructed = predict(autoenc,X);
Постройте график предсказанных значений измерений вместе с фактическими значениями в обучающем наборе данных.
for i = 1:4 h(i) = subplot(1,4,i); plot(X(i,:),'r.'); hold on plot(xReconstructed(i,:),'go'); hold off; end title(h(1),{'Sepal';'Length'}); title(h(2),{'Sepal';'Width'}); title(h(3),{'Petal';'Length'}); title(h(4),{'Petal';'Width'});
Красные точки представляют обучающие данные, а зеленые круги представляют восстановленные данные.
Загрузите обучающие данные.
XTrain = digitTrainCellArrayData;
Обучающие данные являются массивом ячеек 1 на 5000, где каждая камера содержит матрицу 28 на 28, представляющую синтетическое изображение рукописной цифры.
Обучите автоэнкодер со скрытым слоем, содержащим 25 нейронов.
hiddenSize = 25; autoenc = trainAutoencoder(XTrain,hiddenSize,... 'L2WeightRegularization',0.004,... 'SparsityRegularization',4,... 'SparsityProportion',0.15);
Загрузите тестовые данные.
XTest = digitTestCellArrayData;
Тестовые данные являются массивом ячеек 1 на 5000, причем каждая камера содержит матрицу 28 на 28, представляющую синтетическое изображение рукописной цифры.
Восстановите данные тестового изображения с помощью обученного автоэнкодера, autoenc
.
xReconstructed = predict(autoenc,XTest);
Просмотрите фактические тестовые данные.
figure; for i = 1:20 subplot(4,5,i); imshow(XTest{i}); end
Просмотрите восстановленные тестовые данные.
figure; for i = 1:20 subplot(4,5,i); imshow(xReconstructed{i}); end
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.