我试图使用嵌入在C++程序中的Python 3.5解释器从C++接收图像,并将其用作我训练的张量流模型的输入.首先,我将我的图像转换为numpy数组,然后将其发送到python.这是我的简化代码,工作正常(从这里采用的代码):
Python代码:
def multiply_fun(M):
V = M*2
print(V)
Run Code Online (Sandbox Code Playgroud)
调用上述函数的我的C++代码:
#include <Python.h>
#include <abstract.h>
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include <ndarrayobject.h>
#include <vector>
int main()
{
Py_InitializeEx(1);
PyObject* sysPath = PySys_GetObject((char*)"path");
PyObject* curDir = PyUnicode_FromString(".");
PyList_Append(sysPath, curDir);
Py_DECREF(curDir);
PyObject* python_code = PyImport_ImportModule("python_code");
PyObject* multiply_fun = PyObject_GetAttrString(python_code, "multiply_fun");
Py_XDECREF(python_code);
import_array1(-1);
npy_intp dim[] = { 5, 5 };
std::vector<double> buffer(5*5, 1);
PyObject* array_2d = PyArray_SimpleNewFromData(2, dim, NPY_DOUBLE, &buffer[0]);
PyObject* return_value1 = PyObject_CallFunction(multiply_fun, "O", array_2d);
Py_XDECREF(return_value1);
Py_XDECREF(array_2d);
Py_XDECREF(multiply_fun);
Py_Finalize();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我想使用大多数python库时,我收到一个错误.例如,对于这个python代码: …
可能重复:
MSBuild:它是什么,我什么时候需要它?
我从未使用过MSBuild,也不知道MSBuild的目的是什么.如果有人简要描述人们在什么样的情况下使用MSBuild,那将是很好的.
是什么input_dim,output_dim并input_length意味着:
Embedding(input_dim, output_dim, input_length)
Run Code Online (Sandbox Code Playgroud)
从我理解的文档:
input_dim:int> 0.词汇量的大小output_dim:int> = 0.密集嵌入的维度.input_length:输入序列的长度因此,当我的输入是一个单词时,google.com每个字符由一个整数表示[5, 2, 2, 5, 8, 3, 4, 1, 2, 9],最大字长可能是75.可能的最大字符是38.我应该如何决定input_dim,output_dim和input_length?