In [5]:
require 'image';
paths.dofile('./../eval_helper.lua');
net = nil
collectgarbage()
In [6]:
--local net_dir = '/home/kivan/source/deep-learning/semantic_segmentation/output/nets/16s_SunMar615:58:072016/'
--local net_dir = '/home/kivan/source/deep-learning/semantic_segmentation/output/results/SunMar617:01:082016/' SunMar617:36:082016
--local net_dir = '/home/kivan/source/deep-learning/semantic_segmentation/output/nets/wgt100_SunMar617:36:082016/'
--local net_dir = '/home/kivan/source/deep-learning/semantic_segmentation/output/results/SatMar12_11:53:04/'
local net_dir = '/home/kivan/source/deep-learning/semantic_segmentation/output/nets/pyramid_2s_concat_TueMar15_13:31:21'
--local net_dir = '/home/kivan/source/deep-learning/semantic_segmentation/output/nets/wgt1000_MonMar711:18:232016/'
local model_path = net_dir .. '/model_copy.lua'
_, loss, train_container, validation_container = paths.dofile(model_path)
net = torch.load(net_dir .. "net.bin")
net:evaluate()
print(validation_container:size())
In [4]:
function ComputePrediction(net, data, name)
--local out_dir = param_data_dir .. '/img/' .. name .. '/softmax_potentials/'
--os.execute('mkdir -p ' .. out_dir)
net:evaluate()
local x, yt, weights, filename = data:GetNextBatch()
local num_batches = 0
while x do
num_batches = num_batches + 1
local y = net:forward(x)
local _, pred = y:max(2)
pred = pred[1][1]:int()
print(pred:size())
local rgb_img = image.load(param_data_dir .. '/../img/data/' .. name .. '/' .. filename:sub(1,filename:find('_')-1) .. '/' .. filename)
local rgb_label = image.load(param_data_dir .. '/../img/labels/' .. name .. '/' .. filename:sub(1,filename:find('_')-1) .. '/' .. filename)
itorch.image(rgb_label)
itorch.image(rgb_img)
local pred_rgb = DrawPrediction(pred)
itorch.image(pred_rgb)
yt = yt[1]:int()
print(pred_rgb[1]:size())
local mask = yt:eq(pred)
mask[yt:eq(0)] = 1
pred_rgb[1][mask] = 0
pred_rgb[2][mask] = 0
pred_rgb[3][mask] = 0
--pred_rgb[{{},mask}] = 0
itorch.image(pred_rgb)
x, yt, weights, filename = data:GetNextBatch()
collectgarbage()
end
end
In [6]:
--ComputePrediction(net, validation_container, 'valid')
ComputePrediction(net, validation_container, 'val')
In [3]:
rgb = torch.randn(1,3,1632,736):cuda()
net:training()
out = net:forward(rgb)
net:backward(out, out)
In [ ]:
In [ ]:
print(net:get(38);
In [ ]:
In [ ]: