浏览代码

Fix a performance issue

nagadomi 9 年之前
父节点
当前提交
9103d393fe
共有 1 个文件被更改,包括 8 次插入3 次删除
  1. 8 3
      lib/pairwise_transform_jpeg_scale.lua

+ 8 - 3
lib/pairwise_transform_jpeg_scale.lua

@@ -92,32 +92,40 @@ function pairwise_transform.jpeg_scale(src, scale, style, noise_level, size, off
    local xs = {}
    local xs = {}
    local ns = {}
    local ns = {}
    local ys = {}
    local ys = {}
+   local x_noise = add_jpeg_noise(x, style, noise_level, options)
    local lowreses = {}
    local lowreses = {}
    for j = 1, 2 do
    for j = 1, 2 do
       -- TTA
       -- TTA
       local xi, yi, ri
       local xi, yi, ri
       if j == 1 then
       if j == 1 then
 	 xi = x
 	 xi = x
+	 ni = x_noise
 	 yi = y
 	 yi = y
 	 ri = lowres_y
 	 ri = lowres_y
       else
       else
 	 xi = x:transpose(2, 3):contiguous()
 	 xi = x:transpose(2, 3):contiguous()
+	 ni = x_noise:transpose(2, 3):contiguous()
 	 yi = y:transpose(2, 3):contiguous()
 	 yi = y:transpose(2, 3):contiguous()
 	 ri = lowres_y:transpose(2, 3):contiguous()
 	 ri = lowres_y:transpose(2, 3):contiguous()
       end
       end
       local xv = image.vflip(xi)
       local xv = image.vflip(xi)
+      local nv = image.vflip(ni)
       local yv = image.vflip(yi)
       local yv = image.vflip(yi)
       local rv = image.vflip(ri)
       local rv = image.vflip(ri)
       table.insert(xs, xi)
       table.insert(xs, xi)
+      table.insert(ns, ni)
       table.insert(ys, yi)
       table.insert(ys, yi)
       table.insert(lowreses, ri)
       table.insert(lowreses, ri)
       table.insert(xs, xv)
       table.insert(xs, xv)
+      table.insert(ns, nv)
       table.insert(ys, yv)
       table.insert(ys, yv)
       table.insert(lowreses, rv)
       table.insert(lowreses, rv)
       table.insert(xs, image.hflip(xi))
       table.insert(xs, image.hflip(xi))
+      table.insert(ns, image.hflip(ni))
       table.insert(ys, image.hflip(yi))
       table.insert(ys, image.hflip(yi))
       table.insert(lowreses, image.hflip(ri))
       table.insert(lowreses, image.hflip(ri))
       table.insert(xs, image.hflip(xv))
       table.insert(xs, image.hflip(xv))
+      table.insert(ns, image.hflip(nv))
       table.insert(ys, image.hflip(yv))
       table.insert(ys, image.hflip(yv))
       table.insert(lowreses, image.hflip(rv))
       table.insert(lowreses, image.hflip(rv))
    end
    end
@@ -126,9 +134,6 @@ function pairwise_transform.jpeg_scale(src, scale, style, noise_level, size, off
       local xc, yc
       local xc, yc
       if torch.uniform() < options.nr_rate then
       if torch.uniform() < options.nr_rate then
 	 -- scale + noise reduction
 	 -- scale + noise reduction
-	 if not ns[t] then
-	    ns[t] = add_jpeg_noise(xs[t], style, noise_level, options)
-	 end
 	 xc, yc = pairwise_utils.active_cropping(ns[t], ys[t], lowreses[t],
 	 xc, yc = pairwise_utils.active_cropping(ns[t], ys[t], lowreses[t],
 						 size,
 						 size,
 						 scale_inner,
 						 scale_inner,