DNN module: set Torch model to evaluation() mode
Torch models can run in two different modes: train() and evaluation(). Results of some layers such as batch normalization will be affected by the modes.
Currently it seems (i.e., when I tested) that OpenCV's DNN module loads and runs torch models in train() mode. Is there a way to use torch models in evaluation() mode using OpenCV?
(ADDED)
Below is the lua code for running the model with two different modes.
require 'torch'
require 'image'
require 'nn'
local net = torch.load('model.t7')
net:evaluate() -- you can turn this on or off
local image_input = image.load('input_image.jpg', 3, 'float')
image_input:resize(1, image_input:size()[1], image_input:size()[2], image_input:size()[3])
local result = net:forward(image_input)
image.save('result.jpg', result[1])