| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| 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) |
| } |