24 lines
878 B
Matlab
24 lines
878 B
Matlab
function show_rbm(rbm_w)
|
|
n_hid = size(rbm_w, 1);
|
|
n_rows = ceil(sqrt(n_hid));
|
|
blank_lines = 4;
|
|
distance = 16 + blank_lines;
|
|
to_show = zeros([n_rows * distance + blank_lines, n_rows * distance + blank_lines]);
|
|
for i = 0:n_hid-1,
|
|
row_i = floor(i / n_rows);
|
|
col_i = mod(i, n_rows);
|
|
pixels = reshape(rbm_w(i+1, :), [16, 16]).';
|
|
row_base = row_i*distance + blank_lines;
|
|
col_base = col_i*distance + blank_lines;
|
|
to_show(row_base+1:row_base+16, col_base+1:col_base+16) = pixels;
|
|
end
|
|
extreme = max(abs(to_show(:)));
|
|
try
|
|
imshow(to_show, [-extreme, extreme]);
|
|
title('hidden units of the RBM');
|
|
catch err
|
|
fprintf('Failed to display the RBM. No big deal (you do not need the display to finish the assignment), but you are missing out on an interesting picture.\n');
|
|
end
|
|
end
|
|
|