在 Tensorflow 对象检测中定义 GPU 选项 API
Defining GPU options within Tensorflow Object Detection API
我能够在具有 4x 1080Ti 的本地机器上进行训练,正如其他人所说,TF 占用了我机器上的所有可用内存。在四处寻找之后,大多数搜索让我找到了基本 TF 而不是对象检测的解决方案 API,例如:
如何在对象检测中访问这些选项 API?我怎样才能在 OD API 内对训练进行类似 TF 风格的控制? OD API / slim API?
有没有合适的方法
我尝试向 training.proto 添加 GPUOptions 消息,但这似乎没有什么不同。
我 运行 遇到了类似的问题,并将此属性添加到 trainer.py 中的会话配置中,从而减少了视频内存的使用量:
session_config.gpu_options.per_process_gpu_memory_fraction = 0.6
使用
确认效果
watch nvidia-smi
我还想添加第二个选项,用于指示 tensorflow 使用一部分可用内存。根据此 guide 有 2 个选项:
gpu_options.per_process_gpu_memory_fraction = 0.xxx
gpu_options.allow_growth
对于第一个(正如之前在答案中提到的),定义了整个可用 GPU 内存的百分比,而对于第二个,您指示 tensorflow 仅使用必要的内存。
根据文档,如果我们事先知道必要的内存要求,第一个应该更好,因为它允许
... more efficiently use the relatively precious GPU memory resources on the devices by reducing memory fragmentation.
另一方面,如果我们事先不知道 GPU 内存要求,我宁愿选择第二种,即使性能稍有牺牲。
至于在tensorflow最近的API变化中的实际使用我是这样插入的:
session_config = tf.ConfigProto()
session_config.gpu_options.allow_growth = True
# or use
# session_config.gpu_options.per_process_gpu_memory_fraction = 0.xxx
tf.logging.set_verbosity(tf.logging.INFO)
config = tf.estimator.RunConfig(model_dir=FLAGS.model_dir, session_config=session_config)
在 main()
在 model_main.py
.
在 tensorflow 1.12.0 上测试。
我能够在具有 4x 1080Ti 的本地机器上进行训练,正如其他人所说,TF 占用了我机器上的所有可用内存。在四处寻找之后,大多数搜索让我找到了基本 TF 而不是对象检测的解决方案 API,例如:
如何在对象检测中访问这些选项 API?我怎样才能在 OD API 内对训练进行类似 TF 风格的控制? OD API / slim API?
有没有合适的方法我尝试向 training.proto 添加 GPUOptions 消息,但这似乎没有什么不同。
我 运行 遇到了类似的问题,并将此属性添加到 trainer.py 中的会话配置中,从而减少了视频内存的使用量:
session_config.gpu_options.per_process_gpu_memory_fraction = 0.6
使用
确认效果watch nvidia-smi
我还想添加第二个选项,用于指示 tensorflow 使用一部分可用内存。根据此 guide 有 2 个选项:
gpu_options.per_process_gpu_memory_fraction = 0.xxx
gpu_options.allow_growth
对于第一个(正如之前在答案中提到的),定义了整个可用 GPU 内存的百分比,而对于第二个,您指示 tensorflow 仅使用必要的内存。
根据文档,如果我们事先知道必要的内存要求,第一个应该更好,因为它允许
... more efficiently use the relatively precious GPU memory resources on the devices by reducing memory fragmentation.
另一方面,如果我们事先不知道 GPU 内存要求,我宁愿选择第二种,即使性能稍有牺牲。
至于在tensorflow最近的API变化中的实际使用我是这样插入的:
session_config = tf.ConfigProto()
session_config.gpu_options.allow_growth = True
# or use
# session_config.gpu_options.per_process_gpu_memory_fraction = 0.xxx
tf.logging.set_verbosity(tf.logging.INFO)
config = tf.estimator.RunConfig(model_dir=FLAGS.model_dir, session_config=session_config)
在 main()
在 model_main.py
.
在 tensorflow 1.12.0 上测试。