Je pense que l'estimation la plus réaliste serait de faire tourner le modèle et de voir combien de ressources il prend. top
ou htop
vous montrera la charge CPU et RAM, mais en ce qui concerne la mémoire GPU, c'est un peu plus compliqué, car TensorFlow (l'option la plus populaire pour le backend Keras) réserve toute la mémoire disponible pour des raisons de performance.
Vous devez dire à TensorFlow de ne pas prendre toute la mémoire disponible mais de l'allouer selon les besoins. Voici comment réaliser cela en Keras :
import tensorflow as tf
import keras.backend as K
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction=0.2 # Allouer initialement seulement 20% de la mémoire
config.gpu_options.allow_growth = True # faire croître dynamiquement la mémoire utilisée sur le GPU
config.log_device_placement = True # pour enregistrer le placement du dispositif (sur lequel l'opération s'est exécutée)
# (rien n'est imprimé dans Jupyter, seulement si vous l'exécutez seul)
sess = tf.Session(config=config)
K.set_session(sess) # définir cette session TensorFlow comme la session par défaut pour Keras
https://github.com/keras-team/keras/issues/4161#issuecomment-366031228
Ensuite, exécutez watch nvidia-smi
et voyez combien de mémoire sera utilisée.