Как параллельно тренировать несколько моделей керас? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть 100 различных наборов данных. Я хочу тренировать модель keras 100 раз, и каждый раз использовался один набор данных. Вот мой код

from keras.layers import Input, Dense
from keras.models import Model
from time import time
import numpy as np

time_begin = time()

features = {}
labels = {}
In = {}
dense_1 = {}
dense_1_output = {}
dense_2 = {}
dense_2_output = {}
model = {}

num_model = 100
num_data = 1000
input_dim = 5
for i in range(num_model):
    # generate 100 different datasets, the i-th dataset is features[i], labels[i]
    features[i] = np.random.normal(0, 1, (num_data, input_dim))
    labels[i] = np.sum(features[i], axis=1)

    In[i] = Input((input_dim,), name='input_'+str(i))
    dense_1[i] = Dense(units=20, activation='sigmoid', name='dense_1_'+str(i))
    dense_1_output[i] = dense_1[i](In[i])
    dense_2[i] = Dense(units=1, activation='linear', name='dense_2_'+str(i))
    dense_2_output[i] = dense_2[i](dense_1_output[i])

    # build and train 100 models over 100 different datasets
    model[i] = Model(In[i], dense_2_output[i])
    model[i].compile(optimizer='adam', loss='mean_squared_error')
    model[i].fit(features[i], 
                 labels[i], 
                 batch_size=64, 
                 epochs=5, 
                 verbose=2,
                 validation_split=.2)

print('The code runs {} minutes.'.format((time()-time_begin)/60.0))

Цикл for for i in range(num_model) будет выполняться по порядку. Может ли кто-нибудь научить меня, как это улучшить и обучить их параллельно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...