所以我的问题是要知道是否有办法直接将vector
(但我们也可以考虑array
)的值传递给tensorflow::tensor
?
我知道的唯一方法是逐个复制每个值。
示例(2D矢量):
tensorflow::Tensor input(tensorflow::DT_FLOAT, tensorflow::TensorShape({50, 20}));
auto input_map = input.tensor<float, 2>();
for (int b = 0; b < 50; b++) {
for (int c = 0; c < 20; c++) {
input_map(b, c) = (vector_name)[b][c];
}
}
有更方便的方法吗?
例如array
到vector
:
int x[3] = {1, 2, 3};
std::vector<int> v(x, x + sizeof x / sizeof x[0]);
答案 0 :(得分:6)
std::copy_n(vec.begin(), vec.size(), input.flat<float>().data())
答案 1 :(得分:-4)
你试过tf.convert_to_tensor
吗?也许像tf.convert_to_tensor(value, as_ref=True)
https://www.tensorflow.org/versions/r0.11/api_docs/python/framework.html#convert_to_tensor