tensorflow(1050Ti 4G)预处理图片数据(共221M),包括转换类型(dtype)、形状(shape)等,运行一半时报错。
错误信息:E tensorflow/stream_executor/cuda/cuda_driver.cc:924] failed to alloc 17179869184 bytes on host: CUDA_ERROR_OUT_OF_MEMORY
网上说法:这是在没有设置任何GPU配置参数情况下报错的,原因是TensorFlow默认使用所有GPU资源,但是GPU内存占用快满时,系统会拒绝分配,所以TensorFlow抛出CUDA_ERROR_OUT_OF_MEMORY,要设置config.gpu_options.per_process_gpu_memory_fraction=0.8。然而照着他们的办法还是没解决。
实际上,我这里的原因是,我没有用TFrecord格式,而是直接把图片数据读取到内存进行处理,以至于图片数据总量大于已有gpu的内存大小,所以报错。
解决办法:把图片先转换成TFrecord格式再进行下一步处理。
网友评论