Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#使用modelLoader加载ML.NET模型:如何在运行时不重复实例化modelLoader和Worker?_C#_.net_Barracuda - Fatal编程技术网

c#使用modelLoader加载ML.NET模型:如何在运行时不重复实例化modelLoader和Worker?

c#使用modelLoader加载ML.NET模型:如何在运行时不重复实例化modelLoader和Worker?,c#,.net,barracuda,C#,.net,Barracuda,我正在用c#脚本中的对象识别模型导入并进行推理。 在脚本中多次执行此操作,如下所示: var model = ModelLoader.Load(modelSource); var worker = BarracudaWorkerFactory.CreateWorker(BarracudaWorkerFactory.Type.ComputePrecompiled, model); var tensor = new Tensor(texture, channelCount); worker.Exe

我正在用c#脚本中的对象识别模型导入并进行推理。 在脚本中多次执行此操作,如下所示:

var model = ModelLoader.Load(modelSource);
var worker = BarracudaWorkerFactory.CreateWorker(BarracudaWorkerFactory.Type.ComputePrecompiled, model);

var tensor = new Tensor(texture, channelCount);
worker.Execute(tensor);
var Out = worker.Peek();
在我看来,在进行推理时,最后三行似乎需要重复,但前三行似乎是一次性的

让我只把它放在函数的范围内。我试过这样做,但不起作用:

public class Critic : MonoBehaviour
{
  public static NNModel modelSource;
  private static object model = ModelLoader.Load(modelSource);
  private object worker = BarracudaWorkerFactory.CreateWorker(BarracudaWorkerFactory.Type.ComputePrecompiled, (Model) model);
我得到的错误是:

NullReferenceException: Object reference not set to an instance of an object
Barracuda.ModelAnalyzer.GetDefaultInputName (Barracuda.Model model) (at <68dd6e4acc004c7c8bb12c0e7eb964f9>:0)
Barracuda.GenericWorker..ctor (Barracuda.Model model, Barracuda.IOps ops, Barracuda.IVars vars, System.Boolean verbose) (at <68dd6e4acc004c7c8bb12c0e7eb964f9>:0)
Barracuda.BarracudaWorkerFactory.CreateWorker (Barracuda.BarracudaWorkerFactory+Type type, Barracuda.Model model, System.String[] additionalOutputs, System.String[] trimOutputs, System.Boolean verbose, Barracuda.BarracudaWorkerFactory+Type compareAgainstType) (at <68dd6e4acc004c7c8bb12c0e7eb964f9>:0)
Barracuda.BarracudaWorkerFactory.CreateWorker (Barracuda.BarracudaWorkerFactory+Type type, Barracuda.Model model, System.String[] additionalOutputs, System.String[] trimOutputs, System.Boolean verbose) (at <68dd6e4acc004c7c8bb12c0e7eb964f9>:0)
在类的一个函数中

有什么建议吗?
谢谢

到底是什么错误?如果可能的话,我希望它不是“object”没有包含“Execute”的定义,而是发布准确的构建日志。添加了错误消息,以及它崩溃的代码行
var tensor = new Tensor(texture, channelCount);