libtorch中資料轉換memcpy資料大小匹配

2021-10-12 17:25:12 字數 1304 閱讀 9115

libtorch資料轉換經常使用memcpy函式

cv::mat resultimg

(img_h, img_w, cv_8uc3)

;std::

memcpy((

void

*)resultimg.data, out_tensor.

data_ptr()

,sizeof

(torch::ku8)

* out_tensor.

numel()

);

需要注意的是在c++中float大小是4個位元組

但是libtorch中的資料型別並非如此

std::cout <<

sizeof

(torch::ku8)

<< endl;

std::cout <<

sizeof

(torch::ki8)

<< endl;

std::cout <<

sizeof

(torch::ki16)

<< endl;

std::cout <<

sizeof

(torch::ki32)

<< endl;

std::cout <<

sizeof

(torch::ki64)

<< endl;

std::cout <<

sizeof

(torch::kf16)

<< endl;

std::cout <<

sizeof

(torch::kf32)

<< endl;

std::cout <<

sizeof

(torch::kf64)

<< endl;

因此使用memcpy拷貝float型別資料時需要把位址大小乘4,

但是似乎不用關心資料位址對齊問題,可能是由於實際資料大小為4個位元組,

但是sizeof函式求出的資料大小有問題

cv::mat resultimg

(img_h, img_w, cv_32fc1;

std::

memcpy((

void

*)resultimg.data, out_tensor.

data_ptr()

,4*sizeof

(torch::kf6)

* out_tensor.

numel()

);

真是一萬隻草泥馬呼嘯而過

PHP中的資料轉換

我們在寫程式的過程中常常遇到兩個不同的資料型別進行比較的情況,那麼遇到這樣的問題我們該如何解決呢?下面我就給大家舉幾個簡單的小例子來解決這個問題?其實在不同的資料型別之間的比較只發生在標量型別之間,php的資料型別有這麼幾種 php 支援八種原始型別 type 四種標量型別 string 字串 in...

java中json資料轉換

需求 很多時候我們呼叫其他服務的介面,得到的是json資料,有時候json資料還巢狀了好幾層,我們如何拿到我們想要的資料呢。解決 使用第三方庫,將json資料轉換為我們需要的資料。匯入依賴 jsonobject.fromobject result 將字串result轉換為json物件 jsonobj...

C 中資料進製轉換

一 十進位制資料轉換為n進製資料 十進位制資料value,可以用如下公式表示為n精緻的資料。value xn math.pow item,n xn 1 math.pow item,n 1 x2 math.pow item,1 x1 math.pow itm,0 其中xn的範圍為 0 xn item ...