function [score_S_eu, score_U_eu, score_S_seu, score_U_seu, score_S_orig_eu, score_S_orig_seu]... = test_EXEM_GZSL(X, mean_S, mean_S_rec, mean_U_rec, std_Xtr) % Prediction accuracy score_S_eu = test_NN_euclidean(X, mean_S_rec); score_U_eu = test_NN_euclidean(X, mean_U_rec); score_S_seu = test_NN_std_euclidean(X, mean_S_rec, std_Xtr); score_U_seu = test_NN_std_euclidean(X, mean_U_rec, std_Xtr); score_S_orig_eu = test_NN_euclidean(X, mean_S); score_S_orig_seu = test_NN_std_euclidean(X, mean_S, std_Xtr); end %%%%%%%%%%%%%%%%%%%% Loss or Accuracy %%%%%%%%%%%%%%%%%%%%%%%%%% function score = test_NN_euclidean(X, mean_X) score = -pdist2_fast(X, mean_X); end function score = test_NN_std_euclidean(X, mean_X, std_X) score = -pdist2_fast(bsxfun(@rdivide, X, std_X), bsxfun(@rdivide, mean_X, std_X)); end
时间: 2023-10-06 15:09:21 浏览: 69
这段代码实现了基于 EXEM 的 GZSL(Generalized Zero-Shot Learning)模型的测试过程。
首先,调用 test_NN_euclidean 函数,将输入样本 X 和已知类别样本的重构特征表示 mean_S_rec 作为参数,计算它们之间的欧氏距离得分,并将结果保存在 score_S_eu 中。
接下来,调用 test_NN_euclidean 函数,将输入样本 X 和未知类别样本的重构特征表示 mean_U_rec 作为参数,计算它们之间的欧氏距离得分,并将结果保存在 score_U_eu 中。
然后,调用 test_NN_std_euclidean 函数,将输入样本 X、已知类别样本的重构特征表示 mean_S_rec 和训练集的标准差 std_Xtr 作为参数,计算它们之间的标准化欧氏距离得分,并将结果保存在 score_S_seu 中。
再次,调用 test_NN_std_euclidean 函数,将输入样本 X、未知类别样本的重构特征表示 mean_U_rec 和训练集的标准差 std_Xtr 作为参数,计算它们之间的标准化欧氏距离得分,并将结果保存在 score_U_seu 中。
最后,调用 test_NN_euclidean 函数,将输入样本 X 和已知类别样本的原始特征表示 mean_S 作为参数,计算它们之间的欧氏距离得分,并将结果保存在 score_S_orig_eu 中。
同时,调用 test_NN_std_euclidean 函数,将输入样本 X、已知类别样本的原始特征表示 mean_S 和训练集的标准差 std_Xtr 作为参数,计算它们之间的标准化欧氏距离得分,并将结果保存在 score_S_orig_seu 中。
这段代码主要是计算输入样本与已知类别样本和未知类别样本之间的距离得分,用于后续的分类准确率计算和模型性能评估。
阅读全文