| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | -- adapted from https://github.com/marcan/cl-waifu2xrequire 'pl'local __FILE__ = (function() return string.gsub(debug.getinfo(2, 'S').source, "^@", "") end)()package.path = path.join(path.dirname(__FILE__), "..", "lib", "?.lua;") .. package.pathrequire 'w2nn'local cjson = require "cjson"function export(model, output)   local jmodules = {}   local modules = model:findModules("nn.SpatialConvolutionMM")   if #modules == 0 then      -- cudnn model      modules = model:findModules("cudnn.SpatialConvolution")   end   for i = 1, #modules, 1 do      local module = modules[i]      local jmod = {	 kW = module.kW,	 kH = module.kH,	 nInputPlane = module.nInputPlane,	 nOutputPlane = module.nOutputPlane,	 bias = torch.totable(module.bias:float()),	 weight = torch.totable(module.weight:float():reshape(module.nOutputPlane, module.nInputPlane, module.kW, module.kH))      }      table.insert(jmodules, jmod)   end   local fp = io.open(output, "w")   if not fp then      error("IO Error: " .. output)   end   fp:write(cjson.encode(jmodules))   fp:close()endlocal cmd = torch.CmdLine()cmd:text()cmd:text("waifu2x export model")cmd:text("Options:")cmd:option("-i", "input.t7", 'Specify the input torch model')cmd:option("-o", "output.json", 'Specify the output json file')cmd:option("-iformat", "ascii", 'Specify the input format (ascii|binary)')local opt = cmd:parse(arg)if not path.isfile(opt.i) then   cmd:help()   os.exit(-1)endlocal model = torch.load(opt.i, opt.iformat)export(model, opt.o)
 |