Skip to content

Commit 2117c4e

Browse files
committed
Update aggregated statistic report layout
1 parent a6155a8 commit 2117c4e

File tree

1 file changed

+19
-27
lines changed

1 file changed

+19
-27
lines changed

tools/imatrix/imatrix.cpp

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,50 +1324,42 @@ static bool show_statistics(const common_params & params) {
13241324

13251325
const float w_sum = tstat.elements * tstat.sum_values;
13261326
const float w_zd = tstat.elements * tstat.zd_score;
1327-
const float w_cossim = tstat.elements * tstat.cossim;
13281327

13291328
if (ws.find(blk) != ws.end()) {
13301329
ws[blk].w_sum += w_sum;
13311330
ws[blk].w_zd += w_zd;
1332-
ws[blk].w_cossim += w_cossim;
13331331
ws[blk].n += tstat.elements;
13341332
} else {
13351333
weighted_stats temp_ws;
13361334
temp_ws.w_sum = w_sum;
13371335
temp_ws.w_zd = w_zd;
1338-
temp_ws.w_cossim = w_cossim;
13391336
temp_ws.n = tstat.elements;
13401337
ws[blk] = temp_ws;
13411338
}
13421339
}
13431340

1344-
const int layers = std::count_if(ws.begin(), ws.end(), [](const auto & kv) { return kv.first >= 0; });
1345-
LOG_INF("\nComputing weighted average statistics per layer (%d layers)\n", layers);
1341+
std::map<int, float> layer_cossim;
1342+
compute_layer_statistics(ts, layer_cossim, g_collector.get_mstats());
1343+
1344+
const auto layers = std::count_if(ws.begin(), ws.end(), [](const auto & kv) { return kv.first >= 0; });
1345+
LOG_INF("\nComputing aggregated statistics per layer (%ld layers)\n", layers);
13461346
LOG_INF("\n%6s\t%16s\t%7s\t%11s\n",
13471347
"Layer",
1348-
tensor_calc_mode == 1 ? "μL₂ Norm" : "μΣ(Act²)",
1349-
"μZD",
1350-
"μCosSim");
1348+
tensor_calc_mode == 1 ? "L₂ Norm" : "Σ(Act²)",
1349+
"ZD",
1350+
"CosSim");
13511351
LOG_INF("============================================\n");
1352-
for (const auto & [first, second] : ws) {
1353-
const auto & layer = first;
1354-
const auto & stats = second;
1355-
1356-
if (stats.n == 0) {
1357-
continue;
1358-
}
1359-
1360-
if (layer >= 0) {
1361-
const float w_sum = stats.w_sum / stats.n;
1362-
const float w_zd = stats.w_zd / stats.n;
1363-
const float w_cossim = stats.w_cossim / stats.n;
1364-
1365-
LOG_INF("%5d\t%11.2f\t%6.2f%%\t%10.4f\n",
1366-
layer,
1367-
w_sum,
1368-
100.0f * w_zd,
1369-
w_cossim);
1370-
}
1352+
for (const auto & [layer, stats] : ws) {
1353+
if (layer < 0 || stats.n == 0) continue;
1354+
const float w_sum = stats.w_sum / stats.n;
1355+
const float w_zd = stats.w_zd / stats.n;
1356+
const auto lcs = layer_cossim.find(layer);
1357+
const float cossim = (lcs != layer_cossim.end()) ? lcs->second : 0.0f;
1358+
LOG_INF("%5d\t%11.2f\t%6.2f%%\t%10.4f\n",
1359+
layer,
1360+
w_sum,
1361+
100.0f * w_zd,
1362+
cossim);
13711363
}
13721364
LOG_INF("\n");
13731365

0 commit comments

Comments
 (0)