VS2015和C语言调用Python 3.7.3神经网络

本文介绍了如何在Visual Studio 2015环境下,使用C语言调用Python 3.7.3中的Pytorch 1.2.0神经网络模型。在调试过程中遇到版本不匹配、编码问题、Python函数调用及浮点数类型转换等挑战,通过设置Py_SetPythonHome、正确处理numpy数组类型和浮点数类型,最终成功实现C语言与Python的交互。
摘要由CSDN通过智能技术生成

前一阵子利用pytorch写了一个CNN,训练完成了,也保存成了pt模型文件,但是现在C语言的一个大工程需要利用这个模型的结果,所以就开始研究了各种可能的方案,最后选择了我觉得相对来说比较简单的那种,也就是配置VS的各种变异环境然后引入Python.h库进行各种调用~

环境:Visual Studio 2015、Python 3.7.3、Pytorch 1.2.0

debug过程非常坎坷,网上照着学了不少,但是总有很多坑,有可能是版本不匹配的问题什么的

这里记录一下最终成功的版本~

python代码:split.py

import torch
import numpy as np
import gc


def split(patch, status, qp):
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    model = torch.jit.load('model/split_model_moredata.pt').to(device)
    index_1 = 2 if status=='luma' else 3
    print("hello I'm from python")
    assert (patch.shape[0] == 65)
    assert (patch.shape[1] == 65)
    print("hello I'm from python")
    input = np.full((1, index_1, 65, 65), 0.5)
    input[0, 0: index_1-1, :, :] = patch
    input[0, index_1-1, 0, 0] = qp
    input = torch.from_numpy(input).type(torch<
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值