Matic馬蹄鏈Polygon智能合約系統(tǒng)開發(fā)(開發(fā)案例)丨Matic馬蹄鏈Polygon智能合約源碼
Polygon是一個(gè)建立在以太坊上的Layer2擴(kuò)展解決方案上的公鏈。和以太坊比起來(lái),Polygon的速度、可擴(kuò)展性和可用性都更加有優(yōu)勢(shì)。Polygon,這也是我們幻塔空間目前部署的公鏈,也就是說(shuō),幻塔空間這個(gè)平臺(tái)是在基于polygon這條區(qū)塊鏈上去構(gòu)建起來(lái)的。對(duì)于這條區(qū)塊鏈,我們務(wù)必需要了解一下和這條公鏈相關(guān)的知識(shí)以及它的優(yōu)勢(shì)和特點(diǎn),以方便以后我們能夠更好的使用幻塔空間。Polygon著重布局在區(qū)塊鏈游戲和NFT領(lǐng)域。
將PyTorch模型轉(zhuǎn)換為ONNX模型,通常是使用torch.onnx.export()函數(shù)來(lái)轉(zhuǎn)換的,基本的思路是:
加載PyTorch模型,可以選擇只加載模型結(jié)構(gòu);也可以選擇加載模型結(jié)構(gòu)和權(quán)重。
最后使用torch.onnx.export()函數(shù)來(lái)轉(zhuǎn)換,生產(chǎn)xxx.onnx模型。
下面有一個(gè)簡(jiǎn)單的例子:
import torch
import torch.onnx
#加載PyTorch模型
model=...
關(guān)于區(qū)塊鏈項(xiàng)目技術(shù)開發(fā)威:MrsFu123,代幣發(fā)行、dapp智能合約開發(fā)、鏈游開發(fā)、多鏈錢包開發(fā)
交易所開發(fā)、量化合約開發(fā)、互助游戲開發(fā)、Nft數(shù)字藏品開發(fā)、眾籌互助開發(fā)、元宇宙開發(fā)、swap開發(fā)、
鏈上合約開發(fā)、ido開發(fā)、商城開發(fā)等,開發(fā)過(guò)各種各樣的系統(tǒng)模式,更有多種模式、制度、案例、后臺(tái)等,成熟技術(shù)團(tuán)隊(duì),歡迎實(shí)體參考。
#設(shè)置模型輸入,包括:通道數(shù),分辨率等
dummy_input=torch.randn(1,3,224,224,device='cpu')
#轉(zhuǎn)換為ONNX模型
torch.onnx.export(model,dummy_input,"model.onnx",export_params=True)
1.1轉(zhuǎn)換為ONNX模型且加載權(quán)重
這里舉一個(gè)resnet18的例子,基本思路是:開發(fā)模式I35詳細(xì)7O98系統(tǒng)O7I8
首先加載了一個(gè)預(yù)訓(xùn)練的ResNet18模型;
然后將其設(shè)置為評(píng)估模式。接下來(lái)定義一個(gè)與模型輸入張量形狀相同的輸入張量,并使用torch.randn()函數(shù)生成了一個(gè)隨機(jī)張量。
最后,使用onnx.export()函數(shù)將PyTorch模型轉(zhuǎn)換為ONNX格式,并將其保存到指定的輸出文件中。
import torch
import torchvision.models as models
#加載預(yù)訓(xùn)練的ResNet18模型
model=models.resnet18(pretrained=True)
#將模型設(shè)置為評(píng)估模式
model.eval()
#定義輸入張量,需要與模型的輸入張量形狀相同
input_shape=(1,3,224,224)
x=torch.randn(input_shape)
#需要指定輸入張量,輸出文件路徑和運(yùn)行設(shè)備
#默認(rèn)情況下,輸出張量的名稱將基于模型中的名稱自動(dòng)分配
device=torch.device("cuda"if torch.cuda.is_available()else"cpu")
#將PyTorch模型轉(zhuǎn)換為ONNX格式
output_file="resnet18.onnx"
torch.onnx.export(model,x.to(device),output_file,export_params=True)
class Model(torch.nn.Module):
def __init__(self):
super().__init__()
def forward(self,x):
x=x*x[0].item()
return x,torch.Tensor([i for i in x])
model=Model()
dummy_input=torch.rand(10)
torch.onnx.export(model,dummy_input,'a.onnx')