pse*_*vin 2 c++ gpu tensorflow
我想像这里描述的那样为 python设置GPU memory fraction和allow growth选项,但是在 C++ 中。这是这样做的正确方法吗?我特别不确定这条线(在这种情况下,“已分配”是什么意思,尚未分配任何内容)。set_allocated_gpu_options
tensorflow::Session *session = nullptr;
tensorflow::SessionOptions sessionOptions;
tensorflow::GPUOptions gpuOptions;
gpuOptions.set_per_process_gpu_memory_fraction(0.2);
gpuOptions.set_allow_growth(true);
sessionOptions.config.set_allocated_gpu_options(&gpuOptions);
tensorflow::Status status = tensorflow::NewSession(sessionOptions, &session);
Run Code Online (Sandbox Code Playgroud)
我必须做完全相同的事情,这就是我在项目中的做法:
auto options = tensorflow::SessionOptions();
options.config.mutable_gpu_options()->set_per_process_gpu_memory_fraction(0.2);
options.config.mutable_gpu_options()->set_allow_growth(true);
tensorflow::Status status = tensorflow::NewSession(options, &session);
Run Code Online (Sandbox Code Playgroud)
该_allocated部分set具有protobuf的内存管理的事情。如果您set选择,它会期望一个动态分配的对象,并且它将拥有它的所有权(并在适当的时候删除它)。您的代码将无法工作,因为您将地址传递给局部变量,当您退出代码块时,该变量将被销毁。
相反,如果您访问GpuOptionsvia的现有实例,mutable_gpu_options()您将获得一个指向对象的指针,您可以使用该指针直接编辑该实例(即,无需分配您自己的实例)
| 归档时间: |
|
| 查看次数: |
1597 次 |
| 最近记录: |