簡體   English   中英

TypeError:無法轉換 numpy.object_ 類型的 np.ndarray

[英]TypeError: can't convert np.ndarray of type numpy.object_

如何將dtype=object的 numpy 數組轉換為 torch Tensor

array([
   array([0.5, 1.0, 2.0], dtype=float16),
   array([4.0, 6.0, 8.0], dtype=float16)
], dtype=object)

很難正確回答,因為您沒有向我們展示您如何嘗試這樣做。 從您的錯誤消息中,我可以看到您嘗試將包含對象的 numpy 數組轉換為火炬張量。 這不起作用,您將需要一個數字數據類型:

import torch
import numpy as np

# Your test array without 'dtype=object'
a = np.array([
    np.array([0.5, 1.0, 2.0], dtype=np.float16),
    np.array([4.0, 6.0, 8.0], dtype=np.float16),
])

b = torch.from_numpy(a)

print(a.dtype) # This should not be 'object'
print(b)

輸出

float16
tensor([[0.5000, 1.0000, 2.0000],
        [4.0000, 6.0000, 8.0000]], dtype=torch.float16)

只需添加上面寫的內容-

首先,您應該確保您的數組 dtype 不是“O”(對象)。

你這樣做:( 信用

a=np.vstack(a).astype(np.float)

然后你可以使用:

b = torch.from_numpy(a)

暫無
暫無

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

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