Advertisement
Guest User

Untitled

a guest
May 20th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. using Boltzmann
  2. using MLDatasets.MNIST: testdata
  3. using ImageView
  4.  
  5. include("relu.jl")
  6.  
  7. function plot_weights(W, imsize, padding=10)
  8. h, w = imsize
  9. n = size(W, 1)
  10. rows = Int(floor(sqrt(n)))
  11. cols = Int(ceil(n / rows))
  12. halfpad = div(padding, 2)
  13. dat = zeros(rows * (h + padding), cols * (w + padding))
  14. for i=1:n
  15. wt = W[i, :]
  16. wim = reshape(wt, imsize)
  17. wim = wim ./ (maximum(wim) - minimum(wim))
  18. r = div(i - 1, cols) + 1
  19. c = rem(i - 1, cols) + 1
  20. dat[(r-1)*(h+padding)+halfpad+1 : r*(h+padding)-halfpad,
  21. (c-1)*(w+padding)+halfpad+1 : c*(w+padding)-halfpad] = wim
  22. end
  23. imshow(dat)
  24. return dat
  25. end
  26.  
  27. X, y = testdata() # test data is smaller, no need to downsample
  28. X = Float64.(reshape(X, 784, :))
  29. X = X ./ (maximum(X) - minimum(X))
  30.  
  31. m = RBM(Degenerate, NReLU, 28 * 28, 100)
  32. fit(m, X, n_epochs=100, randomize=true)
  33.  
  34. plot_weights(m.W[1:64, :], (28, 28))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement