Question: 1 ) Complete the following program. # Small LSTM Network to Generate Text for Alice in Wonderland import sys import numpy from keras.models import Sequential
Complete the following program.
# Small LSTM Network to Generate Text for Alice in Wonderland
import sys
import numpy
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM
from keras.callbacks import ModelCheckpoint
#from keras.utils import nputils
from keras.utils import tocategorical
# load ascii text and covert to lowercase
filename "wonderland.txt
rawtext openfilenameread
rawtext rawtext.lower
# create mapping of unique chars to integers
chars sortedlistsetrawtext
chartoint dictc i for i c in enumeratechars
Create inttoint that changes integer to char.
YOUR WORK HERE pts
# summarize the loaded data
nchars lenrawtext
nvocab lenchars
printTotal Characters: nchars
printTotal Vocab: nvocab
# prepare the dataset of input to output pairs encoded as integers
seqlength
dataX
dataY
for i in range nchars seqlength, :
seqin rawtexti:i seqlength
seqout rawtexti seqlength
dataX.appendchartointchar for char in seqin
dataY.appendchartointseqout
npatterns lendataX
printTotal Patterns: npatterns
# reshape X to be samples time steps, features
X numpy.reshapedataXnpatterns, OOO, O
Complete OOO, O
YOUR WORK HERE pts
# normalize
X X floatnvocab
# one hot encode the output variable
y tocategoricaldataY
# define the LSTM model
model Sequential
model.addLSTM inputshapeXshape Xshape
model.addDropout
model.addDenseyshape activation'softmax'
model.compileloss'categoricalcrossentropy', optimizer'adam'
# define the checkpoint
filepath"weightsimprovementepoch:dloss:fkeras"
checkpoint ModelCheckpointfilepath monitor'loss', verbose savebestonlyTrue, mode'min'
callbackslist checkpoint
# fit the model
model.fitX y epochs batchsize callbackscallbackslist
# pick a random seed
start numpy.random.randint lendataX
pattern dataXstart
printSeed:
#printjoininttocharvalue for value in pattern
# generate characters
for i in range:
x numpy.reshapepattern lenpattern
x x floatnvocab
prediction model.predictx verbose
index numpy.argmaxprediction
result inttocharindex
seqin inttocharvalue for value in pattern
sysstdout.writeresult
pattern.appendindex
pattern pattern:lenpattern
print
Done."
pts increase epochs and see the difference in generated sentences.
pts Try some other methods to improve the performance of the program. eg adding layers, dropout, etc Explain the results.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
