srcnn.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. require 'cunn'
  2. require 'cudnn'
  3. require './LeakyReLU'
  4. function cudnn.SpatialConvolution:reset(stdv)
  5. stdv = math.sqrt(2 / ( self.kW * self.kH * self.nOutputPlane))
  6. self.weight:normal(0, stdv)
  7. self.bias:fill(0)
  8. end
  9. local function create_model()
  10. local model = nn.Sequential()
  11. model:add(cudnn.SpatialConvolution(1, 32, 3, 3, 1, 1, 0, 0):fastest())
  12. model:add(nn.LeakyReLU(0.1))
  13. model:add(cudnn.SpatialConvolution(32, 32, 3, 3, 1, 1, 0, 0):fastest())
  14. model:add(nn.LeakyReLU(0.1))
  15. model:add(cudnn.SpatialConvolution(32, 64, 3, 3, 1, 1, 0, 0):fastest())
  16. model:add(nn.LeakyReLU(0.1))
  17. model:add(cudnn.SpatialConvolution(64, 64, 3, 3, 1, 1, 0, 0):fastest())
  18. model:add(nn.LeakyReLU(0.1))
  19. model:add(cudnn.SpatialConvolution(64, 128, 3, 3, 1, 1, 0, 0):fastest())
  20. model:add(nn.LeakyReLU(0.1))
  21. model:add(cudnn.SpatialConvolution(128, 128, 3, 3, 1, 1, 0, 0):fastest())
  22. model:add(nn.LeakyReLU(0.1))
  23. model:add(cudnn.SpatialConvolution(128, 1, 3, 3, 1, 1, 0, 0):fastest())
  24. model:add(nn.View(-1):setNumInputDims(3))
  25. --model:cuda()
  26. --print(model:forward(torch.Tensor(32, 1, 92, 92):uniform():cuda()):size())
  27. return model, 7
  28. end
  29. return create_model