Building an RBM model
In this recipe, we will build an RBM model as discussed (in detail) in Chapter 5, Generative Models in Deep Learning.
Getting ready
Let's set up our system for the model:
- In Piano, the lowest note is 24 and the highest is 102; hence, the range of notes is 78. Thus, the number of columns in the encoded matrix is 156 (that is, 78 for note-on and 78 for note-off):
lowest_note = 24L highest_note = 102L note_range = highest_note-lowest_note
- We will create notes for 15 number of steps at a time with 2,340 nodes in the input layer and 50 nodes in the hidden layer:
num_timesteps = 15L num_input = 2L*note_range*num_timesteps num_hidden = 50L
- The learning rate (alpha) is 0.1:
alpha<-0.1
How to do it...
Looking into the steps of building an RBM model:
- Define the
placeholder
variables:
vb <- tf$placeholder(tf$float32, shape = shape(num_input)) hb <- tf$placeholder(tf$float32, shape = shape(num_hidden)) W <- tf$placeholder(tf$float32, shape = shape(num_input...