Мне нужно реализовать федеративное обучение. Итак, я обучил список из 5 моделей и обучил каждую модель на разных наборах данных. Теперь мне нужно объединить обученные модели в список, но я понятия не имею, как это сделать. После этого мне придется использовать комбинированную модель для прогнозирования на тестовом наборе.
class MulticlassClassification:
def __init__(self, input_dims, layers, num_classes):
self.model = Sequential(name="server_model")
self.model.add(Dense(
layers[0],
input_shape=(input_dims,),
activation='relu'
))
for l in layers[1:]:
self.model.add(Dense(l, activation='relu'))
self.model.add(Dense(num_classes, activation='softmax'))
self.model.compile(
loss='sparse_categorical_crossentropy',
optimizer='adam',
metrics=['accuracy']
)
self.model.summary()
def set_avg_weights(self, models):
all_weights = np.array([
model.model.get_weights()
for model in models
])
avg_weights = np.mean(all_weights, axis=0)
self.model.set_weights(avg_weights)
all_weights = np.array([
model.model.get_weights()
for model in models
])
avg_weights = np.mean(all_weights, axis=0)
self.model.set_weights(avg_weights)
def fit(self, X, Y, epochs, batch_size):
self.model.fit(X, Y.to_numpy(), epochs=epochs, batch_size=batch_size)
def predict(self, X, Y):
preds = self.model.predict(X)
preds = [np.argmax(p) for p in preds]
print(classification_report(Y, preds))
ConfusionMatrixDisplay.from_predictions(Y, preds)
#Preprocessing and Training Simultaneously
label_encoder = preprocessing.LabelEncoder()
model = []
for i in range(5):
model.append(MulticlassClassification(27, [20, 20, 20], num_classes=5))
for i in range(5):
file_path = os.path.join(folder_path, nodes_list)
df = pd.read_csv(file_path)
df=df.drop(['FLAGS'],axis=1)
df['PKT_TYPE']=label_encoder.fit_transform(df['PKT_TYPE'])
df['PKT_CLASS']=label_encoder.fit_transform(df['PKT_CLASS'])
df['NODE_NAME_TO']=label_encoder.fit_transform(df['NODE_NAME_TO'])
df['NODE_NAME_FROM']=label_encoder.fit_transform(df['NODE_NAME_FROM'])
print(df['PKT_TYPE'].unique())
print(df['NODE_NAME_FROM'].unique())
print(df['NODE_NAME_TO'].unique())
print(df['PKT_CLASS'].unique())
X=df.drop(['PKT_CLASS'],axis=1)
Y=df['PKT_CLASS']
X1, X2, Y1, Y2= train_test_split(X, Y, train_size=0.9984375, random_state=1)
model.fit(X1, Y1, epochs=20, batch_size=32)
#Now I have to merge all models in the list model[] into a single one. How to do so??
#Then I have to predict the test set using the new model.```
Подробнее здесь: https://stackoverflow.com/questions/793 ... ined-model
Как я могу объединить 5 обученных моделей в одну и использовать объединенную модель для прогнозирования? ⇐ Python
Программы на Python
1737891049
Anonymous
Мне нужно реализовать федеративное обучение. Итак, я обучил список из 5 моделей и обучил каждую модель на разных наборах данных. Теперь мне нужно объединить обученные модели в список, но я понятия не имею, как это сделать. После этого мне придется использовать комбинированную модель для прогнозирования на тестовом наборе.
class MulticlassClassification:
def __init__(self, input_dims, layers, num_classes):
self.model = Sequential(name="server_model")
self.model.add(Dense(
layers[0],
input_shape=(input_dims,),
activation='relu'
))
for l in layers[1:]:
self.model.add(Dense(l, activation='relu'))
self.model.add(Dense(num_classes, activation='softmax'))
self.model.compile(
loss='sparse_categorical_crossentropy',
optimizer='adam',
metrics=['accuracy']
)
self.model.summary()
def set_avg_weights(self, models):
all_weights = np.array([
model.model.get_weights()
for model in models
])
avg_weights = np.mean(all_weights, axis=0)
self.model.set_weights(avg_weights)
all_weights = np.array([
model.model.get_weights()
for model in models
])
avg_weights = np.mean(all_weights, axis=0)
self.model.set_weights(avg_weights)
def fit(self, X, Y, epochs, batch_size):
self.model.fit(X, Y.to_numpy(), epochs=epochs, batch_size=batch_size)
def predict(self, X, Y):
preds = self.model.predict(X)
preds = [np.argmax(p) for p in preds]
print(classification_report(Y, preds))
ConfusionMatrixDisplay.from_predictions(Y, preds)
#Preprocessing and Training Simultaneously
label_encoder = preprocessing.LabelEncoder()
model = []
for i in range(5):
model.append(MulticlassClassification(27, [20, 20, 20], num_classes=5))
for i in range(5):
file_path = os.path.join(folder_path, nodes_list[i])
df = pd.read_csv(file_path)
df=df.drop(['FLAGS'],axis=1)
df['PKT_TYPE']=label_encoder.fit_transform(df['PKT_TYPE'])
df['PKT_CLASS']=label_encoder.fit_transform(df['PKT_CLASS'])
df['NODE_NAME_TO']=label_encoder.fit_transform(df['NODE_NAME_TO'])
df['NODE_NAME_FROM']=label_encoder.fit_transform(df['NODE_NAME_FROM'])
print(df['PKT_TYPE'].unique())
print(df['NODE_NAME_FROM'].unique())
print(df['NODE_NAME_TO'].unique())
print(df['PKT_CLASS'].unique())
X=df.drop(['PKT_CLASS'],axis=1)
Y=df['PKT_CLASS']
X1, X2, Y1, Y2= train_test_split(X, Y, train_size=0.9984375, random_state=1)
model[i].fit(X1, Y1, epochs=20, batch_size=32)
#Now I have to merge all models in the list model[] into a single one. How to do so??
#Then I have to predict the test set using the new model.```
Подробнее здесь: [url]https://stackoverflow.com/questions/79388433/how-can-i-combine-5-trained-models-into-a-single-one-and-use-the-combined-model[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия