By R Studio: details here
devtools::install_github("rstudio/keras")
For those using Conda
Using your own python setup
pip install keras
## [1] "Hello world!"
model <- keras_model_sequential() # Open an interface to tensorflow
# Set up the neural network
model %>%
layer_dense(units = 256, activation = 'relu', input_shape = c(784)) %>%
layer_dropout(rate = 0.4) %>%
layer_dense(units = 128, activation = 'relu') %>%
layer_dropout(rate = 0.3) %>%
layer_dense(units = 10, activation = 'softmax')
That’s it. Keras makes it easy.
## Model: "sequential_1"
## ________________________________________________________________________________
## Layer (type) Output Shape Param #
## ================================================================================
## dense (Dense) (None, 256) 200960
## ________________________________________________________________________________
## dropout (Dropout) (None, 256) 0
## ________________________________________________________________________________
## dense_1 (Dense) (None, 128) 32896
## ________________________________________________________________________________
## dropout_1 (Dropout) (None, 128) 0
## ________________________________________________________________________________
## dense_2 (Dense) (None, 10) 1290
## ================================================================================
## Total params: 235,146
## Trainable params: 235,146
## Non-trainable params: 0
## ________________________________________________________________________________
## $loss
## [1] 0.1117176
##
## $accuracy
## [1] 0.9812
Example output of AlexNet
The first (of 5) layers learned
Inputs:
Input
Output
Goal: Build a classifier based on the images’ content
## Model: "sequential"
## ________________________________________________________________________________
## Layer (type) Output Shape Param #
## ================================================================================
## conv2d (Conv2D) (None, 254, 254, 32) 896
## ________________________________________________________________________________
## re_lu (ReLU) (None, 254, 254, 32) 0
## ________________________________________________________________________________
## conv2d_1 (Conv2D) (None, 252, 252, 16) 4624
## ________________________________________________________________________________
## leaky_re_lu (LeakyReLU) (None, 252, 252, 16) 0
## ________________________________________________________________________________
## batch_normalization (BatchNormaliza (None, 252, 252, 16) 64
## ________________________________________________________________________________
## max_pooling2d (MaxPooling2D) (None, 126, 126, 16) 0
## ________________________________________________________________________________
## dropout (Dropout) (None, 126, 126, 16) 0
## ________________________________________________________________________________
## flatten (Flatten) (None, 254016) 0
## ________________________________________________________________________________
## dense (Dense) (None, 20) 5080340
## ________________________________________________________________________________
## activation (Activation) (None, 20) 0
## ________________________________________________________________________________
## dropout_1 (Dropout) (None, 20) 0
## ________________________________________________________________________________
## dense_1 (Dense) (None, 2) 42
## ________________________________________________________________________________
## activation_1 (Activation) (None, 2) 0
## ================================================================================
## Total params: 5,085,966
## Trainable params: 5,085,934
## Non-trainable params: 32
## ________________________________________________________________________________
eval <- model %>%
evaluate_generator(img_test,
steps = as.integer(test_samples / batch_size),
workers = 4)
eval
## $loss
## [1] 0.7535837
##
## $accuracy
## [1] 0.6572581
## Model: "sequential_2"
## ________________________________________________________________________________
## Layer (type) Output Shape Param #
## ================================================================================
## conv2d_4 (Conv2D) (None, 62, 62, 96) 34944
## ________________________________________________________________________________
## re_lu_2 (ReLU) (None, 62, 62, 96) 0
## ________________________________________________________________________________
## max_pooling2d_2 (MaxPooling2D) (None, 31, 31, 96) 0
## ________________________________________________________________________________
## batch_normalization_2 (BatchNormali (None, 31, 31, 96) 384
## ________________________________________________________________________________
## conv2d_5 (Conv2D) (None, 21, 21, 256) 2973952
## ________________________________________________________________________________
## re_lu_3 (ReLU) (None, 21, 21, 256) 0
## ________________________________________________________________________________
## max_pooling2d_3 (MaxPooling2D) (None, 10, 10, 256) 0
## ________________________________________________________________________________
## batch_normalization_3 (BatchNormali (None, 10, 10, 256) 1024
## ________________________________________________________________________________
## conv2d_6 (Conv2D) (None, 8, 8, 384) 885120
## ________________________________________________________________________________
## re_lu_4 (ReLU) (None, 8, 8, 384) 0
## ________________________________________________________________________________
## batch_normalization_4 (BatchNormali (None, 8, 8, 384) 1536
## ________________________________________________________________________________
## conv2d_7 (Conv2D) (None, 6, 6, 384) 1327488
## ________________________________________________________________________________
## re_lu_5 (ReLU) (None, 6, 6, 384) 0
## ________________________________________________________________________________
## batch_normalization_5 (BatchNormali (None, 6, 6, 384) 1536
## ________________________________________________________________________________
## conv2d_8 (Conv2D) (None, 4, 4, 384) 1327488
## ________________________________________________________________________________
## re_lu_6 (ReLU) (None, 4, 4, 384) 0
## ________________________________________________________________________________
## max_pooling2d_4 (MaxPooling2D) (None, 2, 2, 384) 0
## ________________________________________________________________________________
## batch_normalization_6 (BatchNormali (None, 2, 2, 384) 1536
## ________________________________________________________________________________
## flatten_2 (Flatten) (None, 1536) 0
## ________________________________________________________________________________
## dense_4 (Dense) (None, 4096) 6295552
## ________________________________________________________________________________
## activation_4 (Activation) (None, 4096) 0
## ________________________________________________________________________________
## dropout_4 (Dropout) (None, 4096) 0
## ________________________________________________________________________________
## batch_normalization_7 (BatchNormali (None, 4096) 16384
## ________________________________________________________________________________
## dense_5 (Dense) (None, 4096) 16781312
## ________________________________________________________________________________
## activation_5 (Activation) (None, 4096) 0
## ________________________________________________________________________________
## dropout_5 (Dropout) (None, 4096) 0
## ________________________________________________________________________________
## batch_normalization_8 (BatchNormali (None, 4096) 16384
## ________________________________________________________________________________
## dense_6 (Dense) (None, 1000) 4097000
## ________________________________________________________________________________
## activation_6 (Activation) (None, 1000) 0
## ________________________________________________________________________________
## dropout_6 (Dropout) (None, 1000) 0
## ________________________________________________________________________________
## batch_normalization_9 (BatchNormali (None, 1000) 4000
## ________________________________________________________________________________
## dense_7 (Dense) (None, 2) 2002
## ________________________________________________________________________________
## activation_7 (Activation) (None, 2) 0
## ================================================================================
## Total params: 33,767,642
## Trainable params: 33,746,250
## Non-trainable params: 21,392
## ________________________________________________________________________________
YOLOv3
Yolo model and graphing tool from lutzroeder/netron
Diagram from What’s new in YOLO v3 by Ayoosh Kathuria
Think about how facial recognition showed up everywhere for images over the past few years
What creative uses for the techniques discussed today do you expect to see become reality in accounting in the next 3-5 years?
Today, we: