python - How to generate sequence using LSTM? -


i want generate sequence when particular input activated. want generate odd or sequence according corresponding input neuron activation. trying create model using lstm because can remember short term order.

i tried way

import numpy np keras.models import sequential keras.layers import dense,lstm   x=np.array([[1,0],             [0,1]])  y=np.array([[1,3,5,7,9],             [2,4,6,8,10]])  model = sequential() model.add(dense(10, input_shape=(2)) model.add(lstm(5, return_sequences=true)) model.add(lstm(5, return_sequences=false)) model.add(dense(5)) model.compile(loss='mse', optimizer='adam')  model.fit(x,y) 

but when tried fit model giving me error

nameerror: name 'model' not defined

to use rnns in keras need introduce additional dimension data: timesteps. in case want have 5 timesteps. because want have one-to-many relationship between input , output data need replicate input data 5 times. last lstm layer must set return sequences, since want result every timestep , not last one. make dense layers aware of time dimension need wrap them timedistributed layer. , last dense layer has 1 output, since output 1 result each timestep.

import numpy np keras.models import sequential keras.layers import dense,lstm keras.layers.wrappers import timedistributed  x=np.array([[[1, 0],         [1, 0],         [1, 0],         [1, 0],         [1, 0]],         [[0, 1],         [0, 1],         [0, 1],         [0, 1],         [0, 1]]])   y=np.array([[[ 1],         [ 3],         [ 5],         [ 7],         [ 9]],         [[ 2],         [ 4],         [ 6],         [ 8],         [10]]])   model = sequential() model.add(timedistributed(dense(10), input_shape=(5, 2))) model.add(lstm(5, return_sequences=true)) model.add(lstm(5, return_sequences=true)) model.add(timedistributed(dense(1))) model.compile(loss='mse', optimizer='adam')  model.fit(x,y, nb_epoch=4000)  model.predict(x) 

with after 4000 epochs following result:

epoch 4000/4000 2/2 [==============================] - 0s - loss: 0.0032 out[20]: array([[[ 1.02318883],         [ 2.96530271],         [ 5.03490496],         [ 6.99484348],         [ 9.00506973]],         [[ 2.05096436],         [ 3.96090508],         [ 5.98824072],         [ 8.0701828 ],         [ 9.85805798]]], dtype=float32) 

Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -