удалить предупреждения из модели keras

#python #tensorflow #keras

#python #tensorflow #keras

Вопрос:

Я получаю предупреждения при построении моей модели — я не думаю, что сначала это было правдой; возможно, все изменилось:

Модель:

 # Initialise Sequential model
regressor = Sequential()

# units is the output dimensionality
# return sequences will return the sequence
# which will be required to the next LSTM 

# as a great big rule-o-thumb, layers should be less than 10, and perhaps 1 per endog plus 1 for all exog
# also see: https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw/1097#1097

alphaNh = len(columns) if len(columns) < 10 else 10 # 2-10, with 2 or 5 being common
sample_frames = n
nh = int(sample_frames/alphaNh*dim)

dropout = 0.2

print('nh', nh)  

# input shape will need only the last 2 dimensions
# of your input
################# 1st layer #######################
regressor.add(LSTM(units=nh, return_sequences=True, 
                   input_shape=(timesteps, dim)))

# add Dropout to do regulariztion
# standard practise to use 20%
# regressor.add(Dropout(dropout))

layers = (len(endog)   1) if len(endog) > 1 else 2
print('layers', layers)
for i in range(1, layers):
  # After the first time, it's not required to 
  # specify the input_shape
  ################# layer #######################
#  if i > 5:
#      break
  if i < layers - 1:
    cell = LSTM(units=nh, return_sequences=True)
  else:
    cell = LSTM(units=nh)

  regressor.add(cell)

################# Dropout layer #################
# After training layers we use some dropout.
# another option is to put this after each dim 
# layer (above)
#
# standard practise to use 20%

regressor.add(Dropout(dropout))

################# Last layer ####################
# Last layer would be the fully connected layer,
# or the Dense layer
#
# The last word will predict a single number
# hence units=1

regressor.add(Dense(units=dim))

# Compiling the RNN
# The loss function for classification problem is 
# cross entropy, since this is a regression problem
# the loss function will be mean squared error

regressor.compile(optimizer='adam', loss='mean_squared_error')

### src: https://keras.io/callbacks/
#saves the model weights after each epoch if the validation loss decreased
###
checkpointer = ModelCheckpoint(filepath='weights.hdf5', verbose=1, monitor='loss', mode='min', save_best_only=True)
  

предупреждения:

 nh 1400
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
layers 3
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.
Instructions for updating:
Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.
  

Как я могу модернизировать это (избавившись от предупреждений)?

Комментарии:

1. Вы можете попробовать это : tf.logging.set_verbosity(tf.logging.ERROR)

2. @ShubhamPanchal не хотели бы вы представить это в качестве ответа? в противном случае я могу просто удалить вопрос

3. Что означают эти предупреждения? Я имею в виду, должен ли я беспокоиться о том, что делаю что-то не так?

4. уведомление об устаревании означает, что оно работает, но вскоре будет удалено. поэтому, если вы поддерживаете этот код, вам следует заменить его. но для одноразового расследования это нормально.

5. Эти предупреждения касаются того, как Keras использует TensorFlow. Люди, которые обслуживают Keras, — это те, кто может их починить.

Ответ №1:

В TensorFlow 2 это

 tf.get_logger().setLevel('ERROR')
  

Ответ №2:

Предупреждения в TensorFlow могут управляться tf.logging модулем. Чтобы отключить предупреждения, вы можете использовать,

 tf.logging.set_verbosity(tf.logging.ERROR)