cifar_cnn = nn_module(
initialize = function() {
self$net = nn_sequential( # (N, 3, 32, 32)
nn_conv2d(3, 6, kernel_size = 5), # -> (N, 6, 28, 28)
nn_relu(),
nn_max_pool2d(kernel_size = 2, stride = 2), # -> (N, 6, 14, 14)
nn_conv2d(6, 16, kernel_size = 5), # -> (N, 16, 10, 10)
nn_relu(),
nn_max_pool2d(kernel_size = 2, stride = 2), # -> (N, 16, 5, 5)
nn_flatten(), # -> (N, 400)
nn_linear(16 * 5 * 5, 120), # -> (N, 120)
nn_relu(),
nn_linear(120, 84), # -> (N, 84)
nn_relu(),
nn_linear(84, 10) # -> (N, 10)
)
},
forward = function(x) {
self$net(x)
}
)