View source: R/createGoogLeNetModel.R
createGoogLeNetModel2D | R Documentation |
Creates a keras model of the GoogLeNet deep learning architecture for image recognition based on the paper
createGoogLeNetModel2D(
inputImageSize,
numberOfOutputs = 1000,
mode = c("classification", "regression")
)
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. |
numberOfOutputs |
Specifies number of units in final layer |
mode |
'classification' or 'regression'. |
C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, A. Rabinovich, Going Deeper with Convolutions C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna. Rethinking the Inception Architecture for Computer Vision
available here:
https://arxiv.org/abs/1409.4842 https://arxiv.org/abs/1512.00567
This particular implementation was influenced by the following python implementation:
https://github.com/fchollet/deep-learning-models/blob/master/inception_v3.py
a GoogLeNet keras model
Tustison NJ
library( ANTsRNet )
library( keras )
library( ANTsR )
mnistData <- dataset_mnist()
numberOfLabels <- 10
# Extract a small subset for something that can run quickly.
# We also need to resample since the native mnist data size does
# not fit with GoogLeNet parameters.
resampledImageSize <- c( 100, 100 )
numberOfTrainingData <- 10
numberOfTestingData <- 5
X_trainSmall <- as.array(
resampleImage( as.antsImage( mnistData$train$x[1:numberOfTrainingData,,] ),
c( numberOfTrainingData, resampledImageSize ), TRUE ) )
X_trainSmall <- array( data = X_trainSmall, dim = c( dim( X_trainSmall ), 1 ) )
Y_trainSmall <- to_categorical( mnistData$train$y[1:numberOfTrainingData], numberOfLabels )
X_testSmall <- as.array(
resampleImage( as.antsImage( mnistData$test$x[1:numberOfTestingData,,] ),
c( numberOfTestingData, resampledImageSize ), TRUE ) )
X_testSmall <- array( data = X_testSmall, dim = c( dim( X_testSmall ), 1 ) )
Y_testSmall <- to_categorical( mnistData$test$y[1:numberOfTestingData], numberOfLabels )
# We add a dimension of 1 to specify the channel size
inputImageSize <- c( dim( X_trainSmall )[2:3], 1 )
model <- createGoogLeNetModel2D( inputImageSize = c( resampledImageSize, 1 ),
numberOfOutputs = numberOfLabels )
model %>% compile( loss = 'categorical_crossentropy',
optimizer = optimizer_adam( lr = 0.0001 ),
metrics = c( 'categorical_crossentropy', 'accuracy' ) )
# 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()
model <- createGoogLeNetModel2D( inputImageSize = c( resampledImageSize, 1 ),
numberOfOutputs = 2 )
rm(model); gc()
model <- createGoogLeNetModel2D( inputImageSize = c( resampledImageSize, 1 ),
mode = "regression" )
rm(model); gc()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.