100% found this document useful (4 votes)
845 views

Download Complete MATLAB Deep Learning Toolbox User s Guide The Mathworks PDF for All Chapters

Learning

Uploaded by

repkoleivasi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
845 views

Download Complete MATLAB Deep Learning Toolbox User s Guide The Mathworks PDF for All Chapters

Learning

Uploaded by

repkoleivasi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Download the Full Version of textbook for Fast Typing at textbookfull.

com

MATLAB Deep Learning Toolbox User s Guide The


Mathworks

https://textbookfull.com/product/matlab-deep-learning-
toolbox-user-s-guide-the-mathworks/

OR CLICK BUTTON

DOWNLOAD NOW

Download More textbook Instantly Today - Get Yours Now at textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

MATLAB Econometrics Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-econometrics-toolbox-user-s-
guide-the-mathworks/

textboxfull.com

MATLAB Bioinformatics Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-bioinformatics-toolbox-user-s-
guide-the-mathworks/

textboxfull.com

MATLAB Mapping Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-mapping-toolbox-user-s-guide-
the-mathworks/

textboxfull.com

MATLAB Optimization Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-optimization-toolbox-user-s-
guide-the-mathworks/

textboxfull.com
MATLAB Trading Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-trading-toolbox-user-s-guide-
the-mathworks/

textboxfull.com

MATLAB Computer Vision Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-computer-vision-toolbox-user-
s-guide-the-mathworks/

textboxfull.com

MATLAB Curve Fitting Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-curve-fitting-toolbox-user-s-
guide-the-mathworks/

textboxfull.com

MATLAB Fuzzy Logic Toolbox User s Guide The Mathworks

https://textbookfull.com/product/matlab-fuzzy-logic-toolbox-user-s-
guide-the-mathworks/

textboxfull.com

MATLAB Global Optimization Toolbox User s Guide The


Mathworks

https://textbookfull.com/product/matlab-global-optimization-toolbox-
user-s-guide-the-mathworks/

textboxfull.com
Deep Learning Toolbox™
User's Guide

Mark Hudson Beale


Martin T. Hagan
Howard B. Demuth

R2020a
How to Contact MathWorks

Latest news: www.mathworks.com

Sales and services: www.mathworks.com/sales_and_services

User community: www.mathworks.com/matlabcentral

Technical support: www.mathworks.com/support/contact_us

Phone: 508-647-7000

The MathWorks, Inc.


1 Apple Hill Drive
Natick, MA 01760-2098
Deep Learning Toolbox™ User's Guide
© COPYRIGHT 1992–2020 by The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used or copied
only under the terms of the license agreement. No part of this manual may be photocopied or reproduced in any form
without prior written consent from The MathWorks, Inc.
FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation by, for, or through
the federal government of the United States. By accepting delivery of the Program or Documentation, the government
hereby agrees that this software or documentation qualifies as commercial computer software or commercial computer
software documentation as such terms are used or defined in FAR 12.212, DFARS Part 227.72, and DFARS 252.227-7014.
Accordingly, the terms and conditions of this Agreement and only those rights specified in this Agreement, shall pertain
to and govern the use, modification, reproduction, release, performance, display, and disclosure of the Program and
Documentation by the federal government (or other entity acquiring for or through the federal government) and shall
supersede any conflicting contractual terms or conditions. If this License fails to meet the government's needs or is
inconsistent in any respect with federal procurement law, the government agrees to return the Program and
Documentation, unused, to The MathWorks, Inc.
Trademarks
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be
trademarks or registered trademarks of their respective holders.
Patents
MathWorks products are protected by one or more U.S. patents. Please see www.mathworks.com/patents for
more information.
Revision History
June 1992 First printing
April 1993 Second printing
January 1997 Third printing
July 1997 Fourth printing
January 1998 Fifth printing Revised for Version 3 (Release 11)
September 2000 Sixth printing Revised for Version 4 (Release 12)
June 2001 Seventh printing Minor revisions (Release 12.1)
July 2002 Online only Minor revisions (Release 13)
January 2003 Online only Minor revisions (Release 13SP1)
June 2004 Online only Revised for Version 4.0.3 (Release 14)
October 2004 Online only Revised for Version 4.0.4 (Release 14SP1)
October 2004 Eighth printing Revised for Version 4.0.4
March 2005 Online only Revised for Version 4.0.5 (Release 14SP2)
March 2006 Online only Revised for Version 5.0 (Release 2006a)
September 2006 Ninth printing Minor revisions (Release 2006b)
March 2007 Online only Minor revisions (Release 2007a)
September 2007 Online only Revised for Version 5.1 (Release 2007b)
March 2008 Online only Revised for Version 6.0 (Release 2008a)
October 2008 Online only Revised for Version 6.0.1 (Release 2008b)
March 2009 Online only Revised for Version 6.0.2 (Release 2009a)
September 2009 Online only Revised for Version 6.0.3 (Release 2009b)
March 2010 Online only Revised for Version 6.0.4 (Release 2010a)
September 2010 Online only Revised for Version 7.0 (Release 2010b)
April 2011 Online only Revised for Version 7.0.1 (Release 2011a)
September 2011 Online only Revised for Version 7.0.2 (Release 2011b)
March 2012 Online only Revised for Version 7.0.3 (Release 2012a)
September 2012 Online only Revised for Version 8.0 (Release 2012b)
March 2013 Online only Revised for Version 8.0.1 (Release 2013a)
September 2013 Online only Revised for Version 8.1 (Release 2013b)
March 2014 Online only Revised for Version 8.2 (Release 2014a)
October 2014 Online only Revised for Version 8.2.1 (Release 2014b)
March 2015 Online only Revised for Version 8.3 (Release 2015a)
September 2015 Online only Revised for Version 8.4 (Release 2015b)
March 2016 Online only Revised for Version 9.0 (Release 2016a)
September 2016 Online only Revised for Version 9.1 (Release 2016b)
March 2017 Online only Revised for Version 10.0 (Release 2017a)
September 2017 Online only Revised for Version 11.0 (Release 2017b)
March 2018 Online only Revised for Version 11.1 (Release 2018a)
September 2018 Online only Revised for Version 12.0 (Release 2018b)
March 2019 Online only Revised for Version 12.1 (Release 2019a)
September 2019 Online only Revised for Version 13 (Release 2019b)
March 2020 Online only Revised for Version 14 (Release 2020a)
Contents

Deep Networks
1
Deep Learning in MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
What Is Deep Learning? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Try Deep Learning in 10 Lines of MATLAB Code . . . . . . . . . . . . . . . . . . . . 1-4
Start Deep Learning Faster Using Transfer Learning . . . . . . . . . . . . . . . . 1-5
Train Classifiers Using Features Extracted from Pretrained Networks . . . 1-6
Deep Learning with Big Data on CPUs, GPUs, in Parallel, and on the Cloud
...................................................... 1-6

Deep Learning with Big Data on GPUs and in Parallel . . . . . . . . . . . . . . . . 1-8


Training with Multiple GPUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
Deep Learning in the Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10
Fetch and Preprocess Data in Background . . . . . . . . . . . . . . . . . . . . . . . 1-10

Pretrained Deep Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12


Compare Pretrained Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
Load Pretrained Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14
Feature Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
Transfer Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
Import and Export Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16

Learn About Convolutional Neural Networks . . . . . . . . . . . . . . . . . . . . . . 1-19

Multiple-Input and Multiple-Output Networks . . . . . . . . . . . . . . . . . . . . . 1-21


Multiple-Input Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21
Multiple-Output Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21

List of Deep Learning Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23


Deep Learning Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23

Specify Layers of Convolutional Neural Network . . . . . . . . . . . . . . . . . . . 1-30


Image Input Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-31
Convolutional Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-31
Batch Normalization Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-35
ReLU Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-35
Cross Channel Normalization (Local Response Normalization) Layer . . . 1-36
Max and Average Pooling Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-36
Dropout Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-37
Fully Connected Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-37
Output Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-38

Set Up Parameters and Train Convolutional Neural Network . . . . . . . . . 1-41


Specify Solver and Maximum Number of Epochs . . . . . . . . . . . . . . . . . . 1-41
Specify and Modify Learning Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-41
Specify Validation Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-42

v
Select Hardware Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-42
Save Checkpoint Networks and Resume Training . . . . . . . . . . . . . . . . . . 1-43
Set Up Parameters in Convolutional and Fully Connected Layers . . . . . . 1-43
Train Your Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-43

Deep Learning Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-45


Choose Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-45
Choose Training Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-46
Improve Training Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-47
Fix Errors in Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-48
Prepare and Preprocess Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-49
Use Available Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-51
Fix Errors With Loading from MAT-Files . . . . . . . . . . . . . . . . . . . . . . . . . 1-52

Long Short-Term Memory Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-53


LSTM Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-53
Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-56
Classification, Prediction, and Forecasting . . . . . . . . . . . . . . . . . . . . . . . 1-57
Sequence Padding, Truncation, and Splitting . . . . . . . . . . . . . . . . . . . . . 1-57
Normalize Sequence Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-60
Out-of-Memory Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-61
Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-61
LSTM Layer Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-61

Deep Network Designer


2
Transfer Learning with Deep Network Designer . . . . . . . . . . . . . . . . . . . . . 2-2

Build Networks with Deep Network Designer . . . . . . . . . . . . . . . . . . . . . . 2-15


Open App and Import Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
Create and Edit a Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Check Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Train Network Using Deep Network Designer . . . . . . . . . . . . . . . . . . . . 2-20
Export Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20

Create Simple Sequence Classification Network Using Deep Network


Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22

Generate MATLAB Code from Deep Network Designer . . . . . . . . . . . . . . 2-31


Generate MATLAB Code to Recreate Network Layers . . . . . . . . . . . . . . . 2-31
Generate MATLAB Code to Train Network . . . . . . . . . . . . . . . . . . . . . . . 2-31

Deep Learning with Images


3
Classify Webcam Images Using Deep Learning . . . . . . . . . . . . . . . . . . . . . 3-2

Train Deep Learning Network to Classify New Images . . . . . . . . . . . . . . . 3-6

vi Contents
Train Residual Network for Image Classification . . . . . . . . . . . . . . . . . . . 3-13

Classify Image Using GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23

Extract Image Features Using Pretrained Network . . . . . . . . . . . . . . . . . 3-28

Transfer Learning Using AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33

Create Simple Deep Learning Network for Classification . . . . . . . . . . . . 3-40

Train Convolutional Neural Network for Regression . . . . . . . . . . . . . . . . 3-46

Train Network with Multiple Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-54

Convert Classification Network into Regression Network . . . . . . . . . . . . 3-66

Train Generative Adversarial Network (GAN) . . . . . . . . . . . . . . . . . . . . . . 3-72

Train Conditional Generative Adversarial Network (CGAN) . . . . . . . . . . 3-83

Train a Siamese Network to Compare Images . . . . . . . . . . . . . . . . . . . . . 3-96

Train a Siamese Network for Dimensionality Reduction . . . . . . . . . . . . 3-110

Train Variational Autoencoder (VAE) to Generate Images . . . . . . . . . . . 3-124

Deep Learning with Time Series, Sequences, and Text


4
Sequence Classification Using Deep Learning . . . . . . . . . . . . . . . . . . . . . . 4-2

Time Series Forecasting Using Deep Learning . . . . . . . . . . . . . . . . . . . . . . 4-9

Speech Command Recognition Using Deep Learning . . . . . . . . . . . . . . . 4-17

Sequence-to-Sequence Classification Using Deep Learning . . . . . . . . . . 4-34

Sequence-to-Sequence Regression Using Deep Learning . . . . . . . . . . . . 4-39

Classify Videos Using Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-48

Sequence-to-Sequence Classification Using 1-D Convolutions . . . . . . . . 4-58

Classify Text Data Using Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . 4-74

Classify Text Data Using Convolutional Neural Network . . . . . . . . . . . . . 4-82

Multilabel Text Classification Using Deep Learning . . . . . . . . . . . . . . . . . 4-91

Sequence-to-Sequence Translation Using Attention . . . . . . . . . . . . . . . 4-111

vii
Generate Text Using Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-131

Pride and Prejudice and MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-137

Word-By-Word Text Generation Using Deep Learning . . . . . . . . . . . . . . 4-143

Image Captioning Using Attention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-149

Deep Learning Tuning and Visualization


5
Deep Dream Images Using GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Grad-CAM Reveals the Why Behind Deep Learning Decisions . . . . . . . . . 5-8

Understand Network Predictions Using Occlusion . . . . . . . . . . . . . . . . . . 5-12

Investigate Classification Decisions Using Gradient Attribution


Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19

Resume Training from Checkpoint Network . . . . . . . . . . . . . . . . . . . . . . . 5-30

Deep Learning Using Bayesian Optimization . . . . . . . . . . . . . . . . . . . . . . 5-34

Run Multiple Deep Learning Experiments in Parallel . . . . . . . . . . . . . . . 5-44

Monitor Deep Learning Training Progress . . . . . . . . . . . . . . . . . . . . . . . . 5-49

Customize Output During Deep Learning Network Training . . . . . . . . . . 5-53

Investigate Network Predictions Using Class Activation Mapping . . . . . 5-57

View Network Behavior Using tsne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-63

Visualize Activations of a Convolutional Neural Network . . . . . . . . . . . . 5-75

Visualize Activations of LSTM Network . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-86

Visualize Features of a Convolutional Neural Network . . . . . . . . . . . . . . 5-90

Visualize Image Classifications Using Maximal and Minimal Activating


Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-97

Monitor GAN Training Progress and Identify Common Failure Modes 5-124
Convergence Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-124
Mode Collapse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-126

viii Contents
Manage Deep Learning Experiments
6
Create a Deep Learning Experiment for Classification . . . . . . . . . . . . . . . 6-2

Create a Deep Learning Experiment for Regression . . . . . . . . . . . . . . . . . 6-7

Evaluate Deep Learning Experiments by Using Metric Functions . . . . . 6-12

Try Multiple Pretrained Networks for Transfer Learning . . . . . . . . . . . . 6-17

Experiment with Weight Initializers for Transfer Learning . . . . . . . . . . . 6-20

Deep Learning in Parallel and the Cloud


7
Scale Up Deep Learning in Parallel and in the Cloud . . . . . . . . . . . . . . . . . 7-2
Deep Learning on Multiple GPUs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
Deep Learning in the Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Advanced Support for Fast Multi-Node GPU Communication . . . . . . . . . . . 7-4

Deep Learning with MATLAB on Multiple GPUs . . . . . . . . . . . . . . . . . . . . . 7-5


Select Particular GPUs to Use for Training . . . . . . . . . . . . . . . . . . . . . . . . 7-5
Train Network in the Cloud Using Automatic Parallel Support . . . . . . . . . 7-5

Train Network in the Cloud Using Automatic Parallel Support . . . . . . . . 7-10

Use parfeval to Train Multiple Deep Learning Networks . . . . . . . . . . . . . 7-14

Send Deep Learning Batch Job to Cluster . . . . . . . . . . . . . . . . . . . . . . . . . 7-21

Train Network Using Automatic Multi-GPU Support . . . . . . . . . . . . . . . . 7-24

Use parfor to Train Multiple Deep Learning Networks . . . . . . . . . . . . . . 7-28

Upload Deep Learning Data to the Cloud . . . . . . . . . . . . . . . . . . . . . . . . . 7-35

Train Network in Parallel with Custom Training Loop . . . . . . . . . . . . . . . 7-37

Computer Vision Examples


8
Point Cloud Classification Using PointNet Deep Learning . . . . . . . . . . . . 8-2

Import Pretrained ONNX YOLO v2 Object Detector . . . . . . . . . . . . . . . . . 8-25

Export YOLO v2 Object Detector to ONNX . . . . . . . . . . . . . . . . . . . . . . . . 8-31

ix
Object Detection Using SSD Deep Learning . . . . . . . . . . . . . . . . . . . . . . . 8-37

Object Detection Using YOLO v3 Deep Learning . . . . . . . . . . . . . . . . . . . 8-46

Object Detection Using YOLO v2 Deep Learning . . . . . . . . . . . . . . . . . . . 8-64

Semantic Segmentation Using Deep Learning . . . . . . . . . . . . . . . . . . . . . 8-74

Semantic Segmentation Using Dilated Convolutions . . . . . . . . . . . . . . . . 8-90

Semantic Segmentation of Multispectral Images Using Deep Learning


......................................................... 8-95

3-D Brain Tumor Segmentation Using Deep Learning . . . . . . . . . . . . . . 8-112

Define Custom Pixel Classification Layer with Tversky Loss . . . . . . . . . 8-124

Train Object Detector Using R-CNN Deep Learning . . . . . . . . . . . . . . . . 8-131

Object Detection Using Faster R-CNN Deep Learning . . . . . . . . . . . . . . 8-145

Image Processing Examples


9
Remove Noise from Color Image Using Pretrained Neural Network . . . . 9-2

Single Image Super-Resolution Using Deep Learning . . . . . . . . . . . . . . . . 9-8

JPEG Image Deblocking Using Deep Learning . . . . . . . . . . . . . . . . . . . . . 9-23

Image Processing Operator Approximation Using Deep Learning . . . . . 9-36

Deep Learning Classification of Large Multiresolution Images . . . . . . . 9-51

Generate Image from Segmentation Map Using Deep Learning . . . . . . . 9-72

Neural Style Transfer Using Deep Learning . . . . . . . . . . . . . . . . . . . . . . . 9-91

Automated Driving Examples


10
Train a Deep Learning Vehicle Detector . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

Create Occupancy Grid Using Monocular Camera and Semantic


Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-11

x Contents
Signal Processing Examples
11
Radar Waveform Classification Using Deep Learning . . . . . . . . . . . . . . . 11-2

Pedestrian and Bicyclist Classification Using Deep Learning . . . . . . . . 11-15

Label QRS Complexes and R Peaks of ECG Signals Using Deep Network
........................................................ 11-32

Waveform Segmentation Using Deep Learning . . . . . . . . . . . . . . . . . . . 11-42

Modulation Classification with Deep Learning . . . . . . . . . . . . . . . . . . . . 11-60

Classify ECG Signals Using Long Short-Term Memory Networks . . . . . 11-76

Classify Time Series Using Wavelet Analysis and Deep Learning . . . . . 11-93

Audio Examples
12
Train Generative Adversarial Network (GAN) for Sound Synthesis . . . . 12-2

Sequential Feature Selection for Audio Features . . . . . . . . . . . . . . . . . . 12-21

Acoustic Scene Recognition Using Late Fusion . . . . . . . . . . . . . . . . . . . 12-34

Keyword Spotting in Noise Using MFCC and LSTM Networks . . . . . . . 12-55

Speech Emotion Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-77

Spoken Digit Recognition with Wavelet Scattering and Deep Learning


........................................................ 12-89

Cocktail Party Source Separation Using Deep Learning Networks . . . 12-107

Voice Activity Detection in Noise Using Deep Learning . . . . . . . . . . . . 12-129

Denoise Speech Using Deep Learning Networks . . . . . . . . . . . . . . . . . 12-152

Classify Gender Using LSTM Networks . . . . . . . . . . . . . . . . . . . . . . . . . 12-173

Reinforcement Learning Examples


13
Create Simulink Environment and Train Agent . . . . . . . . . . . . . . . . . . . . 13-2

xi
Train DDPG Agent to Swing Up and Balance Pendulum with Image
Observation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-10

Create Agent Using Deep Network Designer and Train Using Image
Observations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-18

Train DDPG Agent to Control Flying Robot . . . . . . . . . . . . . . . . . . . . . . . 13-30

Train Biped Robot to Walk Using Reinforcement Learning Agents . . . 13-36

Train DDPG Agent for Adaptive Cruise Control . . . . . . . . . . . . . . . . . . . 13-47

Train DQN Agent for Lane Keeping Assist Using Parallel Computing . 13-55

Train DDPG Agent for Path Following Control . . . . . . . . . . . . . . . . . . . . 13-63

Predictive Maintenance Examples


14
Chemical Process Fault Detection Using Deep Learning . . . . . . . . . . . . . 14-2

Automatic Differentiation
15
Define Custom Deep Learning Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2
Layer Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2
Intermediate Layer Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5
Check Validity of Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-10
Include Layer in Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-11
Output Layer Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-11

Define Custom Deep Learning Layer with Learnable Parameters . . . . . 15-17


Layer with Learnable Parameters Template . . . . . . . . . . . . . . . . . . . . . 15-18
Name the Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-19
Declare Properties and Learnable Parameters . . . . . . . . . . . . . . . . . . . 15-19
Create Constructor Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-21
Create Forward Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-22
Completed Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-24
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-25
Check Validity of Layer Using checkLayer . . . . . . . . . . . . . . . . . . . . . . . 15-25
Include Custom Layer in Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-25

Define Custom Deep Learning Layer with Multiple Inputs . . . . . . . . . . 15-28


Layer with Learnable Parameters Template . . . . . . . . . . . . . . . . . . . . . 15-28
Name the Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-29
Declare Properties and Learnable Parameters . . . . . . . . . . . . . . . . . . . 15-30
Create Constructor Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-31
Create Forward Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-32
Completed Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-35

xii Contents
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-36
Check Validity of Layer with Multiple Inputs . . . . . . . . . . . . . . . . . . . . . 15-36
Use Custom Weighted Addition Layer in Network . . . . . . . . . . . . . . . . . 15-37

Define Custom Classification Output Layer . . . . . . . . . . . . . . . . . . . . . . . 15-39


Classification Output Layer Template . . . . . . . . . . . . . . . . . . . . . . . . . . 15-39
Name the Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-40
Declare Layer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-40
Create Constructor Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-41
Create Forward Loss Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-42
Completed Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-43
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-43
Check Output Layer Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-44
Include Custom Classification Output Layer in Network . . . . . . . . . . . . 15-44

Define Custom Weighted Classification Layer . . . . . . . . . . . . . . . . . . . . . 15-47


Classification Output Layer Template . . . . . . . . . . . . . . . . . . . . . . . . . . 15-47
Name the Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-48
Declare Layer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-49
Create Constructor Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-49
Create Forward Loss Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-50
Completed Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-51
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-52
Check Output Layer Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-53

Define Custom Regression Output Layer . . . . . . . . . . . . . . . . . . . . . . . . . 15-54


Regression Output Layer Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-54
Name the Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-55
Declare Layer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-55
Create Constructor Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-56
Create Forward Loss Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-57
Completed Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-58
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-59
Check Output Layer Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-59
Include Custom Regression Output Layer in Network . . . . . . . . . . . . . . 15-60

Specify Custom Layer Backward Function . . . . . . . . . . . . . . . . . . . . . . . 15-62


Create Custom Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-62
Create Backward Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-63
Complete Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-65
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-66

Specify Custom Output Layer Backward Loss Function . . . . . . . . . . . . . 15-68


Create Custom Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-68
Create Backward Loss Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-69
Complete Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-70
GPU Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-71

Check Custom Layer Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-73


Check Layer Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-73
List of Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-74
Generated Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-75
Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-76

Specify Custom Weight Initialization Function . . . . . . . . . . . . . . . . . . . 15-89

xiii
Compare Layer Weight Initializers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-95

Assemble Network from Pretrained Keras Layers . . . . . . . . . . . . . . . . 15-101

Assemble Multiple-Output Network for Prediction . . . . . . . . . . . . . . . 15-106

Automatic Differentiation Background . . . . . . . . . . . . . . . . . . . . . . . . . 15-112


What Is Automatic Differentiation? . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-112
Forward Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-112
Reverse Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-114

Use Automatic Differentiation In Deep Learning Toolbox . . . . . . . . . . 15-117


Custom Training and Calculations Using Automatic Differentiation . . . 15-117
Use dlgradient and dlfeval Together for Automatic Differentiation . . . 15-118
Derivative Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-118
Characteristics of Automatic Derivatives . . . . . . . . . . . . . . . . . . . . . . 15-119

Define Custom Training Loops, Loss Functions, and Networks . . . . . . 15-121


Define Custom Training Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-121
Define Custom Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-122

Specify Training Options in Custom Training Loop . . . . . . . . . . . . . . . 15-125


Solver Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-126
Learn Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-126
Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-127
Verbose Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-128
Mini-Batch Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-129
Number of Epochs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-129
Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-129
L2 Regularization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-131
Gradient Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-131
Single CPU or GPU Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-132
Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-132

Train Network Using Custom Training Loop . . . . . . . . . . . . . . . . . . . . . 15-134

Update Batch Normalization Statistics in Custom Training Loop . . . 15-140

Make Predictions Using dlnetwork Object . . . . . . . . . . . . . . . . . . . . . . 15-146

Train Network Using Model Function . . . . . . . . . . . . . . . . . . . . . . . . . . 15-149

Update Batch Normalization Statistics Using Model Function . . . . . . 15-161

Make Predictions Using Model Function . . . . . . . . . . . . . . . . . . . . . . . 15-173

Train Network Using Cyclical Learn Rate for Snapshot Ensembling . 15-178

List of Functions with dlarray Support . . . . . . . . . . . . . . . . . . . . . . . . . 15-194


Deep Learning Toolbox Functions with dlarray Support . . . . . . . . . . . 15-194
MATLAB Functions with dlarray Support . . . . . . . . . . . . . . . . . . . . . . 15-196
Notable dlarray Behaviors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-203

xiv Contents
Deep Learning Data Preprocessing
16
Datastores for Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-2
Select Datastore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-2
Input Datastore for Training, Validation, and Inference . . . . . . . . . . . . . . 16-3
Specify Read Size and Mini-Batch Size . . . . . . . . . . . . . . . . . . . . . . . . . . 16-4
Transform and Combine Datastores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-4
Use Datastore for Parallel Training and Background Dispatching . . . . . . 16-7

Preprocess Images for Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-8


Resize Images Using Rescaling and Cropping . . . . . . . . . . . . . . . . . . . . . 16-8
Augment Images for Training with Random Geometric Transformations
..................................................... 16-9
Perform Additional Image Processing Operations Using Built-In Datastores
.................................................... 16-10
Apply Custom Image Processing Pipelines Using Combine and Transform
.................................................... 16-10

Preprocess Volumes for Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . 16-12


Read Volumetric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-12
Associate Image and Label Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-15
Preprocess Volumetric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-15

Preprocess Data for Domain-Specific Deep Learning Applications . . . . 16-19


Image Processing Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-19
Object Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-21
Semantic Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-22
Signal Processing Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23
Audio Processing Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-25
Text Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-27

Develop Custom Mini-Batch Datastore . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28


Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28
Implement MiniBatchable Datastore . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28
Add Support for Shuffling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-32
Validate Custom Mini-Batch Datastore . . . . . . . . . . . . . . . . . . . . . . . . . 16-32

Augment Images for Deep Learning Workflows Using Image Processing


Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-34

Augment Pixel Labels for Semantic Segmentation . . . . . . . . . . . . . . . . 16-57

Augment Bounding Boxes for Object Detection . . . . . . . . . . . . . . . . . . . 16-67

Prepare Datastore for Image-to-Image Regression . . . . . . . . . . . . . . . . 16-80

Train Network Using Out-of-Memory Sequence Data . . . . . . . . . . . . . . . 16-89

Train Network Using Custom Mini-Batch Datastore for Sequence Data


........................................................ 16-94

Classify Out-of-Memory Text Data Using Deep Learning . . . . . . . . . . . . 16-98

xv
Classify Out-of-Memory Text Data Using Custom Mini-Batch Datastore
....................................................... 16-104

Data Sets for Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-108


Image Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-108
Time Series and Signal Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-121
Video Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-130
Text Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-131
Audio Data Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-136

Deep Learning Code Generation


17
Code Generation for Deep Learning Networks . . . . . . . . . . . . . . . . . . . . . 17-2

Code Generation for Semantic Segmentation Network . . . . . . . . . . . . . 17-10

Lane Detection Optimized with GPU Coder . . . . . . . . . . . . . . . . . . . . . . . 17-14

Code Generation for a Sequence-to-Sequence LSTM Network . . . . . . . 17-25

Deep Learning Prediction on ARM Mali GPU . . . . . . . . . . . . . . . . . . . . . 17-30

Code Generation for Object Detection by Using YOLO v2 . . . . . . . . . . . 17-33

Integrating Deep Learning with GPU Coder into Simulink . . . . . . . . . . 17-36

Deep Learning Prediction by Using NVIDIA TensorRT . . . . . . . . . . . . . . 17-42

Deep Learning Prediction by Using Different Batch Sizes . . . . . . . . . . . 17-46

Traffic Sign Detection and Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . 17-50

Logo Recognition Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-58

Pedestrian Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-62

Code Generation for Denoising Deep Neural Network . . . . . . . . . . . . . . 17-69

Train and Deploy Fully Convolutional Networks for Semantic


Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-73

Code Generation for Semantic Segmentation Network by Using U-net


........................................................ 17-84

Code Generation for Deep Learning on ARM Targets . . . . . . . . . . . . . . 17-91

Code Generation for Deep Learning on Raspberry Pi . . . . . . . . . . . . . . 17-96

Deep Learning Prediction with ARM Compute Using cnncodegen . . . 17-101

xvi Contents
Deep Learning Prediction with Intel MKL-DNN . . . . . . . . . . . . . . . . . . 17-104

Generate C++ Code for Object Detection Using YOLO v2 and Intel MKL-
DNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-111

Code Generation and Deployment of MobileNet-v2 Network to Raspberry


Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-114

Neural Network Design Book

Neural Network Objects, Data, and Training Styles


18
Workflow for Neural Network Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2

Four Levels of Neural Network Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3

Neuron Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4


Simple Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4
Transfer Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5
Neuron with Vector Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5

Neural Network Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8


One Layer of Neurons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8
Multiple Layers of Neurons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10
Input and Output Processing Functions . . . . . . . . . . . . . . . . . . . . . . . . 18-11

Create Neural Network Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-13

Configure Shallow Neural Network Inputs and Outputs . . . . . . . . . . . . 18-16

Understanding Shallow Network Data Structures . . . . . . . . . . . . . . . . . 18-18


Simulation with Concurrent Inputs in a Static Network . . . . . . . . . . . . 18-18
Simulation with Sequential Inputs in a Dynamic Network . . . . . . . . . . . 18-19
Simulation with Concurrent Inputs in a Dynamic Network . . . . . . . . . . 18-20

Neural Network Training Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-22


Incremental Training with adapt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-22
Batch Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-24
Training Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-26

xvii
Multilayer Shallow Neural Networks and Backpropagation
Training
19
Multilayer Shallow Neural Networks and Backpropagation Training . . . 19-2

Multilayer Shallow Neural Network Architecture . . . . . . . . . . . . . . . . . . 19-3


Neuron Model (logsig, tansig, purelin) . . . . . . . . . . . . . . . . . . . . . . . . . . 19-3
Feedforward Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-4

Prepare Data for Multilayer Shallow Neural Networks . . . . . . . . . . . . . . 19-6

Choose Neural Network Input-Output Processing Functions . . . . . . . . . 19-7


Representing Unknown or Don't-Care Targets . . . . . . . . . . . . . . . . . . . . 19-8

Divide Data for Optimal Neural Network Training . . . . . . . . . . . . . . . . . . 19-9

Create, Configure, and Initialize Multilayer Shallow Neural Networks


........................................................ 19-11
Other Related Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-11
Initializing Weights (init) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-12

Train and Apply Multilayer Shallow Neural Networks . . . . . . . . . . . . . . 19-13


Training Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-13
Training Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-15
Use the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-17

Analyze Shallow Neural Network Performance After Training . . . . . . . 19-18


Improving Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-21

Limitations and Cautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-22

Dynamic Neural Networks


20
Introduction to Dynamic Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . 20-2

How Dynamic Neural Networks Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-3


Feedforward and Recurrent Neural Networks . . . . . . . . . . . . . . . . . . . . . 20-3
Applications of Dynamic Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-7
Dynamic Network Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-8
Dynamic Network Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9

Design Time Series Time-Delay Neural Networks . . . . . . . . . . . . . . . . . 20-10


Prepare Input and Layer Delay States . . . . . . . . . . . . . . . . . . . . . . . . . . 20-13

Design Time Series Distributed Delay Neural Networks . . . . . . . . . . . . 20-14

Design Time Series NARX Feedback Neural Networks . . . . . . . . . . . . . 20-16


Multiple External Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-20

xviii Contents
Design Layer-Recurrent Neural Networks . . . . . . . . . . . . . . . . . . . . . . . 20-22

Create Reference Model Controller with MATLAB Script . . . . . . . . . . . 20-24

Multiple Sequences with Dynamic Neural Networks . . . . . . . . . . . . . . . 20-29

Neural Network Time-Series Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-30

Train Neural Networks with Error Weights . . . . . . . . . . . . . . . . . . . . . . . 20-32

Normalize Errors of Multiple Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-35

Multistep Neural Network Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-39


Set Up in Open-Loop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-39
Multistep Closed-Loop Prediction From Initial Conditions . . . . . . . . . . . 20-39
Multistep Closed-Loop Prediction Following Known Sequence . . . . . . . 20-40
Following Closed-Loop Simulation with Open-Loop Simulation . . . . . . . 20-41

Control Systems
21
Introduction to Neural Network Control Systems . . . . . . . . . . . . . . . . . . 21-2

Design Neural Network Predictive Controller in Simulink . . . . . . . . . . . 21-4


System Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-4
Predictive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-5
Use the Neural Network Predictive Controller Block . . . . . . . . . . . . . . . . 21-6

Design NARMA-L2 Neural Controller in Simulink . . . . . . . . . . . . . . . . . 21-13


Identification of the NARMA-L2 Model . . . . . . . . . . . . . . . . . . . . . . . . . 21-13
NARMA-L2 Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-14
Use the NARMA-L2 Controller Block . . . . . . . . . . . . . . . . . . . . . . . . . . 21-15

Design Model-Reference Neural Controller in Simulink . . . . . . . . . . . . 21-19


Use the Model Reference Controller Block . . . . . . . . . . . . . . . . . . . . . . 21-20

Import-Export Neural Network Simulink Control Systems . . . . . . . . . . 21-26


Import and Export Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-26
Import and Export Training Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21-28

Radial Basis Neural Networks


22
Introduction to Radial Basis Neural Networks . . . . . . . . . . . . . . . . . . . . . 22-2
Important Radial Basis Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2

Radial Basis Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3


Neuron Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3
Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-4

xix
Exact Design (newrbe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-5
More Efficient Design (newrb) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6

Probabilistic Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-8


Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-8
Design (newpnn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-9

Generalized Regression Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . 22-11


Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-11
Design (newgrnn) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-12

Self-Organizing and Learning Vector Quantization Networks


23
Introduction to Self-Organizing and LVQ . . . . . . . . . . . . . . . . . . . . . . . . . 23-2
Important Self-Organizing and LVQ Functions . . . . . . . . . . . . . . . . . . . . . 23-2

Cluster with a Competitive Neural Network . . . . . . . . . . . . . . . . . . . . . . . 23-3


Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-3
Create a Competitive Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . 23-3
Kohonen Learning Rule (learnk) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-4
Bias Learning Rule (learncon) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5
Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5
Graphical Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-6

Cluster with Self-Organizing Map Neural Network . . . . . . . . . . . . . . . . . 23-8


Topologies (gridtop, hextop, randtop) . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-9
Distance Functions (dist, linkdist, mandist, boxdist) . . . . . . . . . . . . . . . 23-12
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-14
Create a Self-Organizing Map Neural Network (selforgmap) . . . . . . . . . 23-14
Training (learnsomb) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-16
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-17

Learning Vector Quantization (LVQ) Neural Networks . . . . . . . . . . . . . 23-26


Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-26
Creating an LVQ Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-27
LVQ1 Learning Rule (learnlv1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-29
Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-30
Supplemental LVQ2.1 Learning Rule (learnlv2) . . . . . . . . . . . . . . . . . . . 23-31

Adaptive Filters and Adaptive Training


24
Adaptive Neural Network Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2
Adaptive Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2
Linear Neuron Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2
Adaptive Linear Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 24-3
Least Mean Square Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-5

xx Contents
LMS Algorithm (learnwh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-6
Adaptive Filtering (adapt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-6

Advanced Topics
25
Neural Networks with Parallel and GPU Computing . . . . . . . . . . . . . . . . 25-2
Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-2
Modes of Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-2
Distributed Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-2
Single GPU Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-4
Distributed GPU Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-6
Parallel Time Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-7
Parallel Availability, Fallbacks, and Feedback . . . . . . . . . . . . . . . . . . . . . 25-8

Optimize Neural Network Training Speed and Memory . . . . . . . . . . . . . 25-10


Memory Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-10
Fast Elliot Sigmoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-10

Choose a Multilayer Neural Network Training Function . . . . . . . . . . . . 25-14


SIN Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-15
PARITY Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-16
ENGINE Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-18
CANCER Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-19
CHOLESTEROL Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-21
DIABETES Data Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-22
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-24

Improve Shallow Neural Network Generalization and Avoid Overfitting


........................................................ 25-25
Retraining Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-26
Multiple Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-27
Early Stopping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28
Index Data Division (divideind) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-28
Random Data Division (dividerand) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29
Block Data Division (divideblock) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29
Interleaved Data Division (divideint) . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29
Regularization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29
Summary and Discussion of Early Stopping and Regularization . . . . . . 25-31
Posttraining Analysis (regression) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-33

Edit Shallow Neural Network Properties . . . . . . . . . . . . . . . . . . . . . . . . . 25-35


Custom Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-35
Network Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-36
Network Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-43

Custom Neural Network Helper Functions . . . . . . . . . . . . . . . . . . . . . . . 25-45

Automatically Save Checkpoints During Neural Network Training . . . 25-46

Deploy Shallow Neural Network Functions . . . . . . . . . . . . . . . . . . . . . . . 25-48


Deployment Functions and Tools for Trained Networks . . . . . . . . . . . . . 25-48

xxi
Generate Neural Network Functions for Application Deployment . . . . . 25-48
Generate Simulink Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-50

Deploy Training of Shallow Neural Networks . . . . . . . . . . . . . . . . . . . . . 25-51

Historical Neural Networks


26
Historical Neural Networks Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-2

Perceptron Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-3


Neuron Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-3
Perceptron Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-4
Create a Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-5
Perceptron Learning Rule (learnp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-6
Training (train) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-8
Limitations and Cautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-12

Linear Neural Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-14


Neuron Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-14
Network Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-15
Least Mean Square Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-17
Linear System Design (newlind) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-18
Linear Networks with Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-18
LMS Algorithm (learnwh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-20
Linear Classification (train) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-21
Limitations and Cautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-23

Neural Network Object Reference


27
Neural Network Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2
General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2
Subobject Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-5
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-6
Weight and Bias Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-9

Neural Network Subobject Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-11


Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-11
Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-12
Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-16
Biases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-18
Input Weights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-19
Layer Weights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-20

xxii Contents
Function Approximation, Clustering, and Control Examples
28
Body Fat Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-2

Crab Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-9

Wine Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-17

Cancer Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-24

Character Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-32

Train Stacked Autoencoders for Image Classification . . . . . . . . . . . . . . 28-36

Iris Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-45

Gene Expression Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-53

Maglev Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-61

Competitive Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-71

One-Dimensional Self-organizing Map . . . . . . . . . . . . . . . . . . . . . . . . . . 28-74

Two-Dimensional Self-organizing Map . . . . . . . . . . . . . . . . . . . . . . . . . . 28-76

Radial Basis Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-79

Radial Basis Underlapping Neurons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-83

Radial Basis Overlapping Neurons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-85

GRNN Function Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-87

PNN Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-91

Learning Vector Quantization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-95

Linear Prediction Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-98

Adaptive Linear Prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-102

Classification with a 2-Input Perceptron . . . . . . . . . . . . . . . . . . . . . . . . 28-106

Outlier Input Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-111

Normalized Perceptron Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-117

Linearly Non-separable Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-123

Pattern Association Showing Error Surface . . . . . . . . . . . . . . . . . . . . . 28-126

xxiii
Training a Linear Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-129

Linear Fit of Nonlinear Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-132

Underdetermined Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-136

Linearly Dependent Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-140

Too Large a Learning Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-141

Adaptive Noise Cancellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-145

Shallow Neural Networks Bibliography


29
Shallow Neural Networks Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-2

Mathematical Notation
A
Mathematics and Code Equivalents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
Mathematics Notation to MATLAB Notation . . . . . . . . . . . . . . . . . . . . . . . A-2
Figure Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2

Neural Network Blocks for the Simulink Environment


B
Neural Network Simulink Block Library . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2
Transfer Function Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2
Net Input Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3
Weight Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3
Processing Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-3

Deploy Shallow Neural Network Simulink Diagrams . . . . . . . . . . . . . . . . . B-5


Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5
Suggested Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7
Generate Functions and Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-7

xxiv Contents
Code Notes
C
Deep Learning Toolbox Data Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . C-2
Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2

xxv
1

Deep Networks

• “Deep Learning in MATLAB” on page 1-2


• “Deep Learning with Big Data on GPUs and in Parallel” on page 1-8
• “Pretrained Deep Neural Networks” on page 1-12
• “Learn About Convolutional Neural Networks” on page 1-19
• “Multiple-Input and Multiple-Output Networks” on page 1-21
• “List of Deep Learning Layers” on page 1-23
• “Specify Layers of Convolutional Neural Network” on page 1-30
• “Set Up Parameters and Train Convolutional Neural Network” on page 1-41
• “Deep Learning Tips and Tricks” on page 1-45
• “Long Short-Term Memory Networks” on page 1-53
1 Deep Networks

Deep Learning in MATLAB


In this section...
“What Is Deep Learning?” on page 1-2
“Try Deep Learning in 10 Lines of MATLAB Code” on page 1-4
“Start Deep Learning Faster Using Transfer Learning” on page 1-5
“Train Classifiers Using Features Extracted from Pretrained Networks” on page 1-6
“Deep Learning with Big Data on CPUs, GPUs, in Parallel, and on the Cloud” on page 1-6

What Is Deep Learning?


Deep learning is a branch of machine learning that teaches computers to do what comes naturally to
humans: learn from experience. Machine learning algorithms use computational methods to “learn”
information directly from data without relying on a predetermined equation as a model. Deep
learning is especially suited for image recognition, which is important for solving problems such as
facial recognition, motion detection, and many advanced driver assistance technologies such as
autonomous driving, lane detection, pedestrian detection, and autonomous parking.

Deep Learning Toolbox provides simple MATLAB commands for creating and interconnecting the
layers of a deep neural network. Examples and pretrained networks make it easy to use MATLAB for
deep learning, even without knowledge of advanced computer vision algorithms or neural networks.

For a free hands-on introduction to practical deep learning methods, see Deep Learning Onramp.

What Do You Want to Do? Learn More


Perform transfer learning to fine-tune a network “Start Deep Learning Faster Using Transfer
with your data Learning” on page 1-5

Tip Fine-tuning a pretrained network to learn a


new task is typically much faster and easier than
training a new network.
Classify images with pretrained networks “Pretrained Deep Neural Networks” on page 1-
12
Create a new deep neural network for “Create Simple Deep Learning Network for
classification or regression Classification” on page 3-40

“Train Convolutional Neural Network for


Regression” on page 3-46
Resize, rotate, or preprocess images for training “Preprocess Images for Deep Learning” on page
or prediction 16-8
Label your image data automatically based on “Train Network for Image Classification”
folder names, or interactively using an app
Image Labeler

1-2
Deep Learning in MATLAB

What Do You Want to Do? Learn More


Create deep learning networks for sequence and “Sequence Classification Using Deep Learning”
time series data. on page 4-2

“Time Series Forecasting Using Deep Learning”


on page 4-9
Classify each pixel of an image (for example, “Getting Started with Semantic Segmentation
road, car, pedestrian) Using Deep Learning” (Computer Vision Toolbox)
Detect and recognize objects in images “Deep Learning, Semantic Segmentation, and
Detection” (Computer Vision Toolbox)
Classify text data “Classify Text Data Using Deep Learning” on
page 4-74
Classify audio data for speech recognition “Speech Command Recognition Using Deep
Learning” on page 4-17
Visualize what features networks have learned “Deep Dream Images Using GoogLeNet” on page
5-2

“Visualize Activations of a Convolutional Neural


Network” on page 5-75
Train on CPU, GPU, multiple GPUs, in parallel on “Deep Learning with Big Data on GPUs and in
your desktop or on clusters in the cloud, and Parallel” on page 1-8
work with data sets too large to fit in memory

To learn more about deep learning application areas, including automated driving, see “Deep
Learning Applications”.

To choose whether to use a pretrained network or create a new deep network, consider the scenarios
in this table.

Use a Pretrained Network for Create a New Deep Network


Transfer Learning
Training Data Hundreds to thousands of Thousands to millions of labeled
labeled images (small) images
Computation Moderate computation (GPU Compute intensive (requires
optional) GPU for speed)
Training Time Seconds to minutes Days to weeks for real problems
Model Accuracy Good, depends on the High, but can overfit to small
pretrained model data sets

For more information, see “Choose Network Architecture” on page 1-45.

Deep learning uses neural networks to learn useful representations of features directly from data.
Neural networks combine multiple nonlinear processing layers, using simple elements operating in
parallel and inspired by biological nervous systems. Deep learning models can achieve state-of-the-art
accuracy in object classification, sometimes exceeding human-level performance.

You train models using a large set of labeled data and neural network architectures that contain many
layers, usually including some convolutional layers. Training these models is computationally
intensive and you can usually accelerate training by using a high performance GPU. This diagram

1-3
Discovering Diverse Content Through
Random Scribd Documents
magányos beteget nem háborítja semmi; élvezheti bátran a
napsugarakat. Visszavilágítanak ezek a múltba, megaranyozzák a
jelent, fényt vetnek előre a jövőbe is. Pedig abban a múltban sok a
hiú küzdelem, a keserű csalódás; ez a jelen sötét, minden inkább,
mint biztató, – és ama jövő? Sohsem lesz abból jelen. Ámde ezek a
jótékony, könyörűlő napsugarak nem hagynak árnyat a múltban,
kétséget a jövőben. A betegnek gyönyört okoz a már lezajlott
küzdelem, jóllehet gyakorta éhség volt az ellen, megaláztatás a seb,
s a harcz jutalma elismerés helyett bántó keggyel nyújtott kenyér:
nevelő volt. Csak nevelő volt és mégis jutott számára sok nem
mindennapi öröm: önlelkéből merített vigasztalás, törhetetlen erőnek
érzete és nehány szabad óra, dolgozni egy nagy munkán, leendő
hírnév alapkövén, az első lépcsőfokon egy magas czél felé, ahol
vezérlő csillagul két kék szem világított, biztatást másnak büszke
ajkak mosolyogtak. Itt fekszik ime most, itt az eredmény, az
igazságos jutalom. Lappangó kórnak hirtelen kitörése mindent és
végkép összezúzott; minden reménye romba dőlt, ő maga
nyomorék.
– Istenem, mily szép az élet, mily boldogság! – Igy sóhajt, hisz a
napsugarak épp oly vidáman játszadozva időznek az omlatag falon,
mint az örökre épűlt paloták magas homlokzatán. Nem engedik az
álmodozónak látnia, hogy műve összeomlott, sőt építeni,
dicsőséggel befejezni segítenek. Bámulni fog rajta az egész világ, s
az emberiség majd hálával adózik neki, aki egykor az eltaposottak
között volt, aki majdan joggal lesz büszke önereje győzelmére s aki
– elfáradt már is a képzelt örömtől és – csókolgatva millió sugártól, –
lassankint elszenderűl, álmodik a dicsőség mellé üdvözítő
szerelemről, örök ifjúságról, tavaszról és egészségről.
Az alább hanyatló nap egész arczával bepillant az ablakon és
jóságos tekintettel nézi a betegnek megvékonyúlt vonásait; az
ablakpárkányra verebek ülnek és pajkosan bekopognak a táblákon.
Mindenik azt hajtja, azt csicsergi: öröm az élet, eltűnt a bú! Feleletűl
fölhangzik a kertben mulatók zaja, az alvónak halk pihegése pedig
tudtán kivűl azt mondja rá: Miért múlik el oly hamar?!
Az első fölvonás.

Helyre, helyre! Kezdődik az első felvonás! A nézősereg


dübörögve foglalja el helyét a félkörösen magasba fölsorakozó
padokban. Színlapot nem osztottak. Közepe felé jár a félévi bérlet,
játszók és nézők már körűl-belűl ismerik egymást.
A főszereplő, aki egyedűl beszél is, cselekszik is, mindennap
ugyanaz. Bizonyos mellékszerepeket is, melyekben cselekedni kell
ugyan néha, de szólni sohsem szabad, mindig ugyanazok adnak,
még jelmezük sem változik: valami sötétkék újjas. Háromnak
szerepéhez tartozik, hogy csíptető legyen az orrán; négynek egyéb
dolga is akad. Különösen egynek, aki oldalt szokott állni és a
szivacsokat nyújtogatja meghatározott végszavakra, melyeket a
főszereplő kiált rá, kicsit kevésbé hangosan és erélyesen, mint a
többiekre. Mert ezeket csak segéd uraknak hívják, azt pedig
Jánosnak. Van aztán még két, napról napra változó alak. Az egyiket
a hallgatóságból szokták előzetesen kiválasztani. Beszélnie kellene,
de rendesen nem tudja a szerepét. Egyébiránt színpadi neve
»észlelő«, és igen alkalmatos arra, hogy a nézők kinevessék. A
másik változó személynek végűl se beszélnie, se tennie nem
szabad. Az a hivatása, hogy hallgasson és ne mozdúljon. Ha
szerepéből véletlenül kiesik és egy hangosabb nyikkanásra talál
vetemedni, csattanós rendreutasítás is érheti a nézők átalános
derűltsége közben. Külömben fontos, csaknem főszemély. Nélküle a
produkczió meg nem tartható.
Ami magát a darabot illeti, no ez elég változatos és mulatságos
ugyan, de valami magasabb műegységet hiába keresnénk benne.
Az érdeklődés nem központosúl eléggé egy cselekvény és egy alak
körül, sőt gyakran nincs is főszemély. Szerkezete igen egyszerü. Az
első fölvonás az expositio, a második a tulajdonképeni cselekvény,
amin a tárgy, illetőleg a hős sorsa megfordúl. Kár, hogy a harmadik
fölvonás alapjában el van hibázva. A második fölvonásban
tetőpontjára jutott főcselekvény természetszerű kifejlése már nem a
színpadon, hanem a kulisszák mögött következik be, és a nézők
csak idegen elbeszélésből értesűlnek róla. E helyett a harmadik
fölvonást tulajdonkép máshová tartozó epizódalakok töltik ki, sőt
néha aránytalanúl el is nyújtják: járóbetegeknek szokták őket
nevezni. Mindazonáltal a finomabb művészet iránt kevésbé fogékony
publicum ezekkel is megelégszik, sőt rendesen ezeken mulat
legjobban.
Megesik, hogy váratlanúl közbejövő körülmények a kulisszák
mögé szánt végkifejlést is a színpadon játszatják le még a második
felvonásban, ami ugyan háromfölvonásos darabban, mivel a
katasztrófa utóljára kell hogy maradjon, a szabályokkal
nyilvánvalólag ellenkezik; de a nézők műérzékét még kevésbé sérti,
mint a cselekvő személyekét. Ez egyébiránt csak ritkán történik meg,
hatalmában állván a vezérszerepet játszó igazgatónak a tetszése
szerint való pillanatban szakítani végét a második fölvonásnak.
E rövid tájékoztató bevezetés után azt hiszem, áttérhetek a mai
darab kritikai ismertetésére.
A színpad egyszerű emelt teret ábrázol, félkörben czifra
vasrácscsal, az előcsarnokra nyiló nagy szárnyajtóval hátterében.
Egyik oldalán üveges irószekrény csillogtatja a sokféle szúró, vágó,
csípő műszert, a másikon vízvezeték csapjai kínálnak meleg vagy
hideg vízzel. Nagy rézmedenczékben szivacsok áznak, s a rácshoz
tiszta törűlközők simúlnak, nemsokára piros újjnyomokat mutatók –
kellemes színhatásúl. Az előtérben nehány faszék és zöld
bőrkarszék; a középtérben keskeny tolható ágy egészíti ki a nemes
egyszerüségű bútorzatot.
Legelőször lép be a néma személy, akinek – mint említém – az
szokott a teendője lenni, hogy másokat engedjen tenni. »Eset« a
műneve. Belép, azaz hogy ez épen nem lép be, mert hisz ép annak
köszönheti ittlétét, hogy nem tud a lábára lépni. Betolják a kerekes
ágyon, szépen betakarják és magára hagyják a még üres teremben.
Köröskörűl tág, ásító padok, felülről az üvegtetőn át éles világosság,
és mindenütt hideg nyugalom: érdekes hangúlat. Jó darabot
elmélkedhetik, míg az első néző megérkezik.
Sebesen jön és az ajtót maga után becsapja. Szétnéz és ásít.
Gondolkozva fölmegy a legfölső sorba; nem annyira azt akarja, hogy
ő lásson, mint inkább, hogy őt ne lássák. Névsort is szoktak olvasni
néha a bérlők fölött; jó mégis itt lenni, bár otthon – átvirrasztott éj
után – kényelmesebb volna az alvás. Igy áldozza föl a könnyelmű
ifjúság ártatlan gyönyörének legszebb perczeit. – Azomban érkeznek
többen és az első padokat foglalják el. Lassankint minden hely
betelik. Nagy ma a buzgalom: a nézősereg érez valamit.
Az pedig ott a színpadon csak várakozik. A köröskörűl
mindinkább szaporodó ismeretlen, komoly arczokról valami nagyon
rejtélyeset és nagyon félelmeset olvas. – Részünkről ezt sem tartjuk
– művészeti szempontból – egészen helyesnek; mert az alak így
egyrészt veszít érdekes voltából, másrészt meg különben is nehéz
szerepébe időnek előtte belefárad, ami nem ritkán az összjáték
rovására van. No de ezt csak amúgy mellékesen jegyezzük meg;
nem akarunk ily csekélységekre nagy súlyt fektetni.
A kezdet ma egy kicsit késik. Már némi tűrelmetlenség kezd
mutatkozni, de íme jön az észlelő és papirossal kezében, elfoglalja
helyét az eset oldala mellett. Következik a szolga és végűl a
nagyságos úr, segédei kíséretében. Figyelem! kezdődik az előadás.
Az észlelő elfogúlt hangon olvas. Az előzményeket az ő
szavaiból tudjuk meg. Elcsépelt műfogás; de menthető az által, hogy
az eset, akire vonatkoznak, maga technikai okoknál fogva
hallgatásra van kárhoztatva és legfölebb hozzá képzelheti, amit itt
mint lényegtelent mellőznek. A cselekvény menetére nézve valóban
lényegtelen dolgok, de az ő szivének talán igen fontosak, csaknem
fontosabbak, mint a hallgatókra nézve az, hogy róm. kath.,
Piripócson született, Budapesten lakik stb. Mivel azt hiszem, hogy
olvasóim az ily részletekkel többet törődnek a rendes
nézőközönségnél, röviden a következőkben van szerencsém azokat
jelezni.
Két éve – olvassa az észlelő – munka közben lezuhanó fal eltörte
a szárcsontját. Két éve – gondolja az eset – szép tavaszi reggel,
szombat reggele. Mily boldog volt akkor, midőn elbucsúzva
feleségétől és kedves kis gyermekeitől, kőmíves munkára ment,
hogy este hazahozza heti keresményét. Majd vídám vasárnapot
csapnak, hús is kerűl az asztalra, néha egy korty bort se sajnáljon az
ember magától. Ebéd után ünnepi ruhában, melyre mészpor
soh’sem szállt, sétálni mennek, ki a liget felé… Díszes új utcza,
széles, fákkal szegett körút alakúl a régi, görbe utczák szurtos
helyén. Egyik ócska házat a másik után kell lebontani, hogy ott
majdan paloták emelkedjenek, nyájas hajlékot adva ezereknek, ha
már elkészűltek, becsületes munkát, kenyeret most, épülőfélben. –
Bontják már a régi falat, csattog a csákány, zuhog a vakolat, tégla
hull le tégla után, porfelhő kél nyomában a mélyből. Egyre törpül a
fal és már-már eltünik. Hirtelen, nagy robajjal egész oldalfal dől el
váratlanul. Jaj annak, akit ér, jaj annak a szegény munkásnak,
akinek szívszaggató sikoltása hasítja át a levegőt. Eszméletlenűl,
vérző fejjel, törött lábbal terül el a vakolat fölött.
Hazavitték, otthon föléledt, felesége ápolta gondosan.
Megtakarított keresménye, minden jószága ráment a gyógyításra. A
tört láb összeforradt, de rosszúl; sohsem tudott ép lábhoz jutni azóta.
Munkára többé nem mehetett. Derűlt, meleg hónapok jöttek, és ő
nem tehetett mást, kiült a küszöbre, nézte az udvaron játszó
gyermekeket, míg felesége keserves napszámban odajárt, hogy
tarthassa családját, tarthasson egy fiatal, külömben erős férjet.
Megpróbálta többször, a munka ment nagykínosan egy darabig, de
hiába! – a rozzant láb nem bírta sokáig. Folyt tovább a henye élet, a
nyomorúság szégyenletes kenyéren. Még hozzá az asszony is
ágynak esett, az éhező gyermekek sírtak körülötte, és ő ép, erős
karját nem átallotta az égre emelni. Elment, járt utczáról utczára
munka után, és végűl kínjában összerogyott. Ide hozták, ma éppen ő
reá kerűlt a sor.
Az észlelő urat megkérdezik, mit tart a dolog felől. Van benne
elég szerénység, hogy semmit se tartson. Majd taglalja a nagyságos
úr. Az esetnek előre vaczog a foga, mintha fáznék. Leveszik róla a
takarót. »Mit csinál, nem szégyenli magát, hisz még nem bántják!« A
kések még mind nyugton heverésznek a tálczákon. Most még csak
azt próbálják, hogy a törési végek összecsontosodtak-e, vagy csak
szállagosan függnek össze. A dolog fölötte egyszerű. Egyik segéd
térdben erősen tartja, a tanár úr bokában fogja meg és feszíti:
kimozdul-e a törési helyből az alsó darab. Az eset megfeledkezik
szerepéről és fölsziszszen. »Mi a baja?!« Szónoki kérdés, emelt
hangon, amelyre nem szabad válaszolni.
Csakugyan mozog. Következik egy remek előadás a
csonttörésekről. Az első padokban figyelnek is. Sok szép, hangzatos
idegen szó; a néma személy nem állhatja meg, hogy kiváncsi ne
legyen értelmükre, noha ez nincs szerepében. Azt hiszi, mind az ő
bajára vonatkozik, pedig dehogy! Három negyed óráig csak nem
lehet ily közönséges esetről beszélni?! Ő maga csak éppen alkalom.
Az egészből őt csak annyi illeti, hogy a csontvégek átfúrták az izmok
burkoló hártyáit, ezek közéjük ékelődtek és az összecsontosodást
gátolták. Könnyű segíteni. Csak szét kell újra húzni a tört végeket,
fölmetszeni a bőrt, a fölösleges hártyákat eltávolítani, a csontvégeket
egyenesre fűrészelni vagy vésni, összeilleszteni, bekötni és 2
hónapig várni, hogy sikerűlt-e az operáczió.
Szerfölött egyszerű. Merőben fölösleges, hogy az eset hideg
verejtéket izzadjon hallatára. Minek is hallgat oda? nem neki
beszélnek. Aztán meg mire való az a nagy fantázia egy esetnek?
Kell hogy érezze előre a feszűlő bőr húzását, a kés élének hidegét;
kell, hogy már most hallja a fűrész recsegését, a véső csattogását?
Bizony kár így remegnie. Hiszen hallhatja a pompás kórjóslatot;
hallhatja, hogy lábánák elhalására a műtét után a valószinűség csak
10%, hogy éppen nem bizonyos, le kell-e a lábát még utólag vágni?
Sőt nagyon valószinű, hogy a csontvégek szépen összeforrnak, a
láb teljesen meggyógyúl, alig fél hüvelykkel marad rövidebb a
másiknál, és esetleg még mankó nélkűl is használható.
Az eset családjára gondol, amely most tán éhezik, várva
föntartója visszatérését, s amelyet ezután sem fog eltarthatni.
Mankóval keressen kőműves munkát?! És ennyi szenvedés után!
Hiába akarja leküzdeni, könnyek törnek elő szeméből. Szomorúan
néz a segédekre: minek hoztatok hát akkor ide a kínpadra, ha
nyomorék maradok!
Jó, hogy a nagyságos úr nem látja. Hallatlan, hogy a darabnak ez
a személye még holmi tekinteteket is merjen elkövetni. Kénytelenek
vagyunk e helyt sajnálkozásunkat kifejezni a fölött, hogy e fontos
szerep betanítására ily kevés gondot fordítanak. Hideg verejték,
fogvaczogás, ijedt, sőt ami több, szemrehányó tekintetek: mind olyan
dolgok, melyek az összjátékot nagy mértékben zavarják, amelyekről
tehát a szereplőt jó előre le kellene szoktatni. Ilyesminek elnézése
legfölebb a következő fölvonásban lenne indokolt, ahol a kés már
csakugyan vérben ázik és valósággal recseg a fűrész, ahol
különösen szem előtt kell tartani a humánusság követelményeit. De
az expositióban?! Hová lesz a drámai fokozás, ha az eset már az
első felvonásban a fogait vaczogtatja? A sírás pedig éppenséggel
művészietlen túlzás.
Nevetséges! Mintha ezek az orvosok itt tehetnének róla, hogy
neki öt gyermeke van; mintha egy kőmívesnek ócska csontjaiból
külömb lábat lehetne faragni a tudomány által előírottnál!
Még se kezdik már? – sóhajtja. Ezóta száz műtét gyötrelmeit
kiállta. De hiába, a színpad törvényei megkívánják, hogy az első
felvonás beszélgetés közt múljék el. Most íme élethűen a táblára
rajzolják a törött lábat. Ez a vörös vonal jelenti a metszés irányát, ez
a sárga a fűrész útját stb. Ha e két csontvég összeillik, teljes a
gyógyúlás; ha az ér átszakad, vagy a heg által összeszorúl, a végtag
elhal.
Legnagyobb elismeréssel adózunk ez expositiónak. A következő
fölvonás bonyodalma máris teljes világosságban áll előttünk.
No most hozzáfognak a műtéthez. Az eset letárgyaltatott rövid
egy óra alatt. Hozzák a spongyákat és a tálczákat. A kötések készen
állanak, az ércsipők sorba rakva, a kések éle mind kipróbálva. De
mégse. Ma már nem lehet. A műtét egyszerű ugyan, de kissé
hosszadalmas, és az idő előrehaladt. Majd holnap! Helyette
hozzanak másikat, akivel hamarabb lehet végezni!
Ezt újra letakarják, a szárnyajtók föltárúlnak, az ágy kigördűl, az
eset újra elfoglalja helyét a kórteremben, melyet annyi reménnyel
hagyott el 2 óra előtt. Kiváncsi, kérdő arczok fogadják: Nos? Kezével
int szótlanúl. Jobb volna, sokkalta jobb, ha meghalna még a műtét
alatt, – gondolja most. Ezzel vége az első fölvonásnak.
És íme, itt ismét utalunk a komédia szerkezetének már előbb
jelzett sarkalatos hibájára. Az érdeklődés két, sőt esetleg több
személy sorsa között oszlik meg. Őszintén tanácsoljuk a
szerzőknek, hogy e hiányosságon tőlük telhetőleg segítsenek, annál
is inkább, mert maga a hely- és időegység, amit szem előtt tartanak,
kétszeresen szükségessé teszik a cselekvény egységét is.
A második fölvonás.

A szín megmarad, a szereplők közűl is csak kettő változik.


Másutt van dolga a nagyságos úrnak; kivételképen az első segéd
veszi át szerepét, ami az esetben könnyűnek igérkezik. A másik a
néma szereplő, ez eset. Most egy őszhajú, őszszakállú hosszú,
szikár ember fekszik a középen. Expositió volt már, hozzá lehet fogni
a cselekvényhez minden szószaporítás nélkűl.
Kissé több a változás a nézőtéren. Alig tette ki lábát a tanár úr az
ajtón, seregestűl tódúltak ki a padokból azok, akik várakozásukban
megcsalódtak, és most legnagyobb boszuságukra szorgalmuk
minden bizonyitása nélkűl kénytelenek a kávéházba, vagy az
aszfaltra menni. Ez azonban még nem volna baj, csakhogy most
már holnap is el kell jönni: rég készen van a katalógus. A tágas
teremben sok üres hely támad, alig ketten-hárman ülnek, inkább
heverésznek egy-egy padban. Itt-ott előbukkan a mai lap vagy
valami érdekes regény, amit – utóvégre – itt is el lehet olvasni, nem
kell azért hazamenni ebéd előtt. Akinek nincs egyebet mit tennie,
akad néhány figyelő is.
Pedig nem nagyon érdemes. A mutatvány nem lesz különösen
érdekfeszítő: csak egy hasznavehetlen lábat fognak levágni.
Érdekesebbek a napi események, amelyekről nagy buzgósággal
csevegnek. Ha valaki nem látja az emelvény közepén a fehéren
leterített alakot, alig hinné, hogy itt tragédiát adnak. A nézők arczáról
ugyan nem olvashatná le. Hiába, legnagyobbrészt olyanok vannak
itt, akiknek idegeit már mindenre megedzé a megszokás vagy ennek
helyén a nemtörődés. Nem ez az első darab, amit látnak, rég
kiállották már a tűzpróbát. Szemük, fülük, orruk, gyomruk rég
megbarátkozott a modern realisztikus iránynyal, szívüknek pedig
nincs a dologba beleszólása.
A boncztermek bűze, az eltorzitott holttestek, a csupasz
bádogasztalokra kirakott elszabdalt húsdarabok: mindez semmi, ez
mind néma, ma olyan, mint holnap. Sokkal hatásosabb hallani a
kétségbeesett jajgatást, az elfulladó hörgést s az iszonyú fájdalom
minden hangjait. De még ennél is külömb, csaknem megható látni,
mint tűnik elő hófehér női keblen az éles kés nyomán egy élénk
piros, keskeny vonal, mint fakadnak ebből apró vérpatakocskák, mint
siet végig a csillogó rubíncsöpp a síma bőrön, rikító vérszalagot
vonva maga után, mint íródnak új meg új útak a fehér alapon, mint
tűntet el végűl a gőzölgő meleg vér minden fehéret. A szivacs letörli
az élettől elrablott csöppöket, de csak azért, hogy újra meg újra
ismétlődjék a fehérnek meg a pirosnak eme kellemes színjátéka…
Aztán a műtevőnek véres újjai behatolnak az élő, mozgó, érző testbe
és őrjítő kínokat okozva, nagy erővel kifejtenek egy szinte élő, érző
húsdarabot. – Shakespeare még nem merte ezt színpadra vinni,
csak fenyegetődzött vele. Mi már mérlegre tesszük az élő fontot, és
ez éppen a haladásunk.
De ez már gyermekjáték. Aki megtanúlta látni hófehér bőrön a
piros vér patakzását, az mindent megtanúlt.
Aztán meg ez a ránczos sárga bőr, ami most itt kés alatt van,
csak holmi vén póstatiszté, akinek élete már úgy sem sokat ér.
Mennyivel különb a mai tárczában az az ingerlő kaland az előkelő
társaságból… Itt, ha sikerűl is a műtét, nem sok haszna van már
belőle az öregnek; ha nem sikerűl – annál jobb talán.
De hogyne sikerűlne! Csekélység az egész. Ha nem volna ily
vén, asszonyosan gyönge a beteg, el se kellene altatni, hogy tűrelmi
szerepét jól eljátsza. Igy azonban még tán szégyenszemre ríva is
fakadna, mikor csontjában a fűrész kissé megakad. Egy, kettő, –
mindjárt készen van. Úgy dolgozik itt minden kéz, mint egy gép
kereke.
Immár mély horkolással jelzi az eset, hogy kábulatba merűlt.
Szoros gyűrűivel a gyapotpólya visszatolja a vért a test felé, és erős
gummikötés, mélyen bevágva a sovány húsba, nyomásával elzárja
az ütőereket: a lefejtett pólya alól hidegen, halottan tűnik elő a láb. A
kis kés pengéje ügyes kört kanyarít a bőrben, nyomán alig-alig
serked egy piros csöpp. Tüstént utána a nagy kés az izmokat
csontig szeli, és a fűrész vígan recseg a csontban, mialatt a néma
szereplő nyugodtan aluszsza álmát. Még néhány húzás, – a segéd
urak halkan egymás közt víg adomát mesélnek, – és a lábat a
szolga lepedőbe takarva félrelöki az asztal alá, mint mikor a kertész
száraz ágat nyiszált le a fáról. Néhány nagyobb eret be lehet kötni
így is; de a kisebbek helyét csak a kiszökellő vér fogja mutatni. Le
kell oldani a szorító gyűrűt. Egy pillanat alatt bíborra válik az
átázhatatlan lepedő fehére s az alája tett tálba hangos csöppökben
húll a vér: a nagy véredényekről is leszakadtak a kötések.
Az eset ajaka mozdúl. Álmában néki is szabad beszélni. Él is a
szabadalommal. Lengyelül szól. Szilárd hangon nagyokat kiált,
mintha csatában győzelemre vezérelne. Ejnye de harczias álmában
– ez a vén póstatiszt!
Hamar újra a csípőt, új fonalat! Drága a vér ilyen öregnek! Alig
hurkolták meg az egyik csomót, alig vesznek új fonalat a másikhoz,
az előbbinek helyéről már is újra vastag sugár lövell,
beföcskendezve a műtevőnek kékzubbonyos mellét és mindig
komolyabbra húzódó arczát. Jónak látja magyarázólag a hallgatók
felé fordítani fejét: 60 éven túl az edények falának ilyen
törékenysége nem ritkaság; a fonalat, hogy elzárja a nyílást erősen
meg kell húzni s az éles fonál elvágja az eret. Nincs rajta semmi
különös. Utóvégre mégis csak fog sikerűlni.
A fölfogó medencze pedig vérrel lassacskán szépen megtelik, s a
műtét tárgyának kábulata oszladozik. Fölnyitja szemét, mozdítja
karját. A kábító álarczot ismét orrára teszik, de ő tiltakozik. Kár volt
elaltatni előbb is, ki tudja állani szótlanúl ébren is, csak vágják
bátran. »Rajta, előre!« – suttogja félálomban. »Én lengyel vagyok,
szelid ember, nekem mindegy, ha meghalok is… Bem alatt
szolgáltam a hazát. Ugyan ne tréfáljanak velem, végezzék
gyorsan… Nem félek a vértől, hisz lengyel vagyok, nem német, ne
fogják el a szememet… Ne várassák a jó ebédjüket oly soká,
siessenek bátran«…
Hej! sietnének ők már. De ha ezek az átkozott erek többször is
átszakadnak, mint amennyi a szakadékonyság bemutatására
elegendő lett volna. Kár is vele vesződni tovább; az operált hangja
folyton gyengül, érverése lassúdik. Félre lehet tenni a bódítót;
kábításra alaposabb mód, ami itt váratlanúl kínálkozik. Elvégre is
tenni kell valamit. Ily csupaszon az óriási seb nem bámulhat ki az
ablakon az aprófelhős égboltozatra. Finom kóczból nagy csomókat
szorítanak reá erősen és bepólyázzák fehér göngyöleggel.
Várnak egy darabig. Az öreg magához tér, fejét kissé fölemeli és
meglátja csonka lábát. Elmosolyodik valami furcsa mosollyal;
tagadólag int a kérdésre, hogy fáj-e. Nem kell rá több czipő; pedig de
sokat elnyűtt Bem alatt a Kaukazusban és utóbb vele harczolva a
magyar hazáért.
A segédek feszűlt várakozással néznek a fehér pólyára; a hátsó
padokban feszűlt várakozással lesik, mikor éri utól a papa az ügyvéd
úrral megszökött kisasszonyt. És mire a haragos papa leányát a
szép ügyvédtől visszaragadja, és mire elfogy az újságban az olvasni
való: piczi piros folt támad a fehér pólya közepén. Ott a színpadon
reménykednek, hogy tán nem lesz nagyobb. De a kis folt nőttön nő,
és néhány percz alatt a pólyán keresztül is csurog a vér, pedig már
nagyon hosszúra nyúlt a fölvonás. Nem csuda, ha tűrelmüket vesztik
a szereplők. Még szégyenszemre idő előtt befejeződik a darab! Hisz
az érlökés már alig-alig érezhető, s az ébredezőt környékezi a
leghosszabb, a legédesebb álom.
Föl-fölriad és a többi közt néhány szánó arczot is talál maga
körül. Bántja a szánalom és kezd utasítása ellenére rögtönözni olyan
beszédeket, aminőket e színpadon még aligha szavaltak s amelyek
még e nehezen kielégíthető nézőközönségre is hatást gyakorolnak.
»Mit sajnálnak engem? Meg tudok én halni bátran, sokszor néztem
szembe a halállal. Immár szabad földön halok meg, könnyű a halál.
Ne nézzenek így reám, nincs senkim, a kit bánjak, nem is volt soha.
Szívesen megyek: a kardnál úgyis nehezebb volt nekem az írótoll.
Keserű volt az űlve keresett kenyér… Vén vagyok, ideje úgyis. De a
magyar föld szabad föld… Lengyelország nem az… De lesz!…«
A többi szó lassanként elhal, nem érthető.
»No még egyet!« mondja a műtevő verejtékes homlokkal,
elgondolkozva, nem is figyelve a vén fecsegőre, nem hallva csak a
vér szűntelen csöpögését. – Próbáljuk meg, alkalmazzuk a czomb
fölső részén az érlenyomót és újra a gumipólyát. Az egész láb
elpusztúl talán. De mindegy, legalább mára.
És csakugyan az új pólya nem vörösödik át többé, megszűnt a
vérzés. De mintha a darab ilyetén szerencsés kimenetele kicsit
elkésett volna! A megmaradt kevés vér fonálszerűen, vékonyan
csörgedezik az erekben: valamivel több kellene ilyen öregnek.
Készen vagyunk bácsi!
»Köszönöm«, mondja a bácsi, »köszönöm jóságukat.
Emlékezzenek reám… Kaminszky Gusztáv honvédkapitány… írnok
a póstán. Köszönöm… Éljen a haza!«
És ezzel igazán vége a második fölvonásnak is, az ágyat
kigördítik az ajtón.
Úgy-e hatásos befejezés? Kissé fellengző talán. És nem
valószínű, – fogják mondani a realisztikus irány hívei. Mikor az
ember elvérzik, nem szónokol. Meglehet; nem akarom védeni a
darabot, de hogy így adták elő ott a színpadon, azt bizonyítom.
Holnap majd jelenthetik az ismert formulával: »Az operáczió
sikerűlt, a beteg meghalt.«
A harmadik fölvonás.

A hallgatók elhagyják helyüket és a színpad körűl


csoportosúlnak. Mindenki jól akarja látni a most következőket,
mindenki előre tolakodik. Soron van a járó betegek fölvezetése, a
napi látnivalók utolsó szakasza, a harmadik fölvonás idebenn. Ott
künn a kórteremben kevésbé vidámat játszik, aki az első és második
hőse volt. Ez itt azomban igen mulatságos, sőt tanúlságos dolog.
Legalább ezt bizonyítja előre is az a türelem, mellyel a jó helyen
állók elszívelik, hogy a mögöttük lévők rájuk támaszkodjanak, a
rácshoz nyomják őket és lehelletükkel elfogják előlük a levegőt.
Pedig hát a bonczolótermek illatát csak el lehet viselni, de a
kollégákét: keserű föladat!
Súlyos műtét volt az előadás tárgya. Szerencsésen sikerűlt, az
illető még nem halt meg. A segédek könnyebbűlten lélekzenek föl, a
tanár úrnak is jó kedve támadt. A még mindíg mély bódulatba merűlt
beteget épp most tólták ki a magas szárnyajtókon. Egy kis szünet
állott be, hogy a díszletekben megtörténhessék a kellő változás.
A véres vizet a nagy ónozott medenczékből a szolga kiönti, a
spongyákat kifacsarja, a késeket s a fényes réztálczákat törölgeti. A
kék-zubbonyos segédek kezüket mossák, a tanár úr már ül az
ablaknak háttal fordított székén és nyugalommal tisztogatja fínom
körmeit. Mögötte sűrű félkör beszélget halkan, és az egész csoportra
a tető üvegén át derűlt világ vetődik.
Egy intés – majdnem csöngetést várnánk az első jelenethez – az
ajtó kitárúl, jön a betegfölvezető és olvassa az első beteg nevét, aki
meghunnyászkodva áll mögötte. Szabály, hogy a legszegényebbé
az elsőség, kivéve a sürgős eseteket – és az urakat.
Ime, úgy látszik itt is hirtelen segély kell. Hatalmas legény, pedig
összegörnyed. Széles melle fölött a rongyos ing sárral és vérrel
bekeverve. Bután néz maga elé, talán még részeg. Homlokáról –
bocsánat, a színdarab kissé realisztikus – egy forró csöpp siet alá
arczán szájáig. Lenyalja. Azt se tudja, hol van. Mikor szóllítják, úgy
kell előre lökni a tanár úr előtt álló székig. Leültetik. Kocsiról esett le,
a lovak megtaposták, a kerék körösztűl ment a fején, nehéz kocsi
kereke. Koponyája bizonyosan meghasadt, csoda, hogy még él.
Először is meg kell mosni. Egyik szemhéja lehasítva csak úgy lóg;
arczán odaszáradt vér. Bozontos hajához a segéd úr félve,
undorodva nyúl. De a tanár úr egy szava elfeledteti vele, hogy glacé-
keztyűt szokott hordani, és a vér néhány percz alatt letisztúl, a haj
lehull: mit se tesz, ha a gyors borotva itt-ott egy darabka bőrt is
levakar. Sőt jól is esik, mert a vendég ezalatt békésen elszundikál.
Csak akkor ébred föl, mikor a repedés mélységét kutatják.
Csekélység, mélyebbnek látszott: oda se nézzen neki! Szemhéját
néhány ügyes öltés fölvarrja. Mehet! A vízvezetékhez tuszkolják,
hogy a sűrűn omló vért lemossák, a sebeket bekötözzék.
Addig is jőjjön más. Sápadt, sovány asszony támolyog be: ez
lesz a tragikai hősnő. Az ajtónál akaratlanúl megáll, darabig nézi az
oldalt most már jajgató véres hőst: csak neki dől a szarufának
szótlanúl, meredt szemmel. Hamar ki vele! Nem tudja még jól a
szerepét, van addig más. A tapasztalatlanabb hallgatók nem
átallanak kisietni, hogy megnézzék. A tanúltabbak mosolyognak
ezen a kiváncsiságon. Mit láthatnak ott? Az asszonyt végig fektették
az előcsarnok márvány padlatán, egy csomó kész és készűlő doktor
körülállja. Ez locsolja, az rázza, és egyesűlt erővel életre gyötrik.
Mire majd egészen magához tér és kérdi ámultan: hol vagyok? a
saját csepegő vére fog néki idebenn felelni.
Addig is szebbet látni. Jön egy remek nyelvrák és vele egy öreg
ősz pap. Az országnak távol részéből utazott föl gyógyúlásért, vagy
legalább vigaszért. Ez a komoly jellemszerep. A tanár úr nézi,
tapogatja. Mióta van? Fáj-e? Nagyon fáj? Hány éves a tisztelendő
úr? Hetven!… No akkor már nem baj. Kár volna bántani. Hetven
éves ember belenyugodhatik a sorsába… Egy évig még így is
elélhet. – Ez utóbbi mondat a hallgatóknak szól, de a tisztelendő úr
is hallja és visz magával haza szépszavú vigasztalást, meg egy kis
theára való reczipét orvosságúl.
Következik egy czifra nyakkendős boltos segéd. Ez a darab
komikusa Nagy sopánkodással beszél. Nincs porczikája, amelyre ne
jajgatna. – »No mijét vágjuk le?« – kérdi leereszkedőleg az itélő bíró
élet és halál fölött, itt a karszékben. A komikus ijedten dadog, a
hallgatók kötelességüknek tárják, hogy nagyot nevessenek.
Átvizsgálják tetőtül talpig: nem találnak semmi baját. – Nos? itt
csak olyanokkal foglalkozunk, akiken vágni lehet. Milyen kést
méltóztatik parancsolni a sok közűl? Nézze csak ezt példáúl, milyen
szép fényes. – És a nagy beteg ferdén köti föl a czifra nyakkendőt,
szalonkabátját félregombolja és ijedtében annyira meggyógyúl, hogy
hármasával szedi lefelé a vörös lépcsőket és meg sem áll a kapuig.
Vértelen operáczió; pompásan sikerűlt. Akad itt-ott nehezebb is.
De azért egymást éri a tréfa a legzordonabb komolyságban. Akinek
kezén oly sok élet fordúl meg, nem csoda, ha már játék vele bánnia.
A kés meg az olló serényen dolgozik; gyermek és aggastyán, férfi és
nő – ez a fölvonás változatos – mindenik hágy itt valamit: ez bőrt, az
húst vagy csontot, vagy legalább egy kis vért. A nagyságos úr
bámulatos kedvében van. Híres keze ma különösen remekel. Csupa
tiszta munka, jó munka. Ma talán még csak nem is fáj a vágás, amit
ejt. A várakozók sora hamar lefogy. A hallgatóság meg van
elégedve.
A végén, hogy valami a magasabb bohózatból menjen
közkivánatra befejezésűl, egy nagyon vén, sovány kis emberke
mutogat a csípőjén meg a keresztcsontján kékes foltokat, melyek
száraz, sorvadó bőrén tenyérnyi helyeket fognak el. Félig olaszúl,
félig németűl beszél, nagyon gyorsan, nagyon furcsán. Azt mondja,
hogy megverték, s úgy el-elsóhajtozik, mialatt avúlt gunyáját magára
szedi. Megverték? Úgy úgy! bólogat, és hosszú, sárgás-fehér
szakálla meg-megrezdűl reszkető, kopasz feje mozgásira. – Hol
esett hát ez a nagy esemény? – Három ölnyire a Buzalkától. No
igen. Mit nevetnek? A küszöbtől annyira lökték.
– Ejnye öreg! Mit keres maga vén létére a Buzalkában? Nem
szégyenli magát?
Hej, hej, nem mulatni ment ő oda. A figuráit, mert ő gipszfigurákat
árul, eltörték; a hordozó tábláját a hátán zúzták össze. Azóta alig tud
járni. Úgy fájnak azok a golyók csípőjében, amelyeken az egész test
nyugszik!
– De tudós ember maga öreg!
Persze, persze! Hetvenhárom éves; és az ember sokat tapasztal.
De nem birja már a figuráit. A tábla nehéz, sokat kell járkálni még
éjjel is – a kávéházakban. A mulató urak néha vesznek. – A
nagyságos úr ma szokatlanúl türelmes volt, elhallgatta ezt a sok
beszédet. Szeretné magát fölvétetni ide.
Nem lehet, nincs rajta mit tanúlni. Menjen kórházba! Öltözködjék
hamar, hamar!
Nagyokat sóhajt a bolondos öreg. Oly nevetséges igazán, amint
öltözködik, de lassan, lassan, amint sopánkodik, és a szakálla rezeg.
És folyvást beszél: a hallgatóság jóizűen kaczag.
Azt hadarja, kézzel lábbal magyarázva és közbe-közbe egy
hevesebb mozdulatnál följajdúlva, hogy hiszen volt ő már a barak
kórházban, de nagyon komiszúl bántak vele. Pedig ő tanúlt ember;
nagyon sokat gondolkozott, ámbár hogy iskolába járjon, nem volt
vagyona. Hetvenhárom évig gondolkodott, mindig, mindig
gondolkodott…
Most is addig-addig gondolkodik, míg a teremben egyedűl marad.
A tanár úr bevégezte, eltávozott; vele a segédek is. Aztán a
hallgatók. Az öreg még mindíg beszél, öltözik és gondolkodik, mikor
már söprik is a termet.
Végre elkészűl. Megy. Kis batyuját a várószobában összeszedi,
nyakába akasztja tábláját, melyen most is van néhány figura. Oly
szeretettel nézegeti sorra, nem esett-e valami bajuk. Úgy dörmög
magában, mintha beszélgetne velük. Talán panaszkodik nekik:
»Lássátok, elküldtek innét, még ki is nevettek. Úgy-e rosszak az
emberek? Jertek haza, ott senki se bánt. Ott megvagytok ti is
békességben, nem visz el senki. De legalább enni nem kértek, hisz
magamnak sincs.« Neki indúl, elér a lépcsőig, ott leül pihenni.
Hányszor ennyi van hazáig!
Nehány medikus még ott lézengett az előcsarnokban. Kiváncsian
körűlvették, kérdezősködtek, faggatták, hisz nagyon mulatságos
emberke. Örűlt a megtiszteltetésnek és figuráit kínálva a mai kenyér
árának fejében, beszédbe eredt velük.
Sohse volt senkije. De mégis: a figurák. Ők voltak barátai, velük
együtt gondolkozott csöndben, békességesen. Sorban állnak a
polczon. A kis fiú pityeregve ímádkozik, a leányka virágot árul, egy
másik hangosan énekel, az a macskával játszik, ez papircsákóban
botpuskával sétál és így sorban mindeniknek más a dolga. Híven
megteszik: a fiúcska nem únja el a pityergést, se a lányka árúlgatni
virágait napról napra, évről évre. De az csupán úgy látszik, mintha
mást nem tennének. Az öreg csak a megmondhatója, mennyi
mindent tudnak, mily okosak. Esténkint, mikor az udvarról a lámpa
besüt a lépcsőalji zúgszobába, és egy régi pokrócz jó meleget ád, a
lányka virágai százféleképen illatoznak, az éneklő csak úgy
váltogatja dalait, a katona vesszőparipára, csatajátékra fölhívja a
többit is, a macska bukfenczeket hány, és úgy vigad mindenki, hogy
a pityergő fiúcska is nevetésre fakad, elfeledi az imádságot meg a
mama virgácsait.
Csak ne kéne kimenni az emberek közé. Miért nincs gipszből ő
is! Sokszor már úgy rémlett, maga is elmeszesedett és fölállt a
polczra a többihez. Hiába, azokat is le kell szedni és el-elvinni házról
házra, az utczákon föl s alá, dideregve, éhesen.
A minap is egy úr azt mondta, hogy éjjel 10 órára vigye ki a kis
fiúkat a Buzalkába, ott majd vesz belőlük néhányat. Szívesen
kiment, pedig a Ferenczvárostól messze van odáig. A tábla nehéz
volt, sokat rakott reá, azt hitte sokat ád el oly gazdag uraknak. Az
eső esett, az út síkos volt, és a földet a táblától alig láthatta. Hat
órakor útnak indúlt és már pontban féltízkor ott volt. Leült egy
szögletbe és békésen nézte a mulatozókat, akik oda-oda szóltak és
mámoros fővel ingerkedtek. Ő csak tűrt mindent, legföllebb figuráit
kínálta. Ezt meg csak szabad?! Tessék elhinni, nem garázdálkodott.
Igy csak telt az idő, már éhes is volt, szomjas is lett, pedig annyi sört
hordoztak, annyi ételt vittek. No majd fog enni-inni ő is, vegyenek
tőle, akik igérték. Tizenegy órát elütötte, nem érkezének. Elütötte a
tizenkettőt is. Ekkor jött meg lármázva, czimboráival együtt az az úr.
Leültek egy asztal mellé, ettek, ittak, majd tánczra kerekedtek, a
szegény öreget ott a szögletben észre se vették. Utoljára
megsokalva a várakozást, oda ment és figyelmeztette az urat
igéretére – tessék elhinni, egész tisztességtudással. Még is dűhbe
jött, összeszidta, koldusnak, tolakodó gazembernek nevezte. Kérte
még egyszer, legalább valamit vegyen tőle, hogy étlen ne kelljen
hazamennie. Bizony nem szólt neki semmit mást, és az mégis
ellökte durván, hogy majd csaknem hátraesett.
Mit volt mit tennie, késő volt az éjszaka, összepakolódzott és
kiment szomorúan, fohászkodva, panaszkodva, de nem gorombán,
ne tessék hinni. Azok az urak mégis fölbőszűltek, azt mondták:
hallatlan szemtelenség. Utána futottak. Úgy érezte, igazán, mintha
ágyúlövés érte volna hátulról, és egyik járdától a másikig röpűlt.
Nagyon, de nagyon fájt; azok meg kiröhögték. Föl se tudott kelni
sokáig, a figuráit se tudta többé összeragasztani. A legszebb,
legdrágább macskák rapittyára zúztak. Ki lábát, ki fejét törte el, egy
se maradt épen.
A fiatal orvos urak jót nevetve, vigasztalásúl a vállára veregetve
nyájasan, egyenként eltünedeztek, de figurát aki vegyen, nem akadt.
Minek nekik?!
Hanem a mai komédia: az nagyon jó volt.
Szenvedők karácsonya.

»Édes anyám azt ígérte, Karácsonyra hazavisz, és ma ide se jött.


Pedig úgy-e, ma karácsony van? Nem jött el édes anyám; de majd
eljön holnap, tudom, és hazavisz. Ugy-e haza mehetek holnap,
hiszen már semmi bajom. Csak szomjas vagyok és a nyelvem olyan
száraz!… Néni, adjon egy kis vizet!… A doktor urak is azt mondják,
hogy meggyógyúltam. Ugy-e haza megyek holnap?«
»Haza, kis leányom, igazi hazádba« – gondolja magában az
apácza, mialatt a betegnek, aki alig tud fölülni, egy pohár vizet tart
ajkaihoz. A száraz ajkaknak oly jól esnek a hűsítő csöppek! Sovány
kezével, melyen mint kékes vonalak látszanak az erek, ő is
megfogta a poharat, de maga nem igen tudná tartani reszkető újjai
közt. Szomja nehány perczre lecsillapúl, s ő visszahanyatlik a
párnára. Ápolója szomorú mosollyal tekint reá. Munkától érdes
kezével, mely már annyi haldoklónak szemét zárta le, végigsimítja a
halvány orczácskákat és rajtuk azt a két tüzes foltot, a láz rózsáit,
végig a forró homlokot s a puha szőke hajat, ahová már aligha
menyasszonyi koszorút tesznek.
»Mennyivel szebb lett volna otthon a karácsony! Istenem, hogy
köhög, hogy zihál az a szép feketehajú néni ott túl! Ő meg fog halni
– súgja oda az apáczának félénken és összeborzadva – a fiatal
doktor urak mondták… De én nem halok meg?!…«
»Nem, nem, kicsikém; majd szépen hazamész testvérkéid közé,
majd szépen eljátszogattok, mint azelőtt!« És a jámbor nőt most egy
csöppet se bántja a lelkiismeret, hogy nem mond igazat.
»Vajjon csinálnak-e otthon az idén is karácsonyfát, mint tavaly?
Oh! milyen szép volt; én csináltam hozzá az aranyos lánczokat.«
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like