ResourceExhaustedError: OOM при выделении тензора с формой [55296,13824] - PullRequest
2 голосов
/ 06 августа 2020

Я новичок в глубоком обучении и stackoverflow.

Я пытаюсь сделать простой кодировщик-декодер для моего изображения, которое довольно велико (192 * 288). Вот моя попытка:

input_img = Input(shape=(55296,))

encoded = Dense(units=13824, activation='relu')(input_img)
decoded = Dense(units=55296, activation='relu')(encoded)

Но не знаю, почему я всегда получаю эту ошибку:

ResourceExhaustedError: OOM when allocating tensor with shape[55296,13824] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc [Op:Add]

Я знаю, что это из-за того, что размер моего тензора больше для моего графического процессора . Но это не сработает для такой простой архитектуры? Я использую Google Colab для этого, и когда я перехожу на TPU с графического процессора, он работает, но позже, когда я попытаюсь подогнать модель, там также закончится память. Пожалуйста, помогите мне с этим.

Изменить:

Я попытался использовать CNN, и вот архитектура:

input_img = Input(shape=(192, 288, 1))

encode1 = Conv2D(64, (3, 3), activation='relu', padding='same')(input_img) 
encode2 = MaxPooling2D((2, 2), padding='same')(encode1)
encode3 = Conv2D(32, (3, 3), activation='relu', padding='same')(encode2)
encode4 = MaxPooling2D((2, 2), padding='same')(encode3)
encode5 = Conv2D(64, (3, 3), activation='relu', padding='same')(encode4) 
l = Flatten()(encode5)
l = Dense(3456, activation='relu')(l)
l = Dense(100, activation='relu')(l)

#DECODER
d = Dense(3456, activation='relu')(l)
d = Reshape((48,72,1))(d)
decode1 = Conv2D(32, (3, 3), activation='relu', padding='same')(d) 
decode2 = UpSampling2D((2, 2))(decode1)
decode3 = Conv2D(32, (3, 3), activation='relu', padding='same')(decode2) 
decode4 = UpSampling2D((2, 2))(decode3)
decode5 = Conv2D(64, (3, 3), activation='relu', padding='same')(decode4) 

model = models.Model(input_img, decode5)

Но у этой штуки также не хватает памяти во время тренировки . Может ли кто-нибудь подсказать, как мне сделать лучшую архитектуру с меньшим весом или мне нужна лучшая система?

...