Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Tensorflow/Keras性能更好,GPU内存更少?_Performance_Tensorflow_Keras_Gpu - Fatal编程技术网

Performance Tensorflow/Keras性能更好,GPU内存更少?

Performance Tensorflow/Keras性能更好,GPU内存更少?,performance,tensorflow,keras,gpu,Performance,Tensorflow,Keras,Gpu,减少GPU内存分配会提高CNN模型的训练速度。我的预期正好相反——随着内存的分配,速度应该会下降。我怀疑这与在GPU内外传输数据所需的时间有关 我在案例中分配了a)所有GPU内存,b)大约一半(46%)的GPU内存。使用所有GPU内存(无限制)训练速度为153个历元/小时。当分配46%的GPU内存时,训练速度为199个历元/小时 我通过以下方式设置GPU内存: gpu_memory_fraction = 0.46 # Values tested: 0.46 and 1 config =

减少GPU内存分配会提高CNN模型的训练速度。我的预期正好相反——随着内存的分配,速度应该会下降。我怀疑这与在GPU内外传输数据所需的时间有关

我在案例中分配了a)所有GPU内存,b)大约一半(46%)的GPU内存。使用所有GPU内存(无限制)训练速度为153个历元/小时。当分配46%的GPU内存时,训练速度为199个历元/小时

我通过以下方式设置GPU内存:

gpu_memory_fraction = 0.46 # Values tested: 0.46 and 1    
config = tf.compat.v1.ConfigProto()
if gpu_memory_fraction < 1.0:
    config.gpu_options.per_process_gpu_memory_fraction = gpu_memory_fraction
    K.tensorflow_backend.set_session(tf.Session(config=config))
gpu内存分数=0.46#测试值:0.46和1
config=tf.compat.v1.ConfigProto()
如果gpu_内存_分数<1.0:
config.gpu\u options.per\u进程\u gpu\u内存\u分数=gpu\u内存\u分数
K.tensorflow_backend.set_session(tf.session(config=config))
我使用keras
model.fit()
方法进行培训。批量大小=64

环境:

  • python 3.7.5
  • keras 2.2.4
  • tensorflow 1.15.0
  • 康达4.7.12
  • CUDA 10.2
  • Nvidia驱动程序440.44
  • Ubuntu 18.04.3
  • GPU:Nvidia GTX 1080Ti,11GB内存
  • CPU英特尔i9-9900K 3.6 GHz,RAM 64 GB,SSD 120 GB
有人能解释一下吗?

奇怪。。。。我可以“想象”(当然,这是一个完全的猜测),只要你有最小的图形大小,你正在运行的批大小,其余的内存只是没有使用。我不认为传输的数据会增加,但可能批次之间的数据“清理”会增加?奇怪。。。。我可以“想象”(当然,这是一个完全的猜测),只要你有最小的图形大小,你正在运行的批大小,其余的内存只是没有使用。我不认为传输的数据会增加,但批之间的数据“清理”会增加吗?