質問: U-netによるセグメンテーションモデルを作成しているのですが、 バッチサイズが2より上にすると表題のエラーがでるようです。 画像サイズは256×256の画像が、200枚ずつ(教師データ200、元画像データ200) Epochはとりあえず100 バッチサイズは2より上だと以下エラー。 バッチサイズを最低でも32くらいにならないのかなーって甘い期待をしてますが。 Quadroくらいだとこんなものなのでしょうか? ソースをすべて載せないと、、、の場合は、載せますが、 載せていいものなのか、結構長くなりますので。 よろしくお願いいたします。 環境 Anaconda:Python3.6.10 GPU:QuadroK2200 tensorflow:2.1.0 keras:tensorflow内蔵 Cuda:10.1 CuDnn:7.6 --- ResourceExhaustedError: OOM when allocating tensor with shape[4,256,256,128] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc [[node model_2/up_sampling2d_3/resize/ResizeNearestNeighbor (defined at :8) ]] 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. [Op:__inference_distributed_function_58987] Function call stack: distributed_function --- from tensorflow.python.client import device_lib device_lib.list_local_devices()を作動させると以下のが表示されます。 [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 17687439948306646629, name: "/device:GPU:0" device_type: "GPU" memory_limit: 4020043776 locality { bus_id: 1 links { } } incarnation: 17285787839147137086 physical_device_desc: "device: 0, name: Quadro P2200, pci bus id: 0000:21:00.0, compute capability: 6.1"]
回答: 4G だとメモリ不足ですね 入力サイズを (256, 256) より小さくすれば、メモリ使用量は減らせるとは思いますが、あまり小さいと精度に影響が出るかもしれません。 MNIST レベルなら 4G でも学習できますが、入力サイズがある程度大きい場合、4G で学習となると厳しいと思います。 メモリは最低 8G (RTX2070 以上の GPU) はほしいところですが、GPU を用意するのが難しいようであれば、無料で GPU が使える Web サービスである Google Colab を使うといいかもしれません。