绵羊程序接口

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
  • 其他小型模块

这里有一些预定义的小模块它们可以在

  • 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作为值仅包含aliasnegate以及加密位向量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()

您可以获得

https://raw.githubusercontent.com/amartya18x/matSHEEP/master/images/LL4.png

gFor更多高级操作和使用多层神经网络的结果访问此降价

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FirebaseInstanceId。getInstance()始终为空   linux Java执行文件错误   javaspringboot:如何使用Ajax在springboot和Thymeleaf中创建进度条?   java禁用在安卓上使用传单时启用setJavaScriptEnabled   java如何在主体中发布原始类型JSON数据?   消除JAVA While循环中的额外输出   如何在java中直接将基本数据类型分配给自定义类   java为什么addNode()方法返回编译错误“类型中的方法…不适用于参数…”,我该如何修复它?   java惰性合成可观察对象   eclipse Java Blackberry位图单击   java Android:AsyncTask对象[]无法在doInBackground中强制转换   java有没有办法重构或改进这段代码?   java如何使用系统以十六进制打印字节。出来普林顿?   多线程如何在我的java聊天室中调试“java.net.UnknownHostException”?   java如何从Google App Engine下载应用程序源文件   java如何在Spring Data Mongo的聚合$group中使用类似$dateToString   java IBM websphere application server未在MyEclipse8中启动。0