【解決策】Hint:If you want to see a list of allocated tensors when OOM happen


今日、スタイル移行ニューラルネットワークを実行すると、次の問題が発生します.
ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[1,64,1669,1200] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
	 [[Node: Conv2D_10 = Conv2D[T=DT_FLOAT, data_format="NCHW", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](Conv2D_10-0-TransposeNHWCToNCHW-LayoutOptimizer, encoder/conv1_2/kernel/read)]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

	 [[Node: clip_by_value/_77 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_487_clip_by_value", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

インターネットで調べたら、GPUがいっぱいだと言って、Batchを小さくすることができます.sizeが解決しますが、私のbatch_sizeはもともと8しかないので、4に下げてもだめです.
そこで他のブロガーの提案に基づいてGPUを指定した後:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "2"#     GPU

解決しましたが、グラフィックスカードがあまり大きくないため、動作が非常に遅いです.
参照先:
  • 参考ブログ1
  • 深さ学習ノート:windows+tensorflow指定GPU占有メモリ(gpu爆発問題解決)