[英]Is there a function to decode a base64 string into tensors in tensorflow c++?
我正在嘗試將 base64 字符串數據解碼為張量,以便輸入模型進行預測。 tf python 中有一個函數(tf.image.decode_image) 用於將字符串轉換為張量,但在 tf c++ 中找不到任何 api。 如果沒有可用的 tf api,我該如何解決這個問題?
我想你想要的是首先是DecodeBase64
, DecodeRaw
是DecodeBase64
。
#include <vector>
#include "tensorflow/cc/client/client_session.h"
#include "tensorflow/cc/ops/standard_ops.h"
#include "tensorflow/cc/ops/string_ops.h"
#include "tensorflow/cc/ops/parsing_ops.h"
#include "tensorflow/core/framework/tensor.h"
int main() {
using namespace tensorflow;
using namespace tensorflow::ops;
Scope root = Scope::NewRootScope();
// Float32 array [1. 2. 3. 4. 5. 6.] base64 encoded
auto b64 = Const(root, "AACAPwAAAEAAAEBAAACAQAAAoEAAAMBA");
// Decode base64
auto decoded = DecodeBase64(root, b64);
// Parse bytes
auto parsed = DecodeRaw(root, decoded, DT_FLOAT32);
// Run
std::vector<Tensor> outputs;
ClientSession session(root);
// Get parsed data
TF_CHECK_OK(session.Run({parsed}, &outputs));
// outputs[0] == [1. 2. 3. 4. 5. 6.]
LOG(INFO) << outputs[0].flat<float>();
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.