У меня есть модель keras с 50 входами (от x1 до x50) и 1 выходом.Я сталкиваюсь с общей проблемой обучения нескольких больших файлов в Keras, которые слишком велики, чтобы поместиться в памяти GPU.
Сначала я пытался:
x1 = np.load('x1_train.npy')
x2 = np.load('x2_train.npy')
x3 = np.load('x3_train.npy')
x4 = np.load('x4_train.npy')
x5 = np.load('x5_train.npy')
x6 = np.load('x6_train.npy')
y_train = pd.read_csv("train_labels.csv")
И затем подгонятьиспользование данных:
model.fit([x1,x2,x3,x4,x5,x6], y_train, validation_data = ([x1_val,x2_val,x3_val,x4_val,x5_val,x6_val],y_validate), epochs = 15, batch_size = 20, verbose = 2)
Но доступной оперативной памяти было недостаточно для размещения данных и, следовательно, сбоя.
Сейчас я делаю:
def generate_batches(batch_size):
while True:
x1 = np.load('x1_train.npy')
x2 = np.load('x2_train.npy')
x3 = np.load('x3_train.npy')
x4 = np.load('x4_train.npy')
x5 = np.load('x5_train.npy')
x6 = np.load('x6_train.npy')
y_train = pd.read_csv("train_labels.csv")
for cbatch in range(0, x1.shape[0], batch_size):
i = cbatch + batch_size
yield ([x1[cbatch:i,:,:],x2[cbatch:i,:,:],x3[cbatch:i,:,:],x4[cbatch:i,:,:],x5[cbatch:i,:,:],x6[cbatch:i,:,:]], y_train[cbatch:i])
Я планируюиспользовать fit_generator
для подгонки модели, но приведенный выше код все еще дает сбой.
x1
, x2
... x50
все имеют форму (77156, 30, 50, 1)