1
0
Fork 0
mirror of synced 2024-06-29 11:41:29 +12:00
waifu2x/lib/settings.lua

81 lines
3.1 KiB
Lua
Raw Normal View History

2015-05-16 17:48:05 +12:00
require 'xlua'
require 'pl'
require 'trepl'
2015-05-16 17:48:05 +12:00
-- global settings
if package.preload.settings then
return package.preload.settings
end
-- default tensor type
torch.setdefaulttensortype('torch.FloatTensor')
local settings = {}
local cmd = torch.CmdLine()
cmd:text()
2015-10-28 20:25:41 +13:00
cmd:text("waifu2x-training")
2015-05-16 17:48:05 +12:00
cmd:text("Options:")
2015-11-06 14:08:54 +13:00
cmd:option("-seed", 11, 'RNG seed')
cmd:option("-data_dir", "./data", 'path to data directory')
2015-10-31 08:38:28 +13:00
cmd:option("-backend", "cunn", '(cunn|cudnn)')
2015-11-06 14:08:54 +13:00
cmd:option("-test", "images/miku_small.png", 'path to test image')
2015-05-16 17:48:05 +12:00
cmd:option("-model_dir", "./models", 'model directory')
2015-11-06 14:08:54 +13:00
cmd:option("-method", "scale", 'method to training (noise|scale)')
cmd:option("-noise_level", 1, '(1|2)')
2015-11-06 14:08:54 +13:00
cmd:option("-style", "art", '(art|photo)')
cmd:option("-color", 'rgb', '(y|rgb)')
2015-11-07 11:18:22 +13:00
cmd:option("-random_color_noise_rate", 0.0, 'data augmentation using color noise (0.0-1.0)')
cmd:option("-random_overlay_rate", 0.0, 'data augmentation using flipped image overlay (0.0-1.0)')
cmd:option("-random_half_rate", 0.0, 'data augmentation using half resolution image (0.0-1.0)')
2015-11-06 14:08:54 +13:00
cmd:option("-scale", 2.0, 'scale factor (2)')
2015-05-16 17:48:05 +12:00
cmd:option("-learning_rate", 0.00025, 'learning rate for adam')
2015-11-06 14:08:54 +13:00
cmd:option("-crop_size", 46, 'crop size')
cmd:option("-max_size", 256, 'if image is larger than max_size, image will be crop to max_size randomly')
cmd:option("-batch_size", 8, 'mini batch size')
cmd:option("-epoch", 200, 'number of total epochs to run')
2015-10-28 19:30:47 +13:00
cmd:option("-thread", -1, 'number of CPU threads')
2015-11-06 14:08:54 +13:00
cmd:option("-jpeg_sampling_factors", 444, '(444|420)')
2015-11-07 11:18:22 +13:00
cmd:option("-validation_rate", 0.05, 'validation-set rate (number_of_training_images * validation_rate > 1)')
cmd:option("-validation_crops", 80, 'number of cropping region per image in validation')
cmd:option("-active_cropping_rate", 0.5, 'active cropping rate')
2015-11-06 14:08:54 +13:00
cmd:option("-active_cropping_tries", 10, 'active cropping tries')
2015-11-11 02:07:45 +13:00
cmd:option("-nr_rate", 0.75, 'trade-off between reducing noise and erasing details (0.0-1.0)')
2015-05-16 17:48:05 +12:00
local opt = cmd:parse(arg)
for k, v in pairs(opt) do
settings[k] = v
end
if settings.method == "noise" then
settings.model_file = string.format("%s/noise%d_model.t7",
settings.model_dir, settings.noise_level)
2015-05-16 17:48:05 +12:00
elseif settings.method == "scale" then
settings.model_file = string.format("%s/scale%.1fx_model.t7",
settings.model_dir, settings.scale)
elseif settings.method == "noise_scale" then
settings.model_file = string.format("%s/noise%d_scale%.1fx_model.t7",
settings.model_dir, settings.noise_level, settings.scale)
2015-05-16 17:48:05 +12:00
else
error("unknown method: " .. settings.method)
end
if not (settings.color == "rgb" or settings.color == "y") then
error("color must be y or rgb")
end
2015-05-16 17:48:05 +12:00
if not (settings.scale == math.floor(settings.scale) and settings.scale % 2 == 0) then
error("scale must be mod-2")
end
2015-11-06 14:08:54 +13:00
if not (settings.style == "art" or
settings.style == "photo") then
error(string.format("unknown style: %s", settings.style))
end
2015-10-28 19:30:47 +13:00
if settings.thread > 0 then
torch.setnumthreads(tonumber(settings.thread))
end
2015-05-16 17:48:05 +12:00
settings.images = string.format("%s/images.t7", settings.data_dir)
settings.image_list = string.format("%s/image_list.txt", settings.data_dir)
return settings