\ Я пытаюсь обучить несколько моделей Keras параллельно, используя Apache Spark и Elephas. Вот код для того, что я пытаюсь сделать:
train_data = pd.read_csv("csv_files/stats.csv")
timesteps = 30
model_1, rdd1 = train_LSTM_model(spark_context = sc, dataframe= train_data, column_number=1 ,timesteps = 30)
model_2, rdd2 = train_LSTM_model(spark_context = sc, dataframe = train_data, column_number=2,timesteps = 30)
model_3, rdd3 = train_LSTM_model(spark_context = sc, dataframe = train_data, column_number=3,timesteps = 30)
model_4, rdd4 = train_LSTM_model(spark_context = sc, dataframe = train_data, column_number=4,timesteps = 30)
model_5, rdd5 = train_LSTM_model(spark_context = sc, dataframe = train_data, column_number=5,timesteps = 30)
model_6, rdd6 = train_LSTM_model(spark_context = sc, dataframe = train_data, column_number=6,timesteps = 30)
# Fitting model to RDD
spark_model_1 = fit_to_spark_model(keras_model=model_no_programs_run, rdd = rdd1)
spark_model_2 = fit_to_spark_model(keras_model=model_duration_time, rdd = rdd2)
spark_model_3 = fit_to_spark_model(keras_model=model_avg_duration_time, rdd = rdd3)
spark_model_4 = fit_to_spark_model(keras_model=model_no_processed_records, rdd = rdd4)
spark_model_5 = fit_to_spark_model(keras_model=model_status_states, rdd = rdd5)
spark_model_6 = fit_to_spark_model(keras_model=model_failure_within_period, rdd = rdd6)
# HOW TO RUN THE SCRIPT
#spark-submit --driver-memory 1G ./stats_app.py
Много кода абстрагировано, но в основном функция train_LSTM_model()
возвращает скомпилированную модель Keras вместе с RDD. Rdd_1, rdd_2, rdd_ # и т. Д. Принадлежат: rdd = to_simple_rdd(spark_context, X_train, y_train)
внутри функции. X_train и y_train были извлечены из переданного в кадре данных в каждую train_LSTM_model()
функцию.
Кроме того, вот что делает функция fit_to_spark_model()
:
def fit_to_spark_model(keras_model, rdd):
spark_model = SparkModel(keras_model, frequency='epoch', mode='asynchronous')
spark_model.fit(rdd, epochs=20, batch_size=32, verbose=0, validation_split=0.25)
return spark_model
Делает ли этосмысл одновременно тренировать несколько моделей Keras на узлах Spark Worker? Или мне придется использовать другой подход? Не уверен, что мне нужен только один RDD или несколько, как я сейчас делаю. Спасибо за тонну.