영어 버전 문서로 돌아가기초기 모델 작성
초기 모델 작성
마지막 업데이트 날짜: 2024년 10월 04일
당사자는 예제 세트를 따라 훈련하기 전에 초기 모델을 작성하고 저장할 수 있습니다.
모델 유형과 일치하는 구성 예제를 고려하십시오.
Tensorflow 모델 저장
import tensorflow as tf
from tensorflow.keras import *
from tensorflow.keras.layers import *
import numpy as np
import os
class MyModel(Model):
def __init__(self):
super(MyModel, self).__init__()
self.conv1 = Conv2D(32, 3, activation='relu')
self.flatten = Flatten()
self.d1 = Dense(128, activation='relu')
self.d2 = Dense(10)
def call(self, x):
x = self.conv1(x)
x = self.flatten(x)
x = self.d1(x)
return self.d2(x)
# Create an instance of the model
model = MyModel()
loss_object = tf.keras.losses.SparseCategoricalCrossentropy(
from_logits=True)
optimizer = tf.keras.optimizers.Adam()
acc = tf.keras.metrics.SparseCategoricalAccuracy(name='accuracy')
model.compile(optimizer=optimizer, loss=loss_object, metrics=[acc])
img_rows, img_cols = 28, 28
input_shape = (None, img_rows, img_cols, 1)
model.compute_output_shape(input_shape=input_shape)
dir = "./model_architecture"
if not os.path.exists(dir):
os.makedirs(dir)
model.save(dir)
Tensorflow 를 모델 프레임워크로 선택하는 경우 Keras 모델을 SavedModel
형식으로 저장해야 합니다. Keras 모델은 tf.keras.model.save()
를 사용하여 SavedModel
형식으로 저장할 수 있습니다.
파일을 압축하려면 zip -r mymodel.zip model_architecture
명령을 실행하십시오. .zip
파일의 컨텐츠에는 다음이 포함되어야 합니다.
mymodel.zip
└── model_architecture
├── assets
├── keras_metadata.pb
├── saved_model.pb
└── variables
├── variables.data-00000-of-00001
└── variables.index
Scikit-learn 모델 저장
SKLearn 분류
# SKLearn classification
from sklearn.linear_model import SGDClassifier
import numpy as np
import joblib
model = SGDClassifier(loss='log', penalty='l2')
model.classes_ = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# You must specify the class label for IBM Federated Learning using model.classes. Class labels must be contained in a numpy array.
# In the example, there are 10 classes.
joblib.dump(model, "./model_architecture.pickle")
SKLearn 회귀
# Sklearn regression
from sklearn.linear_model import SGDRegressor
import pickle
model = SGDRegressor(loss='huber', penalty='l2')
with open("./model_architecture.pickle", 'wb') as f:
pickle.dump(model, f)
SKLearn K-평균
# SKLearn Kmeans
from sklearn.cluster import KMeans
import joblib
model = KMeans()
joblib.dump(model, "./model_architecture.pickle")
zip mymodel.zip model_architecture.pickle
명령을 실행하여 피클 형식으로 모델을 포함하는 .zip
파일을 작성해야 합니다. .zip
파일의 컨텐츠에는 다음이 포함되어야 합니다.
mymodel.zip
└── model_architecture.pickle
PyTorch 모델 저장
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Flatten(start_dim=1, end_dim=-1),
nn.Linear(in_features=784, out_features=256, bias=True),
nn.ReLU(),
nn.Linear(in_features=256, out_features=256, bias=True),
nn.ReLU(),
nn.Linear(in_features=256, out_features=256, bias=True),
nn.ReLU(),
nn.Linear(in_features=256, out_features=100, bias=True),
nn.ReLU(),
nn.Linear(in_features=100, out_features=50, bias=True),
nn.ReLU(),
nn.Linear(in_features=50, out_features=10, bias=True),
nn.LogSoftmax(dim=1),
).double()
torch.save(model, "./model_architecture.pt")
피클 형식으로 모델을 포함하는 .zip
파일을 작성해야 합니다. zip mymodel.zip model_architecture.pt
명령을 실행하십시오. .zip
파일의 컨텐츠는 다음을 포함해야 합니다.
mymodel.zip
└── model_architecture.pt
상위 주제: 연합 학습 실험 작성