Spaces:
Build error
Build error
Download util/lua/convert_to_json.lua from rawanessam/FloorPlanTransformation: direct link, hf CLI and curl.
- Browser
- Download file 1.83 kB
-
https://huggingface.co/spaces/rawanessam/FloorPlanTransformation/resolve/main/util/lua/convert_to_json.lua
- Command line
-
hf download hf://spaces/rawanessam/FloorPlanTransformation/util/lua/convert_to_json.lua
-
curl -L -o convert_to_json.lua https://huggingface.co/spaces/rawanessam/FloorPlanTransformation/resolve/main/util/lua/convert_to_json.lua
1.83 kB
| require 'nn' | |
| require 'cunn' | |
| require 'cudnn' | |
| require 'fbnn' | |
| require 'fbcunn' | |
| local cjson = require 'cjson' | |
| -- Convert a file to json. | |
| local pl = require'pl.import_into'() | |
| local function merge(t_dst, t_src) | |
| for i, v in ipairs(t_src) do | |
| table.insert(t_dst, v) | |
| end | |
| return t_dst | |
| end | |
| local function extract_array(t) | |
| local all_array = {} | |
| if type(t) == 'table' then | |
| for i, v in ipairs(t) do | |
| merge(all_array, extract_array(v)) | |
| end | |
| elseif torch.typename(t) and torch.typename(t):match('Tensor') then | |
| t:apply(function (x) table.insert(all_array, x) end) | |
| else | |
| error("Input is not a table or a tensor!") | |
| end | |
| return all_array | |
| end | |
| local function recursive_save(t, name_prefix) | |
| local all_array = {} | |
| local all_save = {} | |
| print(name_prefix) | |
| if type(t) == 'table' then | |
| for k, v in pairs(t) do | |
| if type(k) == 'string' then | |
| save_content = recursive_save(v, name_prefix .. "_" .. k) | |
| for kk, vv in pairs(save_content) do | |
| all_save[kk] = vv | |
| end | |
| elseif type(k) == 'number' then | |
| -- Save v with the existing prefix. | |
| -- For tensor, save every element. | |
| merge(all_array, extract_array(v)) | |
| end | |
| end | |
| else | |
| all_array = extract_array(t) | |
| end | |
| if #all_array > 0 then all_save[name_prefix] = all_array end | |
| return all_save | |
| end | |
| local opt = pl.lapp[[ | |
| -i,--input (default "") Input model | |
| -o,--outputprefix (default "") Output model | |
| ]] | |
| local save_content = recursive_save(torch.load(opt.input), opt.outputprefix) | |
| for name, content in pairs(save_content) do | |
| local f = assert(io.open(name, "w")) | |
| f:write(cjson.encode(content)) | |
| f:close() | |
| end | |