Keras бросает ResourceExhaustedError при обучении сверточного автокодера. Я использую бэкэнс Tensorflow. На компьютере есть как Nvidia Tesla с 11 Гб памяти, так и Nvidia Quadro с 6 Гб памяти. Кажется, что Tensorflow использует оба графических процессора? Но я не слишком понимаю это. Вот минимальный пример кода, который я использую. В моем примере данные представляют собой массив numpy size = (100,1080,1920,1).Почему Keras бросает ResourceExhaustedError?
from keras.layers import Convolution2D, MaxPooling2D, UpSampling2D, Activation
from keras.models import Sequential
model = Sequential()
model.add(Convolution2D(16, 3, 3, border_mode='same', input_shape=(1080, 1920, 1)))
model.add(Activation('relu'))
model.add(MaxPooling2D((2, 2), border_mode='same'))
model.add(Convolution2D(16, 3, 3, border_mode='same'))
model.add(Activation('relu'))
model.add(UpSampling2D((2, 2)))
model.add(Convolution2D(1, 3, 3, border_mode='same'))
model.add(Activation('relu'))
model.compile(optimizer='adadelta', loss='binary_crossentropy')
model.fit(data, data)
Похоже, что у графических процессоров заканчивается память. В autoencoder имеется 2625 переменных. Так что это не кажется достаточно, чтобы заполнить видео-плейер. Данные массива имеют размер 1600 МБ. Так что также не следует заполнять видео-плейер. Я предполагаю, что проблема имеет какое-то отношение к nb_epoch и batch_size, но я не совсем понимаю, что делают эти параметры. Есть ли способ изменить эти параметры, чтобы исправить мою проблему?
изменения 'Convolution2D' -> 'Conv2D' относятся к: https://stackoverflow.com/a/46032412 –