R/createWideResNetModel.R
createWideResNetModel2D.Rd
Creates a keras model of the Wide ResNet deep learning architecture for image classification/regression. The paper is available here:
createWideResNetModel2D( inputImageSize, numberOfClassificationLabels = 1000, depth = 2, width = 1, residualBlockSchedule = c(16, 32, 64), poolSize = c(8, 8), dropoutRate = 0, weightDecay = 0.0005, mode = "classification" )
inputImageSize | Used for specifying the input tensor shape. The shape (or dimension) of that tensor is the image dimensions followed by the number of channels (e.g., red, green, and blue). The batch size (i.e., number of training images) is not specified a priori. |
---|---|
numberOfClassificationLabels | Number of classification labels. |
depth | integer determining the depth of the network. Related to the
actual number of layers by the |
width | integer determining the width of the network. Default = 1. |
residualBlockSchedule | vector determining the number of filters
per convolutional block. Default = |
poolSize | pool size for final average pooling layer. Default = c( 8, 8 ). |
dropoutRate | Dropout percentage. Default = 0.0. |
weightDecay | weight for l2 regularizer in convolution layers. Default = 0.0005. |
mode | 'classification' or 'regression'. Default = 'classification'. |
a Wide ResNet keras model
https://arxiv.org/abs/1512.03385
This particular implementation was influenced by the following python implementation:
https://github.com/titu1994/Wide-Residual-Networks
Tustison NJ
#> Error in py_discover_config(required_module, use_environment): Python specified in RETICULATE_PYTHON (/Users/ntustison/anaconda3/envs/antsx/bin/python3) does not existnumberOfLabels <- 10 # Extract a small subset for something that can run quickly X_trainSmall <- mnistData$train$x[1:10,,]#> Error in eval(expr, envir, enclos): object 'mnistData' not found#> Error in array(data = X_trainSmall, dim = c(dim(X_trainSmall), 1)): object 'X_trainSmall' not found#> Error in to_categorical(mnistData$train$y[1:10], numberOfLabels): object 'mnistData' not foundX_testSmall <- mnistData$test$x[1:10,,]#> Error in eval(expr, envir, enclos): object 'mnistData' not found#> Error in array(data = X_testSmall, dim = c(dim(X_testSmall), 1)): object 'X_testSmall' not found#> Error in to_categorical(mnistData$test$y[1:10], numberOfLabels): object 'mnistData' not found# We add a dimension of 1 to specify the channel size inputImageSize <- c( dim( X_trainSmall )[2:3], 1 )#> Error in eval(expr, envir, enclos): object 'X_trainSmall' not foundmodel <- createWideResNetModel2D( inputImageSize = inputImageSize, numberOfClassificationLabels = numberOfLabels )#> Error in py_discover_config(required_module, use_environment): Python specified in RETICULATE_PYTHON (/Users/ntustison/anaconda3/envs/antsx/bin/python3) does not existmodel %>% compile( loss = 'categorical_crossentropy', optimizer = optimizer_adam( lr = 0.0001 ), metrics = c( 'categorical_crossentropy', 'accuracy' ) )#> Error in compile(., loss = "categorical_crossentropy", optimizer = optimizer_adam(lr = 1e-04), metrics = c("categorical_crossentropy", "accuracy")): object 'model' not found# Comment out the rest due to travis build constraints # track <- model %>% fit( X_trainSmall, Y_trainSmall, verbose = 1, # epochs = 1, batch_size = 2, shuffle = TRUE, validation_split = 0.5 ) # Now test the model # testingMetrics <- model %>% evaluate( X_testSmall, Y_testSmall ) # predictedData <- model %>% predict( X_testSmall, verbose = 1 ) rm(model); gc()#> Warning: object 'model' not found#> used (Mb) gc trigger (Mb) limit (Mb) max used (Mb) #> Ncells 2536138 135.5 4570014 244.1 NA 4570014 244.1 #> Vcells 4473402 34.2 12255594 93.6 65536 12254504 93.5