
AlexNet architecture resolved to shapes and parameter counts (Geron Ch 12, hmalex)
Source:R/geron_ml_native.R
morie_geron_alexnet.Rdout = floor((in - k + 2p)/s) + 1 and params = filters\*(k\*k\*C) + filters, so an input size that collapses a feature map to zero is an error rather than a silent negative dimension.
Value
List with layers, total_params, trainable_params,
output_shape, flatten_dim, conv_params, fc_params.
Examples
morie_geron_alexnet()
#> $layers
#> $layers[[1]]
#> $layers[[1]]$kind
#> [1] "conv"
#>
#> $layers[[1]]$filters
#> [1] 96
#>
#> $layers[[1]]$kernel
#> [1] 11
#>
#> $layers[[1]]$stride
#> [1] 4
#>
#> $layers[[1]]$pad
#> [1] 0
#>
#> $layers[[1]]$out
#> [1] 55
#>
#> $layers[[1]]$params
#> [1] 34944
#>
#>
#> $layers[[2]]
#> $layers[[2]]$kind
#> [1] "pool"
#>
#> $layers[[2]]$filters
#> [1] NA
#>
#> $layers[[2]]$kernel
#> [1] 3
#>
#> $layers[[2]]$stride
#> [1] 2
#>
#> $layers[[2]]$pad
#> [1] 0
#>
#> $layers[[2]]$out
#> [1] 27
#>
#> $layers[[2]]$params
#> [1] 0
#>
#>
#> $layers[[3]]
#> $layers[[3]]$kind
#> [1] "conv"
#>
#> $layers[[3]]$filters
#> [1] 256
#>
#> $layers[[3]]$kernel
#> [1] 5
#>
#> $layers[[3]]$stride
#> [1] 1
#>
#> $layers[[3]]$pad
#> [1] 2
#>
#> $layers[[3]]$out
#> [1] 27
#>
#> $layers[[3]]$params
#> [1] 614656
#>
#>
#> $layers[[4]]
#> $layers[[4]]$kind
#> [1] "pool"
#>
#> $layers[[4]]$filters
#> [1] NA
#>
#> $layers[[4]]$kernel
#> [1] 3
#>
#> $layers[[4]]$stride
#> [1] 2
#>
#> $layers[[4]]$pad
#> [1] 0
#>
#> $layers[[4]]$out
#> [1] 13
#>
#> $layers[[4]]$params
#> [1] 0
#>
#>
#> $layers[[5]]
#> $layers[[5]]$kind
#> [1] "conv"
#>
#> $layers[[5]]$filters
#> [1] 384
#>
#> $layers[[5]]$kernel
#> [1] 3
#>
#> $layers[[5]]$stride
#> [1] 1
#>
#> $layers[[5]]$pad
#> [1] 1
#>
#> $layers[[5]]$out
#> [1] 13
#>
#> $layers[[5]]$params
#> [1] 885120
#>
#>
#> $layers[[6]]
#> $layers[[6]]$kind
#> [1] "conv"
#>
#> $layers[[6]]$filters
#> [1] 384
#>
#> $layers[[6]]$kernel
#> [1] 3
#>
#> $layers[[6]]$stride
#> [1] 1
#>
#> $layers[[6]]$pad
#> [1] 1
#>
#> $layers[[6]]$out
#> [1] 13
#>
#> $layers[[6]]$params
#> [1] 1327488
#>
#>
#> $layers[[7]]
#> $layers[[7]]$kind
#> [1] "conv"
#>
#> $layers[[7]]$filters
#> [1] 256
#>
#> $layers[[7]]$kernel
#> [1] 3
#>
#> $layers[[7]]$stride
#> [1] 1
#>
#> $layers[[7]]$pad
#> [1] 1
#>
#> $layers[[7]]$out
#> [1] 13
#>
#> $layers[[7]]$params
#> [1] 884992
#>
#>
#> $layers[[8]]
#> $layers[[8]]$kind
#> [1] "pool"
#>
#> $layers[[8]]$filters
#> [1] NA
#>
#> $layers[[8]]$kernel
#> [1] 3
#>
#> $layers[[8]]$stride
#> [1] 2
#>
#> $layers[[8]]$pad
#> [1] 0
#>
#> $layers[[8]]$out
#> [1] 6
#>
#> $layers[[8]]$params
#> [1] 0
#>
#>
#> $layers[[9]]
#> $layers[[9]]$kind
#> [1] "fc"
#>
#> $layers[[9]]$filters
#> [1] 4096
#>
#> $layers[[9]]$`in`
#> [1] 9216
#>
#> $layers[[9]]$out
#> [1] 4096
#>
#> $layers[[9]]$params
#> [1] 37752832
#>
#> $layers[[9]]$dropout
#> [1] 0.5
#>
#>
#> $layers[[10]]
#> $layers[[10]]$kind
#> [1] "fc"
#>
#> $layers[[10]]$filters
#> [1] 4096
#>
#> $layers[[10]]$`in`
#> [1] 4096
#>
#> $layers[[10]]$out
#> [1] 4096
#>
#> $layers[[10]]$params
#> [1] 16781312
#>
#> $layers[[10]]$dropout
#> [1] 0.5
#>
#>
#> $layers[[11]]
#> $layers[[11]]$kind
#> [1] "fc"
#>
#> $layers[[11]]$filters
#> [1] 1000
#>
#> $layers[[11]]$`in`
#> [1] 4096
#>
#> $layers[[11]]$out
#> [1] 1000
#>
#> $layers[[11]]$params
#> [1] 4097000
#>
#> $layers[[11]]$dropout
#> [1] 0
#>
#>
#>
#> $total_params
#> [1] 62378344
#>
#> $trainable_params
#> [1] 62378344
#>
#> $output_shape
#> [1] 1000
#>
#> $flatten_dim
#> [1] 9216
#>
#> $conv_params
#> [1] 3747200
#>
#> $fc_params
#> [1] 58631144
#>
#> $dropout
#> [1] 0.5
#>
#> $estimate
#> [1] 62378344
#>
#> $n
#> [1] 11
#>
#> $method
#> [1] "AlexNet architecture resolved to concrete shapes and parameter counts"
#>