我正在运行Mask R-CNN代码。 我使用2台电脑。 第一个是单GPU(Geforce RTX 2080 Ti)计算机,第二个是多GPU(Geforce GTX 1080 Ti * 6)计算机。 我想使用每个GPU同时执行7个实验。
但是,问题在于GPU内存使用情况非常不同,因此我无法在短时间内完成实验。 第一台计算机的GPU在11018MiB中使用10934MiB。 第二台计算机的第一个GPU在11171MiB中仅使用772MiB。第二计算机中的其他GPU的作用与第二计算机中的第一GPU的作用相同。 因此,同一实验在第二台计算机上的花费是5倍以上。
我使用完全相同的代码。第一台计算机和第二台计算机只有一个区别。我在第二台计算机上使用了anaconda虚拟环境来安装tensorflow(1.14.0)和Keras(2.1.3)。而且我不在第一台计算机上使用虚拟环境。
我尝试了一些代码:
1。
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
tf.config.experimental.set_memory_growth(gpus[0], True)
except RuntimeError as e:
print(e)
2。
config_yj = tf.ConfigProto()
config_yj.gpu_options.per_process_gpu_memory_fraction = 0.9
session = tf.Session(config=config_yj)
3。
gpu_options = tf.GPUOptions(allow_growth=True)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
keras.backend.tensorflow_backend.set_session(sess)
但是,所有这些都不起作用。
anaconda虚拟环境中是否存在限制选项? 我认为问题部分是虚拟环境,因为唯一的区别在于环境。
我真的很想解决这个问题。 我希望你能帮助我。 这是我第一次问一个关于stackoverflow的问题,因此原谅了话语性。 如果还有其他必填信息,请告诉我。
谢谢。