我有一个Keras模型(.hdf5),我想将其部署在云中进行预测。现在,我想估计一下我需要多少资源(CPU,GPU,RAM等)。
有人对功能/经验法则有建议吗?我找不到任何有用的东西。预先感谢!
答案 0 :(得分:1)
我认为最现实的估计是运行模型,看看它需要多少资源。 top
或htop
会向您显示CPU和RAM的负载,但是在GPU内存的情况下,它会稍微复杂一些,因为TensorFlow(Keras后端最受欢迎的选项)将所有可用内存保留给性能原因。
您必须告诉TensorFlow不要占用所有可用内存,而是按需分配它。 这是在Keras中执行此操作的方法:
import tensorflow as tf
import keras.backend as K
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction=0.2 # Initially allocate only 20% of memory
config.gpu_options.allow_growth = True # dynamically grow the memory used on the GPU
config.log_device_placement = True # to log device placement (on which device the operation ran)
# (nothing gets printed in Jupyter, only if you run it standalone)
sess = tf.Session(config=config)
K.set_session(sess) # set this TensorFlow session as the default session for Keras
https://github.com/keras-team/keras/issues/4161#issuecomment-366031228
然后,运行watch nvidia-smi
,查看将占用多少内存。