目前我正在尝试使用Microsoft SEAL库实现矩阵乘法方法。我已经创建了一个作为输入矩阵的
我设法在编码之前转置矩阵。这样,我就可以逐个乘积地乘以第一个矩阵的行和第二个矩阵的列(在转置形式中的行),但我无法将结果向量的元素相加,因为它被打包成单个Ciphertext。我只需要弄清楚如何在SEAL中使向量点积工作以执行矩阵乘法。我是不是漏掉了什么或者我的方法有问题?
vector<vector<double>>
,并使用CKKSEncoder
对其进行编码。然而,编码器将整个向量打包成单个Plaintext
,因此我只有一个vector<Plaintext>
,这使我失去了二维结构(然后当然在加密后我将有一个vector<Ciphertext>
)。拥有一个一维向量允许我完全访问行,但无法访问列。我设法在编码之前转置矩阵。这样,我就可以逐个乘积地乘以第一个矩阵的行和第二个矩阵的列(在转置形式中的行),但我无法将结果向量的元素相加,因为它被打包成单个Ciphertext。我只需要弄清楚如何在SEAL中使向量点积工作以执行矩阵乘法。我是不是漏掉了什么或者我的方法有问题?