在张量流C++中将浮点数的向量传递给张量
Pass Vector of Floats to Tensor in Tensorflow C++
我有一个 LSTM 冻结图,它需要 10 个序列,每个输入序列有 10 个长度为 2002 的向量。
我的代码可以用python工作,但我不知道如何在C++中做同样的事情。
如何将向量序列转换为 LSTM 就绪的张量序列?
法典:
/// concatenate vector 1 and vector 2 features
std::vector<float> vecOne_vecTwo_concat;
/// preallocate memory
vecOne_vecTwo_concat.reserve(vecOne.size() + vecTwo.size());
/// concatenate (first half is vecOne; second half is vecTwo)
/// add vecOne
vecOne_vecTwo_concat.insert(vecOne_vecTwo_concat.end(),
vecOne.begin(), vecOne.end());
/// add vecTwo
vecOne_vecTwo_concat.insert(vecOne_vecTwo_concat.end(),
vecTwo.begin(), vecTwo.end() );
/// append to vector of features
sequence_vector_.push_back(vecOne_vecTwo_concat);
/// check if we have enough sequences to make a classification
/// here n_rnn_steps_ is 10
/// each vector in this sequence is of length 2002
/// so we have 10 vectors, each of length 2002
if (sequence_vector_.size() == n_rnn_steps_) {
/* Here we feed the concatenated vector sequence into
the session running the LSTM graph
*/
/// reset vector after we have feed it into the session
sequence_vector_.clear();
}
您可以直接访问创建的张量的内存作为指针。
Tensor aTensor(DT_FLOAT, TensorShape({ sequenceLength }));
float *p = aTensor.flat<float>().data();
然后,您可以将数据复制到该内存或使用memcpy。
相关文章:
- 使用Pybind11向Python公开Eigen::张量
- C++中的张量流对象检测
- 在官方张量流 resnet50 模型上运行 tflite 精度工具
- PyTorch C++将数据转换为张量失败
- 如何使用 c++ 更改张量流中的per_process_gpu_memory_fraction?
- 编译 GPU 的张量流示例自定义操作
- 在 Torch C++ API 中,如何快速写入张量的内部数据?
- 如何在C++中将一个特征张量乘以另一个特征张量的标量和?
- C++ ABI 兼容性问题/张量流
- 如何从内存缓冲区加载张量流图
- PyTorch C++ 前端向前返回多个张量
- 从 std::向量值创建张量<Tensor>
- 张量流错误 此文件需要编译器和库支持 ISO C++ 2011 标准
- 如何将自定义特征张量类存储到 std::vector 中?
- CUDA 高效的 nd-array(张量)切片
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 将张量的"lower diagonal"映射到矩阵,作为将矩阵的下三角形部分提取到向量的推广
- 在张量流C++中将浮点数的向量传递给张量
- 我应该如何从特征 3 中的张量切片中获取向量
- 多维数组(或张量)和向量的乘积