簡體   English   中英

如何使 numpy 功能適用於 cupy?

[英]How to make numpy functions workable for cupy?

各位晚上好。 我有一些以下代碼片段如下。

我正在嘗試將 numpy 函數轉換為 cupy,因為處理 numpy 需要很長時間。

但是每當我運行這段代碼時,就會出現以下問題。

/usr/local/lib/python3.8/site-packages/cupy/_core/_kernel.pyx in cupy._core._kernel._preprocess_arg() 
TypeError: Unsupported type <class 'numpy.ndarray'>

def ps_propagate(data, d, L, beam_c, out_schema = None):
 

    #handle a list of reconstruction planes
    if isinstance(d, cp.asarray(list)) or isinstance(d, np.ndarray):

        # save time by getting portion of recontruction that doesn't change
        # when z changes
        old_Ip, npix_plane = ps_propagate_plane(
            data, d[0], L, beam_c, out_schema, old_Ip=True)

        # Loop through each value of d.
        # This saves memory because only the cropped output image is stored.
        result = [
            ps_propagate_plane(data, z, L ,beam_c, out_schema, old_Ip = old_Ip)
            for z in d]
        result = concat(result, dim='z')

    else:  # if only reconstructing at one plane
        result = ps_propagate_plane(
            data, d, L ,beam_c, out_schema, old_Ip=False)

    return result

我假設 numpy 可能沒有被正確翻譯為 cupy,所以將其更改為

cp.asarray(np.ndarray) 或將 'list' 參數更改為 cp.asarray(list) 但沒有解決問題。

任何幫助和建議都會非常有幫助!!!

如果你有一個 numpy.ndarray,它存儲在 main memory 中,不能發送到 GPU。因此你需要明確地將它轉換成一個 cupy.ndarray,它可以發送到 GPU。

在此處輸入圖像描述

很難從

ps_propagate(data, d, L, beam_c, out_schema = None):

單獨猜測,哪個 arguments 表示為numpy.ndarraycupy.array ,但嘗試將轉換添加為正文中的第一件事。

如果該策略失敗,請嘗試縮小失敗的確切范圍。 然后你就會知道哪些數據在起作用。

暫無
暫無

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

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