简体   繁体   中英

Tensorflow `model.fit()` printout

When fitting a model, rather than the normal log of the Epochs where the scores / ETA override, it's printing them all.

model = models.Sequential()

model.add(layers.Embedding(num_words, embedding_size))
model.add(layers.Bidirectional(layers.GRU(64, return_sequences=True)))
model.add(layers.Bidirectional(layers.GRU(64)))
model.add(layers.Dropout(0.2))
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dropout(0.2))
model.add(layers.Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=metrics)
model.fit(X_train, y_train, epochs=10, batch_size=64, validation_data=(X_val, y_val))

prints:

195/317 [=================>............] - ETA: 23s - loss: 0.5989 - accuracy: 0.0000e+00 - precision: 0.6656 - recall: 0.49 - ETA: 22s - loss: 0.5992 - accuracy: 0.0000e+00 - precision: 0.6652 - recall: 0.49 - ETA: 22s - loss: 0.5987 - accuracy: 0.0000e+00 - precision: 0.6659 - recall: 0.49 - ETA: 22s - loss: 0.5974 - accuracy: 0.0000e+00 - precision: 0.6673 - recall: 0.49 - ETA: 22s - loss: 0.5964 - accuracy: 0.0000e+00 - precision: 0.6671 - recall: 0.49 - ETA: 22s - loss: 0.5969 - accuracy: 0.0000e+00 - precision: 0.6680 - recall: 0.49 - ETA: 22s - loss: 0.5967 - accuracy: 0.0000e+00 - precision: 0.6677 - recall: 0.49 - ETA: 22s - loss: 0.5968 - accuracy: 0.0000e+00 - precision: 0.6678 - recall: 0.50 - ETA: 22s - loss: 0.5954 - accuracy: 0.0000e+00 - precision: 0.6678 - recall: 0.50 - ETA: 22s - loss: 0.5952 - accuracy: 0.0000e+00 - precision: 0.6681 - recall: 0.50 - ETA: 22s - loss: 0.5943 - accuracy: 0.0000e+00 - precision: 0.6689 - recall: 0.50 - ETA: 21s - loss: 0.5941 - accurac y: 0.0000e+00 - precision: 0.6678 - recall: 0.50 - ETA: 21s - loss: 0.5931 - accuracy: 0.0000e+00 - precision: 0.6681 - recall: 0.50 - ETA: 21s - loss: 0.5931 - accuracy: 0.0000e+00 - precision: 0.6678 - recall: 0.51 - ETA: 21s - loss: 0.5927 - accuracy: 0.0000e+00 - precision: 0.6675 - recall: 0.51 - ETA: 21s - loss: 0.5922 - accuracy: 0.0000e+00 - precision: 0.6675 - recall: 0.51 - ETA: 21s - loss: 0.5926 - accuracy: 0.0000e+00 - precision: 0.6673 - recall: 0.51 - ETA: 21s - loss: 0.5915 - accuracy: 0.0000e+00 - precision: 0.6695 - recall: 0.51 - ETA: 21s - loss: 0.5915 - accuracy: 0.0000e+00 - precision: 0.6681 - recall: 0.51 - ETA: 21s - loss: 0.5914 - accuracy: 0.0000e+00 - precision: 0.6680 - recall: 0.51 - ETA: 21s - loss: 0.5907 - accuracy: 0.0000e+00 - precision: 0.6683 - recall: 0.51 - ETA: 21s - loss: 0.5905 - accuracy: 0.0000e+00 - precision: 0.6687 - recall: 0.52 - ETA: 20s - loss: 0.5895 - accuracy: 0.0000e+00 - precision: 0.6697 - recall: 0.52 - ETA: 20s - loss: 0.5882 - accuracy: 0.0000e+00 - precision: 0.6710 - recall: 0.52 - ETA: 20s - loss: 0.5872 - accuracy: 0.0000e+00 - precision: 0.6707 - recall: 0.52 - ETA: 20s - loss: 0.5864 - accuracy: 0.0000e+00 - precision: 0.6706 - recall: 0.52 - ETA: 20s - loss: 0.5857 - accuracy: 0.0000e+00 - precision: 0.6709 - recall: 0.52 - ETA: 20s - loss: 0.5842 - accuracy: 0.0000e+00 - precision: 0.6717 - recall: 0.52 - ETA: 20s - loss: 0.5828 - accuracy: 0.0000e+00 - precision: 0.6723 - recall: 0.52 - ETA: 20s - loss: 0.5812 - accuracy: 0.0000e+00 - precision: 0.6733 - recall: 0.53 - ETA: 20s - loss: 0.5818 - accuracy: 0.0000e+00 - precision: 0.6744 - recall: 0.52 - ETA: 20s - loss: 0.5818 - accuracy: 0.0000e+00 - precision: 0.6755 - recall: 0.52 - ETA: 19s - loss: 0.5807 - accuracy: 0.0000e+00 - precision: 0.6763 - recall: 0.53 - ETA: 19s - loss: 0.5810 - accuracy: 0.0000e+00 - precision: 0.6774 - recall: 0.52 - ETA: 19s - loss: 0.5793 - accuracy: 0.0000e+00 - precision: 0.6782 - recall: 0.53 - ETA: 19s - loss: 0.5791 - accuracy: 0.0000e+00 - precision: 0.6794 - recall: 0.53 - ETA: 19s - loss: 0.5786 - accuracy: 0.0000e+00 - precis( . . . )

...and on and on...

Tensorflow version: 2.3.1

Any ideas? I can't find anything on this anywhere.

model.fit() show real result on in jupyter notebook. such result are show if you use IDLE pyhton.

try using verbose either 0 or 2,

  • 0 = no results
  • 1 = results after each batch
  • 2 = results after each epoch

model.fit(X_train, y_train, epochs=10, batch_size=64, validation_data=(X_val, y_val),verbose=0)

or

model.fit(X_train, y_train, epochs=10, batch_size=64, validation_data=(X_val, y_val),verbose=2)

I think this is caused by the metric that you chose in: model.compile(loss='binary_crossentropy',optimizer='adam',metrics=metrics)

This should solve the problem: model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])

You can ofcourse fill in the metrics that you are interested in.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM