libtorch 报错与解决

## pytorch/libtorch qq群: 1041467052

1.error: conversion from ‘at::TensorAccessor<float, 2ul, at::DefaultPtrTraits, long int>’ to non-scalar type ‘at::Tensor’ requested
torch::Tensor result_data = result_.accessor<float,2>();// torch::Tensor result_data = result_.cpu().accessor<float,2>();

定位到代码中的语句

 torch::Tensor result_data = result_.accessor<float,2>();

各种试,result是二维的啊,是float的啊!!!
转到了cpu了啊!!
奔溃~~,我看别人也是这么写的啊!!
例子:

torch::Tensor one = torch::randn({9,6});
auto foo_one=one.accessor<float,2>();
for(int i=0,sum=0;i<foo_one.size(0);i++)
 for(int j=0;j<foo_one.size(1);j++)
     sum+=foo_one[i][j];

然后的然后,我把 torch::Tensor result_data = result_.accessor<float,2>();改成

 auto result_data = result_.accessor<float,2>();

编译通过了!!!!ヾ(。`Д´。)!!!!!
这个问题找了我半个小时多!!!!原来已经不是torch::Tensor类型了,需要用auto啊!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LibTorch是一个在PyTorch生态系统中的C++库,它提供了一些功能来处理和操作张量、构建和训练神经网络模型。维特比算法是一种用于求解最优路径的动态规划算法,经常用于序列标注任务中。 在LibTorch中,可以使用维特比算法来解决一些序列标注问题。通常,这需要定义一个隐马尔可夫模型(HMM),其中包含了一组隐藏状态和一组观测状态。我们可以使用LibTorch中的张量来表示这些状态,并使用LibTorch提供的函数来实现维特比算法。 首先,我们需要定义HMM的转移矩阵和观测矩阵。转移矩阵描述了隐藏状态之间的转移概率,而观测矩阵描述了观测状态对应于隐藏状态的概率。 然后,我们可以使用维特比算法来计算最优路径。该算法利用动态规划的思想,通过递归地计算每个时间步中每个隐藏状态的最优路径分数和最优前驱状态,从而得到整个序列的最优路径。 在LibTorch中,可以使用torch::Tensor表示分数和路径,并使用torch::argmax函数来找到每个时间步中最优路径的索引。维特比算法的关键步骤是通过前一个时间步的最优路径分数和当前时间步的转移概率、观测概率来计算当前时间步的最优路径分数,并通过比较不同路径分数来选择最优路径。 维特比算法最终会给出整个序列的最优路径。通过在LibTorch中实现维特比算法,我们可以在序列标注任务中解决最优路径问题,并得到模型对输入序列的最佳标注结果。 总之,LibTorch提供了一些功能来处理和操作张量、构建和训练神经网络模型,包括维特比算法的实现,可以帮助我们解决序列标注任务中的最优路径问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值