Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -163,7 +163,7 @@ if os.path.exists(fhe_dir):
|
|
| 163 |
|
| 164 |
final_model = ConcreteXGBClassifier(n_bits=8, **best_params, random_state=42)
|
| 165 |
final_model.fit(Xtr_sel, ytr_e)
|
| 166 |
-
final_model.compile(Xtr_sel[:
|
| 167 |
|
| 168 |
dev = FHEModelDev(path_dir=fhe_dir, model=final_model)
|
| 169 |
dev.save()
|
|
@@ -197,7 +197,6 @@ def generate_keys():
|
|
| 197 |
|
| 198 |
|
| 199 |
|
| 200 |
-
|
| 201 |
def encrypt_excel(file):
|
| 202 |
global encrypted_input
|
| 203 |
if client is None:
|
|
@@ -205,7 +204,7 @@ def encrypt_excel(file):
|
|
| 205 |
|
| 206 |
df = pd.read_excel(file.name, header=None).set_index(0).T.reset_index(drop=True)
|
| 207 |
|
| 208 |
-
#
|
| 209 |
df.columns = df.columns.str.strip()
|
| 210 |
df = df.loc[:, ~df.columns.duplicated()]
|
| 211 |
df.rename(columns={"Desc": "Periyot"}, inplace=True)
|
|
@@ -214,12 +213,19 @@ def encrypt_excel(file):
|
|
| 214 |
|
| 215 |
enriched = compute_ratios(df)
|
| 216 |
X_input = enriched[COLS].dropna()
|
| 217 |
-
print("
|
| 218 |
|
| 219 |
scaled = scaler_sel.transform(X_input)
|
| 220 |
|
| 221 |
-
|
| 222 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 223 |
|
| 224 |
|
| 225 |
|
|
@@ -232,15 +238,29 @@ def run_fhe():
|
|
| 232 |
server.load()
|
| 233 |
|
| 234 |
eval_keys = client.get_serialized_evaluation_keys()
|
| 235 |
-
|
| 236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 237 |
|
| 238 |
|
| 239 |
def decrypt_result():
|
| 240 |
if encrypted_output is None:
|
| 241 |
raise gr.Error("Henüz tahmin yapılmadı.")
|
| 242 |
-
|
| 243 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 244 |
|
| 245 |
|
| 246 |
|
|
|
|
| 163 |
|
| 164 |
final_model = ConcreteXGBClassifier(n_bits=8, **best_params, random_state=42)
|
| 165 |
final_model.fit(Xtr_sel, ytr_e)
|
| 166 |
+
final_model.compile(Xtr_sel[:1])
|
| 167 |
|
| 168 |
dev = FHEModelDev(path_dir=fhe_dir, model=final_model)
|
| 169 |
dev.save()
|
|
|
|
| 197 |
|
| 198 |
|
| 199 |
|
|
|
|
| 200 |
def encrypt_excel(file):
|
| 201 |
global encrypted_input
|
| 202 |
if client is None:
|
|
|
|
| 204 |
|
| 205 |
df = pd.read_excel(file.name, header=None).set_index(0).T.reset_index(drop=True)
|
| 206 |
|
| 207 |
+
# Temizlik işlemleri
|
| 208 |
df.columns = df.columns.str.strip()
|
| 209 |
df = df.loc[:, ~df.columns.duplicated()]
|
| 210 |
df.rename(columns={"Desc": "Periyot"}, inplace=True)
|
|
|
|
| 213 |
|
| 214 |
enriched = compute_ratios(df)
|
| 215 |
X_input = enriched[COLS].dropna()
|
| 216 |
+
print(" Şifreleme öncesi shape:", X_input.shape)
|
| 217 |
|
| 218 |
scaled = scaler_sel.transform(X_input)
|
| 219 |
|
| 220 |
+
# Her satırı ayrı ayrı şifrele
|
| 221 |
+
encrypted_list = []
|
| 222 |
+
for row in scaled:
|
| 223 |
+
row = row.reshape(1, -1)
|
| 224 |
+
encrypted = client.quantize_encrypt_serialize(row)
|
| 225 |
+
encrypted_list.append(encrypted)
|
| 226 |
+
|
| 227 |
+
encrypted_input = encrypted_list
|
| 228 |
+
return f"{len(encrypted_input)} adet satır şifrelendi."
|
| 229 |
|
| 230 |
|
| 231 |
|
|
|
|
| 238 |
server.load()
|
| 239 |
|
| 240 |
eval_keys = client.get_serialized_evaluation_keys()
|
| 241 |
+
encrypted_result = []
|
| 242 |
+
|
| 243 |
+
for enc in encrypted_input:
|
| 244 |
+
result = server.run(enc, eval_keys)
|
| 245 |
+
encrypted_result.append(result)
|
| 246 |
+
|
| 247 |
+
encrypted_output = encrypted_result
|
| 248 |
+
return f"{len(encrypted_output)} satır için tahmin tamamlandı."
|
| 249 |
+
|
| 250 |
+
|
| 251 |
|
| 252 |
|
| 253 |
def decrypt_result():
|
| 254 |
if encrypted_output is None:
|
| 255 |
raise gr.Error("Henüz tahmin yapılmadı.")
|
| 256 |
+
|
| 257 |
+
predictions = []
|
| 258 |
+
for enc in encrypted_output:
|
| 259 |
+
pred = client.deserialize_decrypt_dequantize(enc)
|
| 260 |
+
label = encoder.inverse_transform([int(pred[0])])[0]
|
| 261 |
+
predictions.append(label)
|
| 262 |
+
|
| 263 |
+
return "\n".join(f"{i+1}. {label}" for i, label in enumerate(predictions))
|
| 264 |
|
| 265 |
|
| 266 |
|