DAPP馬蹄鏈智慧合約開發正式版丨DAPP馬蹄鏈智慧合約系統開發(詳解及案例)
什麼是智慧合約?智慧合約,又稱加密合約,是在一定條件下可以直接控制數字資產或資產在各方之間轉移的一種計算機程式z--Guts。智慧合約不僅以與傳統合約相同的方式定義了協議的規則和處罰,還可以自動強制執行這些義務。它透過接受資訊作為輸入,透過規則為輸入賦值,在合約中列出並執行這些合約條款所要求的行為。
void Calibration::_updateScale(){
for(const auto&op:_originaleModel->oplists){
std::vector<std::string>::iterator iter=std::find(_skip_quant_ops.begin(),_skip_quant_ops.end(),op->name);
if(iter!=_skip_quant_ops.end()){
continue;
}
const auto opType=op->type;
if(opType!=MNN::OpType_Convolution&&opType!=MNN::OpType_ConvolutionDepthwise&&
opType!=MNN::OpType_Eltwise){
continue;
} 本文由系統開發對接唯:MrsFu123編輯整理釋出。
auto tensorsPair=_opInfo.find(op->name);
if(tensorsPair==_opInfo.end()){
MNN_ERROR("Can't find tensors for%sn",op->name.c_str());
}
if(opType==MNN::OpType_Eltwise){
auto param=op->main.AsEltwise();
//Now only support AddInt8
if(param->type!=MNN::EltwiseType_SUM){
continue;
}
const auto&inputScale0=_scales[tensorsPair->second.first[0]];
const auto&inputScale1=_scales[tensorsPair->second.first[1]];
const auto&outputScale=_scales[tensorsPair->second.second[0]];
const int outputScaleSize=outputScale.size();
std::vector<float>outputInvertScale(outputScaleSize);
Helper::invertData(outputInvertScale.data(),outputScale.data(),outputScaleSize);
op->type=MNN::OpType_EltwiseInt8;
op->main.Reset();
op->main.type=MNN::OpParameter_EltwiseInt8;
auto eltwiseInt8Param=new MNN::EltwiseInt8T;
auto input0ScaleParam=new MNN::QuantizedFloatParamT;
auto input1ScaleParam=new MNN::QuantizedFloatParamT;
auto outputScaleParam=new MNN::QuantizedFloatParamT;
input0ScaleParam->tensorScale=inputScale0;
input1ScaleParam->tensorScale=inputScale1;
outputScaleParam->tensorScale=outputInvertScale;
eltwiseInt8Param->inputQuan0=std::unique_ptr<MNN::QuantizedFloatParamT>(input0ScaleParam);
eltwiseInt8Param->inputQuan1=std::unique_ptr<MNN::QuantizedFloatParamT>(input1ScaleParam);
eltwiseInt8Param->outputQuan=std::unique_ptr<MNN::QuantizedFloatParamT>(outputScaleParam);
op->main.value=eltwiseInt8Param;
continue;
}
//below is Conv/DepthwiseConv
const auto&inputScale=_scales[tensorsPair->second.first[0]];
const auto&outputScale=_scales[tensorsPair->second.second[0]];
auto param=op->main.AsConvolution2D();
const int channles=param->common->outputCount;
const int weightSize=param->weight.size();
param->symmetricQuan.reset(new MNN::QuantizedFloatParamT);
//quantizedParam是param->symmetricQuan的引用
auto&quantizedParam=param->symmetricQuan;
quantizedParam->scale.resize(channles);
quantizedParam->weight.resize(weightSize);
quantizedParam->bias.resize(channles);
if(opType==MNN::OpType_Convolution){
QuantizeConvPerChannel(param->weight.data(),param->weight.size(),param->bias.data(),
quantizedParam->weight.data(),quantizedParam->bias.data(),
quantizedParam->scale.data(),inputScale,outputScale,_weightQuantizeMethod,_weightClampValue);
op->type=MNN::OpType_ConvInt8;
}else if(opType==MNN::OpType_ConvolutionDepthwise){
QuantizeDepthwiseConv(param->weight.data(),param->weight.size(),param->bias.data(),
quantizedParam->weight.data(),quantizedParam->bias.data(),
quantizedParam->scale.data(),inputScale,outputScale,_weightQuantizeMethod,_weightClampValue);
op->type=MNN::OpType_DepthwiseConvInt8;
}
if(param->common->relu6){
param->common->relu=true;
param->common->relu6=false;
}
//清除原本的權重和bias
param->weight.clear();
param->bias.clear();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2938692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DAPP馬蹄鏈智慧合約系統開發(案例)丨DAPP馬蹄鏈開發原始碼APP原始碼
- 馬蹄鏈Dapp智慧合約(系統開發)案例丨馬蹄鏈MATIC智慧合約技術開發原理APP
- 馬蹄鏈智慧合約DAPP開發需求丨馬蹄鏈智慧合約DAPP質押挖礦系統開發(開發案例)APP
- 馬蹄鏈智慧合約dapp系統開發搭建APP
- 智慧合約馬蹄鏈Polygon系統開發案例丨馬蹄鏈Polygon功能開發詳情Go
- 馬蹄鏈智慧合約DAPP系統開發搭建詳情APP
- DAPP馬蹄鏈系統開發原理丨馬蹄鏈DAPP智慧合約演算法應用程式APP演算法
- DAPP馬蹄鏈智慧合約質押挖礦開發丨DAPP馬蹄鏈智慧合約質押挖礦系統開發技術分析及原始碼APP原始碼
- 馬蹄鏈互助遊戲開發詳情丨馬蹄鏈互助智慧合約遊戲系統開發(案例及分析)遊戲開發
- DAPP馬蹄鏈開發原理丨DAPP馬蹄鏈系統開發(案例及說明)丨馬蹄鏈原始碼APP原始碼
- DAPP馬蹄鏈polygon智慧合約系統開發(詳細及案例)原始碼部署APPGo原始碼
- 馬蹄鏈dapp開發規則丨馬蹄鏈dapp系統開發(案例開發)丨馬蹄鏈原始碼功能APP原始碼
- matic馬蹄鏈智慧合約dapp系統開發模式定製APP模式
- matic馬蹄鏈智慧合約dapp系統開發搭建介紹APP
- Polygon馬蹄鏈(matic)智慧合約DApp開發系統技術GoAPP
- FDF智慧合約系統開發|馬蹄鏈DAPP開發搭建技術APP
- Matic馬蹄鏈DAPP智慧合約挖礦系統開發詳情模式APP模式
- 智慧合約馬蹄鏈質押挖礦開發穩定版丨DAPP智慧合約系統開發詳細模型APP模型
- 關於DAPP馬蹄鏈合約系統開發demoAPP
- DAPP合約系統開發技術丨DAPP馬蹄鏈系統開發成熟DmeoAPP
- Polygon馬蹄鏈智慧合約挖礦系統開發|Polygon馬蹄鏈專案開發Go
- polygon馬蹄鏈智慧合約dapp系統開發|NFT鏈遊戲搭建技術GoAPP遊戲
- Matic馬蹄鏈dapp開發功能丨Matic馬蹄鏈dapp系統開發(開發案例及原始碼)APP原始碼
- 關於智慧合約馬蹄鏈DAPP系統開發技術講解(方案)APP
- polygon馬蹄鏈質押DApp開發合約系統搭建GoAPP
- Polygon(matic)馬蹄鏈智慧合約互助系統開發Go
- FDF智慧合約互助系統開發馬蹄鏈搭建
- 關於馬蹄鏈智慧合約DAPP系統開發方案流程詳情介紹APP
- DAPP馬蹄鏈智慧合約專案系統開發詳情技術介紹APP
- FDF互助遊戲智慧合約開發(馬蹄鏈開發)遊戲
- NFT遊戲開發系統鏈改技術|馬蹄鏈智慧合約Dapp開發技術遊戲開發APP
- 馬蹄鏈合約互助迴圈複利模式開發流程丨智慧合約dapp系統開發程式設計示例模式APP程式設計
- 關於DAPP馬蹄鏈合約模式系統開發詳情介紹APP模式
- 深入分析馬蹄鏈DAPP智慧合約系統開發實現技術詳細及方案APP
- 馬蹄鏈開發詳情丨馬蹄鏈系統開發(開發流程)丨馬蹄鏈原始碼部署原始碼
- 馬蹄鏈FDF智慧合約迴圈互助模式系統開發模式
- 關於DAPP馬蹄鏈合約系統開發詳情技術介紹APP
- DAPP馬蹄鏈代幣合約質押系統開發詳情模式搭建APP模式