Ste*_*ley 4 tensorflow object-detection-api
我能够在具有 4x 1080Ti 的本地机器上进行训练,正如其他人指出的那样,TF 会占用我机器上的所有可用内存。经过一番探索后,大多数搜索都让我找到了基本 TF 的解决方案,而不是对象检测 API,例如:
如何在对象检测 API 中访问这些类型的选项?如何在 OD API 中对训练进行类似 TF 风格的控制?在 OD API / slim API 中是否有正确的方法?
我尝试向该 Training.proto 添加 GPUOptions 消息,但这似乎没有什么区别。
我还想添加第二个选择来指示张量流使用一部分可用内存。根据本指南,有 2 个选项:
gpu_options.per_process_gpu_memory_fraction = 0.xxx
gpu_options.allow_growth
对于第一个(正如之前在答案中提到的),定义要使用的整个可用 GPU 内存的百分比,而对于第二个,您指示张量流仅使用必要的内存。
根据文档,如果我们事先知道必要的内存要求,第一个应该会更好,因为它允许
...通过减少内存碎片,更有效地使用设备上相对宝贵的 GPU 内存资源。
另一方面,如果我们事先不知道 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)
Run Code Online (Sandbox Code Playgroud)
在main()
中model_main.py
.
在张量流 1.12.0 上测试。
归档时间: |
|
查看次数: |
3486 次 |
最近记录: |