Я новичок в глубоком обучении и 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)
Но у этой штуки также не хватает памяти во время тренировки . Может ли кто-нибудь подсказать, как мне сделать лучшую архитектуру с меньшим весом или мне нужна лучшая система?