平台linux,tensorflow版本1.15,gpu内存观察工具nvidim-smi
问题:加载一个yolo2模型使用的gpu内存:在python中只有100M,在java中有10G以上。
解决:创建会话时,配置GPU内存相关选项
import org.tensorflow.*; import org.tensorflow.proto.framework.ConfigProto; import org.tensorflow.proto.framework.GPUOptions;
ConfigProto configProto = ConfigProto.getDefaultInstance(); GPUOptions gpuOptions = configProto.getGpuOptions(); System.out.println("here is build session"); final byte[] config = configProto.toBuilder().setGpuOptions( gpuOptions.toBuilder().setAllowGrowth(true) .setPerProcessGpuMemoryFraction(0.1).build() ).build().toByteArray();
new Session(g,config)
解释:AllowGrowth:内存是否自适用
PerProcessGpuMemoryFraction:内存最大占用百分比
注意:配置项必须在创建会话时指定