Я хочу получить вывод для 2D-изображения размером 3584x2796 на 2 Гб GPU с использованием Keras. Является ли это возможным? сетевая архитектура Unet.
Ошибка нехватки памяти постоянно возникает при выводе. Даже свертка, только для первого слоя не удалась. Кажется, Keras не оптимизирован для больших сверток изображений. Даже приведенная ниже сеть дает сбой во время вывода на GPU 2 Гб.
Layer (type) Output Shape Param #
=================================================================
input_3 (InputLayer) (None, 3584, 2796, 1) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 3584, 2796, 32) 80
_________________________________________________________________
conv2d_5 (Conv2D) (None, 3584, 2796, 32) 584
_________________________________________________________________
instance_normalization_3 (In (None, 3584, 2796, 32) 2
_________________________________________________________________
activation_3 (Activation) (None, 3584, 2796, 32) 0
=================================================================
Total params: 666
Trainable params: 666
Non-trainable params: 0
Я получаю ошибку ниже:
OOM when allocating tensor with shape[1,32,3584,2796] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
[[{{node conv2d_2/convolution}} = Conv2D[T=DT_FLOAT, data_format="NCHW", dilations=[1, 1, 1, 1], padding="SAME", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](conv2d_2/convolution-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d_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 activation_2/Relu/_11}} = _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_47_activation_2/Relu", 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.