oramasearch / onnx-go

onnx-go gives the ability to import a pre-trained neural network within Go without being linked to a framework or library.
https://blog.owulveryck.info/2019/04/03/from-a-project-to-a-product-the-state-of-onnx-go.html
MIT License
704 stars 72 forks source link

yolov10 model :operator ConstantOfShape not implemented #218

Open zhaoyanan2452 opened 1 month ago

zhaoyanan2452 commented 1 month ago

Inference result tensor data is 0 value

`package main

import ( "fmt" "image" "os"

"github.com/owulveryck/onnx-go"
"github.com/owulveryck/onnx-go/backend/x/gorgonnx"
"gocv.io/x/gocv"
"gorgonia.org/tensor"

)

func main() { run()

}

func run() {

mfile, _ := os.ReadFile("/home/jetson/onnx-go/yolov10s.onnx")

backend := gorgonnx.NewGraph()

model := onnx.NewModel(backend)

model.UnmarshalBinary(mfile)

mat := gocv.IMRead("/home/jetson/onnx-go/bus.jpg", gocv.IMReadColor)
defer mat.Close()

blob := gocv.BlobFromImage(mat, 1.0/255, image.Point{640, 640}, gocv.NewScalar(0, 0, 0, 0), true, false)

inputdata, _ := blob.DataPtrFloat32()

inputtensor := tensor.New(tensor.Of(tensor.Float32), tensor.WithShape(1, 3, 640, 640), tensor.WithBacking(inputdata))

model.SetInput(0, inputtensor)

backend.Run()

output, _ := model.GetOutputTensors()

a := output[0].Data()

fmt.Println(a.([]float32))

}`

`panic: onnx: operator ConstantOfShape not implemented ()

goroutine 1 [running]: main.run() /home/jetson/onnx-go/test1/main.go:54 +0x5b8 main.main() /home/jetson/onnx-go/test1/main.go:15 +0x1c exit status 2`