cfg文件的继承和多态在造case过程中的使用

背景:

有三个class, basic cfg, agent_cfg, user_cfg. 其中 user_cfg externs agent_cfg, agent_cfg externs basic_cfg.  user_cfg里有自己的变量(不带local)active, agent_cfg里有变量agent_active. basic_cfg里有常规变量,不一一列举。

一个case里定义了这三种cfg的instance,其中user_cfg 是被set进env环境里的,此case里在执行过程中需要重新reorganize cfg,使sequence发出不同的配置的场景。env的agent里有reorganize的task可直接拿来调用,但是task的input使agent_cfg类型的instance。怎么重构这个cfg file呢?

step1: env.agent.sequencer.get_cfg(cfg1);// basic_cfg cfg1

step2:  $cast(cfg2,cfg1);//agent_cfg cfg2

step3: 修改cfg2下面的变量的值来适应case需求。 cfg2.wait_cycle=100;

step4:调用agent下面的reconfigure_via_task(cfg2); 来使cfg2的重新配置起到作用。

怎么找回user_cfg里的自己的变量值,并修改呢?(我的理解,reconfig的过程中user_cfg的自己的变量没有被拿到)。如果有问题,还请指出。

step1: cfg3=cfg2;(user_cfg cfg3, 且cfg3被set 进env)

step2:cfg2.wait_cyle=100;

step3: 调用agent下面的reconfigure_via_task(cfg2),来使cfg2的重新配置起到作用,并保持cfg3部分的变量定义不被改变。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用OpenCvSharp载入weight和cfg文件可以通过以下步骤完成: 首先,我们需要确保已经在项目添加了OpenCvSharp的引用。在这之后,我们可以使用以下代码来载入weight和cfg文件: 1. 首先,我们需要创建一个Net类对象,用于加载cfg和weight文件: ```csharp using OpenCvSharp.Dnn; Net net = CvDnn.ReadNetFromDarknet("cfg文件路径", "weight文件路径"); ``` 这里我们使用了`CvDnn.ReadNetFromDarknet`方法,其"cfg文件路径"为cfg文件的路径,"weight文件路径"为weight文件的路径。 2. 接下来,我们可以通过网络对象获取层的名称和类型: ```csharp string[] layerNames = net.GetLayerNames(); Mat[] layerOutputs = net.Forward(); ``` 这里,我们使用了`net.GetLayerNames`方法获取网络所有层的名称,使用`net.Forward`方法获取网络的输出。 3. 你还可以在图像上应用这个网络: ```csharp Mat inputImage = Cv2.ImRead("图像路径"); // 创建输入blob Mat inputBlob = CvDnn.BlobFromImage(inputImage, 1.0, new Size(416, 416), new Scalar(0, 0, 0), true, false); // 设置网络的输入层 net.SetInput(inputBlob, "data"); // 前向传播 Mat output = net.Forward(); // 获取输出的结果 Mat[] detectionMat = new Mat[output.Rows]; for (int i = 0; i < output.Rows; i++) { detectionMat[i] = output.Row(i); } ``` 在此示例,我们首先使用`Cv2.ImRead`方法读取输入图像。然后,我们创建了一个输入blob,使用 `CvDnn.BlobFromImage`方法将图像转换为模型所需的格式。之后,我们将blob设置为网络的输入层,使用`net.SetInput`方法。然后进行前向传播,使用`net.Forward`方法获取输出结果。 以上就是使用OpenCvSharp载入weight和cfg文件的简单说明。希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值