欢迎光临散文网 会员登陆 & 注册

量化合约交易机器人系统开发(项目开发)丨合约量化交易机器人系统开发(成熟案例)

2023-06-15 10:12 作者:bili_36625761919  | 我要投稿

数据层我们可以理解成数据库,只不过对于区块链来讲,这个数据库是不可篡改的、分布式的数据库,也就是我们所谓的“分布式账本”在数据层上,也就是在这个“分布式账本”上,存放着区块链上的数据信息,封装着区块的块链式结构、非对称加密技术、哈希算法等技术手段,来保证数据在全网公开的情况下的安全性问题。


区块链最常见的数据结构当然就是单链式结构,像一条铁链一样,一个节点只有一个前序节点和一个后续节点。


  int main(int argc,const char*argv[]){


  if(argc<4){


  DLOG(INFO)<<"Usage:./quantized.out src.mnn dst.mnn preTreatConfig.jsonn";


  return 0;


  }


  const char*modelFile=argv[1];


  const char*preTreatConfig=argv[3];


  const char*dstFile=argv[2];


  DLOG(INFO)<<">>>modelFile:"<<modelFile;


  DLOG(INFO)<<">>>preTreatConfig:"<<preTreatConfig;


  DLOG(INFO)<<">>>dstFile:"<<dstFile;


  //加载待量化的模型


  std::unique_ptr<MNN::NetT>netT;


  {


  std::ifstream input(modelFile);


  std::ostringstream outputOs;


  outputOs<<input.rdbuf();


  netT=MNN::UnPackNet(outputOs.str().c_str());


  }


  //temp build net for inference


  flatbuffers::FlatBufferBuilder builder(1024);


  auto offset=MNN::Net::Pack(builder,netT.get());


  builder.Finish(offset);


  int size=builder.GetSize();


  auto ocontent=builder.GetBufferPointer();


  //model buffer for creating mnn Interpreter


  std::unique_ptr<uint8_t>modelForInference(new uint8_t[size]);


  memcpy(modelForInference.get(),ocontent,size);


  std::unique_ptr<uint8_t>modelOriginal(new uint8_t[size]);


  memcpy(modelOriginal.get(),ocontent,size);


  netT.reset();


  netT=MNN::UnPackNet(modelOriginal.get());


  //quantize model's weight


  DLOG(INFO)<<"Calibrate the feature and quantize model...";


  //构建Calibration对象,负责量化


  std::shared_ptr<Calibration>calibration(


  new Calibration(netT.get(),modelForInference.get(),size,preTreatConfig));


  //执行量化,更新参数为int8


  calibration->runQuantizeModel();


  //将量化的参数写入json文件


  calibration->dumpTensorScales(dstFile);


  DLOG(INFO)<<"Quantize model done!";


  //保存量化后的模型


  flatbuffers::FlatBufferBuilder builderOutput(1024);


  builderOutput.ForceDefaults(true);


  auto len=MNN::Net::Pack(builderOutput,netT.get());


  builderOutput.Finish(len);


  {


  std::ofstream output(dstFile);


  output.write((const char*)builderOutput.GetBufferPointer(),builderOutput.GetSize());


  }


  return 0;


  }


量化合约交易机器人系统开发(项目开发)丨合约量化交易机器人系统开发(成熟案例)的评论 (共 条)

分享到微博请遵守国家法律