comparing lstm with non lstm model keras2019 Community Moderator Electionkeras understanding Word Embedding LayerUnderstanding Keras LSTMsNeural Network loss drastically jumps during trainingUsing Keras to structure LSTM modelloss, val_loss, acc and val_acc do not update at all over epochsPython - RNN LSTM model low accuracyValueError in Keras: How could I get the model fitted?loading weights keras LSTM not workingDimensionality Error when using Bidirectional LSTM with an embedding layer, on multi-label classificationKeras LSTM model data reshappingKeras - LSTM on embedding - dense layers
The three point beverage
Why doesn't the EU now just force the UK to choose between referendum and no-deal?
Question about partial fractions with irreducible quadratic factors
Playing ONE triplet (not three)
Unreachable code, but reachable with exception
How to deal with a cynical class?
Is it ok to include an epilogue dedicated to colleagues who passed away in the end of the manuscript?
US to Europe trip with Canada layover- is 52 minutes enough?
Ban on all campaign finance?
Am I not good enough for you?
"One can do his homework in the library"
Why would a jet engine that runs at temps excess of 2000°C burn when it crashes?
Can infringement of a trademark be pursued for using a company's name in a sentence?
Can someone explain this Mudra being done by Ramakrishna Paramhansa in Samadhi?
Why do Australian milk farmers need to protest supermarkets' milk price?
Good allowance savings plan?
Is all copper pipe pretty much the same?
Excess Zinc in garden soil
What wound would be of little consequence to a biped but terrible for a quadruped?
What is the dot in “1.2.4."
Do I need to leave some extra space available on the disk which my database log files reside, for log backup operations to successfully occur?
Is having access to past exams cheating and, if yes, could it be proven just by a good grade?
Why must traveling waves have the same amplitude to form a standing wave?
Should we release the security issues we found in our product as CVE or we can just update those on weekly release notes?
comparing lstm with non lstm model keras
2019 Community Moderator Electionkeras understanding Word Embedding LayerUnderstanding Keras LSTMsNeural Network loss drastically jumps during trainingUsing Keras to structure LSTM modelloss, val_loss, acc and val_acc do not update at all over epochsPython - RNN LSTM model low accuracyValueError in Keras: How could I get the model fitted?loading weights keras LSTM not workingDimensionality Error when using Bidirectional LSTM with an embedding layer, on multi-label classificationKeras LSTM model data reshappingKeras - LSTM on embedding - dense layers
My questions comes from the post.
I took code from above link and created model2
that includes lstm layer. I compared performance of model2
with model
and i am seeing improvements even in case of the toy data in the link. I compared print(y_prob)
vs print(y_prob_lstm)
is performance improvement due to LSTM layer? or is there any other reason?
from numpy import array
from keras.preprocessing.text import one_hot
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.layers.embeddings import Embedding
# define documents
docs = ['Well done!',
'Good work',
'Great effort',
'nice work',
'Excellent!',
'Weak',
'Poor effort!',
'not good',
'poor work',
'Could have done better.']
# define class labels
labels = array([1,1,1,1,1,0,0,0,0,0])
from keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
#this creates the dictionary
#IMPORTANT: MUST HAVE ALL DATA - including Test data
#IMPORTANT2: This method should be called only once!!!
tokenizer.fit_on_texts(docs)
#this transforms the texts in to sequences of indices
encoded_docs2 = tokenizer.texts_to_sequences(docs)
encoded_docs2
max_length = 4
padded_docs2 = pad_sequences(encoded_docs2, maxlen=max_length, padding='post')
max_index = array(padded_docs2).reshape((-1,)).max()
from keras.layers import LSTM
# define the model
model = Sequential()
model.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
#model.add(LSTM(8, return_sequences=True))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
# compile the model
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model.summary())
# fit the model
model.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes =model.predict_classes(padded_docs2)
y_prob = model.predict_proba(padded_docs2)
model2 = Sequential()
model2.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
model2.add(LSTM(8, return_sequences=True))
model2.add(Flatten())
model2.add(Dense(1, activation='sigmoid'))
# compile the model
model2.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model2.summary())
# fit the model
model2.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model2.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes_lstm =model2.predict_classes(padded_docs2)
y_prob_lstm = model2.predict_proba(padded_docs2)
embeddings = model.layers[0].get_weights()[0]
embeding_for_word_7 = embeddings[14]
index = tokenizer.texts_to_sequences([['well']])[0][0]
tokenizer.document_count
type(tokenizer.word_index)
#is this lstm effect or is it overfitting?
keras nlp lstm
add a comment |
My questions comes from the post.
I took code from above link and created model2
that includes lstm layer. I compared performance of model2
with model
and i am seeing improvements even in case of the toy data in the link. I compared print(y_prob)
vs print(y_prob_lstm)
is performance improvement due to LSTM layer? or is there any other reason?
from numpy import array
from keras.preprocessing.text import one_hot
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.layers.embeddings import Embedding
# define documents
docs = ['Well done!',
'Good work',
'Great effort',
'nice work',
'Excellent!',
'Weak',
'Poor effort!',
'not good',
'poor work',
'Could have done better.']
# define class labels
labels = array([1,1,1,1,1,0,0,0,0,0])
from keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
#this creates the dictionary
#IMPORTANT: MUST HAVE ALL DATA - including Test data
#IMPORTANT2: This method should be called only once!!!
tokenizer.fit_on_texts(docs)
#this transforms the texts in to sequences of indices
encoded_docs2 = tokenizer.texts_to_sequences(docs)
encoded_docs2
max_length = 4
padded_docs2 = pad_sequences(encoded_docs2, maxlen=max_length, padding='post')
max_index = array(padded_docs2).reshape((-1,)).max()
from keras.layers import LSTM
# define the model
model = Sequential()
model.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
#model.add(LSTM(8, return_sequences=True))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
# compile the model
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model.summary())
# fit the model
model.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes =model.predict_classes(padded_docs2)
y_prob = model.predict_proba(padded_docs2)
model2 = Sequential()
model2.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
model2.add(LSTM(8, return_sequences=True))
model2.add(Flatten())
model2.add(Dense(1, activation='sigmoid'))
# compile the model
model2.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model2.summary())
# fit the model
model2.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model2.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes_lstm =model2.predict_classes(padded_docs2)
y_prob_lstm = model2.predict_proba(padded_docs2)
embeddings = model.layers[0].get_weights()[0]
embeding_for_word_7 = embeddings[14]
index = tokenizer.texts_to_sequences([['well']])[0][0]
tokenizer.document_count
type(tokenizer.word_index)
#is this lstm effect or is it overfitting?
keras nlp lstm
add a comment |
My questions comes from the post.
I took code from above link and created model2
that includes lstm layer. I compared performance of model2
with model
and i am seeing improvements even in case of the toy data in the link. I compared print(y_prob)
vs print(y_prob_lstm)
is performance improvement due to LSTM layer? or is there any other reason?
from numpy import array
from keras.preprocessing.text import one_hot
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.layers.embeddings import Embedding
# define documents
docs = ['Well done!',
'Good work',
'Great effort',
'nice work',
'Excellent!',
'Weak',
'Poor effort!',
'not good',
'poor work',
'Could have done better.']
# define class labels
labels = array([1,1,1,1,1,0,0,0,0,0])
from keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
#this creates the dictionary
#IMPORTANT: MUST HAVE ALL DATA - including Test data
#IMPORTANT2: This method should be called only once!!!
tokenizer.fit_on_texts(docs)
#this transforms the texts in to sequences of indices
encoded_docs2 = tokenizer.texts_to_sequences(docs)
encoded_docs2
max_length = 4
padded_docs2 = pad_sequences(encoded_docs2, maxlen=max_length, padding='post')
max_index = array(padded_docs2).reshape((-1,)).max()
from keras.layers import LSTM
# define the model
model = Sequential()
model.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
#model.add(LSTM(8, return_sequences=True))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
# compile the model
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model.summary())
# fit the model
model.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes =model.predict_classes(padded_docs2)
y_prob = model.predict_proba(padded_docs2)
model2 = Sequential()
model2.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
model2.add(LSTM(8, return_sequences=True))
model2.add(Flatten())
model2.add(Dense(1, activation='sigmoid'))
# compile the model
model2.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model2.summary())
# fit the model
model2.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model2.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes_lstm =model2.predict_classes(padded_docs2)
y_prob_lstm = model2.predict_proba(padded_docs2)
embeddings = model.layers[0].get_weights()[0]
embeding_for_word_7 = embeddings[14]
index = tokenizer.texts_to_sequences([['well']])[0][0]
tokenizer.document_count
type(tokenizer.word_index)
#is this lstm effect or is it overfitting?
keras nlp lstm
My questions comes from the post.
I took code from above link and created model2
that includes lstm layer. I compared performance of model2
with model
and i am seeing improvements even in case of the toy data in the link. I compared print(y_prob)
vs print(y_prob_lstm)
is performance improvement due to LSTM layer? or is there any other reason?
from numpy import array
from keras.preprocessing.text import one_hot
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.layers.embeddings import Embedding
# define documents
docs = ['Well done!',
'Good work',
'Great effort',
'nice work',
'Excellent!',
'Weak',
'Poor effort!',
'not good',
'poor work',
'Could have done better.']
# define class labels
labels = array([1,1,1,1,1,0,0,0,0,0])
from keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer()
#this creates the dictionary
#IMPORTANT: MUST HAVE ALL DATA - including Test data
#IMPORTANT2: This method should be called only once!!!
tokenizer.fit_on_texts(docs)
#this transforms the texts in to sequences of indices
encoded_docs2 = tokenizer.texts_to_sequences(docs)
encoded_docs2
max_length = 4
padded_docs2 = pad_sequences(encoded_docs2, maxlen=max_length, padding='post')
max_index = array(padded_docs2).reshape((-1,)).max()
from keras.layers import LSTM
# define the model
model = Sequential()
model.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
#model.add(LSTM(8, return_sequences=True))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
# compile the model
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model.summary())
# fit the model
model.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes =model.predict_classes(padded_docs2)
y_prob = model.predict_proba(padded_docs2)
model2 = Sequential()
model2.add(Embedding(max_index+1, 8, input_length=max_length))# you cannot use just max_index
model2.add(LSTM(8, return_sequences=True))
model2.add(Flatten())
model2.add(Dense(1, activation='sigmoid'))
# compile the model
model2.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
# summarize the model
print(model2.summary())
# fit the model
model2.fit(padded_docs2, labels, epochs=50, verbose=0)
# evaluate the model
loss, accuracy = model2.evaluate(padded_docs2, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))
y_classes_lstm =model2.predict_classes(padded_docs2)
y_prob_lstm = model2.predict_proba(padded_docs2)
embeddings = model.layers[0].get_weights()[0]
embeding_for_word_7 = embeddings[14]
index = tokenizer.texts_to_sequences([['well']])[0][0]
tokenizer.document_count
type(tokenizer.word_index)
#is this lstm effect or is it overfitting?
keras nlp lstm
keras nlp lstm
edited Mar 6 at 17:39
user2543622
asked Mar 6 at 16:43
user2543622user2543622
1,119144082
1,119144082
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55028149%2fcomparing-lstm-with-non-lstm-model-keras%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55028149%2fcomparing-lstm-with-non-lstm-model-keras%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown