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










0















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?









share|improve this question




























    0















    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?









    share|improve this question


























      0












      0








      0








      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?









      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 6 at 17:39







      user2543622

















      asked Mar 6 at 16:43









      user2543622user2543622

      1,119144082




      1,119144082






















          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
          );



          );













          draft saved

          draft discarded


















          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















          draft saved

          draft discarded
















































          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          1928 у кіно

          Захаров Федір Захарович

          Ель Греко