-
Notifications
You must be signed in to change notification settings - Fork 1
/
symbol_lenet.R
24 lines (21 loc) · 997 Bytes
/
symbol_lenet.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
library(mxnet)
get_symbol <- function(num_classes = 1000) {
data <- mx.symbol.Variable('data')
# first conv
conv1 <- mx.symbol.Convolution(data = data, kernel = c(5, 5), num_filter = 20)
tanh1 <- mx.symbol.Activation(data = conv1, act_type = "tanh")
pool1 <- mx.symbol.Pooling(data = tanh1, pool_type = "max", kernel = c(2, 2), stride = c(2, 2))
# second conv
conv2 <- mx.symbol.Convolution(data = pool1, kernel = c(5, 5), num_filter = 50)
tanh2 <- mx.symbol.Activation(data = conv2, act_type = "tanh")
pool2 <- mx.symbol.Pooling(data = tanh2, pool_type = "max", kernel = c(2, 2), stride = c(2, 2))
# first fullc
flatten <- mx.symbol.Flatten(data = pool2)
fc1 <- mx.symbol.FullyConnected(data = flatten, num_hidden = 500)
tanh3 <- mx.symbol.Activation(data = fc1, act_type = "tanh")
# second fullc
fc2 <- mx.symbol.FullyConnected(data = tanh3, num_hidden = num_classes)
# loss
lenet <- mx.symbol.SoftmaxOutput(data = fc2, name = 'softmax')
return(lenet)
}