簡體   English   中英

如何用C ++填充張量

[英]How to fill a tensor in C++

我正在創建一個像這樣的張量:

tensorflow::Tensor a(tensorflow::DT_FLOAT, tensorflow::TensorShape());

我知道如何填寫標量值:

a.scalar<float>()() = 8.0;

但我不知道如何填補像[1,4,2]那樣的張量。

有幾個選擇。 如果張量實際上是一個小向量,就像你的情況一樣,你可以做到以下幾點:

tensorflow::Tensor a(tensorflow::DT_FLOAT, tensorflow::TensorShape(3));
a.vec<float>()(0) = 1.0f;
a.vec<float>()(1) = 4.0f;
a.vec<float>()(2) = 2.0f;

如果你想構造一個稍大和/或多維的張量,那么在tensorflow/cc/framework/ops.h聲明的tensorflow::ops::Input::Initializer有許多構造函數可以讓你從各種類型構造一個Tensor C ++常量,例如簡單的原始常量和表示多維數組的嵌套初始化列表。

例如,如果要構建2x2矩陣,可以執行以下操作:

#include "tensorflow/cc/framework/cc/ops.h"

tensorflow::ops::Input::Initializer a({{1, 2}, {3, 4}});
// a.tensor will be a Tensor with type DT_INT32 and shape {2, 2}.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM