绵羊程序接口
matSHEE的Python项目详细描述
这个库是python中的编程接口,用于为更大、更有用的sheep库生成一个电路。
库有几个数据类型:
- 变量-单个位(也可以用作普通标量)
- enc_vec-一维位矢量(可用于任何数据类型的一维矢量)
- enc_mat-二维位矩阵(可用于任何数据类型的一维向量)
- Enc_Tensor3-三维位张量。
要创建电路,要继承的基本类是mini_modin mathsheep.interactions。要添加更多组件,可以在create函数中使用self.add(component),如下所示。
class oneb_adder(mini_mod): def __init__(self, name, inputs, outputs, nb=None, randomize_temps=1, carry=True): mini_mod.__init__(self, name, inputs, outputs) self.create(...) def create(self, ...): self.add(..)
可以添加两种类型的组件。
工作分配(from matSHEEP.interactions)
- mono_assign
- alias
- negate
- bi_assign
- xor
- and
- or
- constand
- tri_assign
- mux
- mono_assign
其他小型模块
这里有一些预定义的小模块它们可以在
- matSHEEP.reusable_modules
- 一个加法器-加两位
- nb_adder—输入为[cin x y]
- nb_adder_x y-使用input = (x, y) 添加x和y
- compare_cp-将密文与明文与input = (c,p) 进行比较
- matSHEEP.functions
- reduce_add-统计位向量中的个数。
- matSHEEP.nn_layer
- 签名fn
- 线性层-权值向量与加密位向量后接符号函数的内积。
- 线性层-权值矩阵的内积,其后接符号函数的加密位向量。
- 转换层-卷积层。(看例子)
- matSHEEP.vector_ops
- vec_mono_op cond-接受纯文本cond向量、纯文本元组ass_types作为值仅包含alias和negate以及加密位向量input。它输出一个加密的位向量,其中第i个位置对input[idx]应用了ass_types[cond[idx]]操作。
- 矩阵和张量的相似运算。
也可以将创建的回路可视化test.sheep是一个电路文件。:
import sys import matSHEEP.create_graph as cg complete_node = cg.get_circuit_graph('./test.sheep') ng = cg.networkx_graph(complete_node) ng.draw()
您可以获得
gFor更多高级操作和使用多层神经网络的结果访问此降价