當我使用GPU來在MATLAB運行此項目轉換爲從gpuArray邏輯是不可能
function y = relu(x)
if x>0
y=x;
else
y=0.1*x;
end
誤差轉換爲從gpuArray邏輯是不可能 錯誤RELU(5行) 如果x > 0 而x的類型是4-D gpuArray。 如何解決這個問題,謝謝...
當我使用GPU來在MATLAB運行此項目轉換爲從gpuArray邏輯是不可能
function y = relu(x)
if x>0
y=x;
else
y=0.1*x;
end
誤差轉換爲從gpuArray邏輯是不可能 錯誤RELU(5行) 如果x > 0 而x的類型是4-D gpuArray。 如何解決這個問題,謝謝...
我沒有並行計算工具箱,所以我會爲你提供一個例子應該工作,根據documentation:
的gt
操作是gpuArray元件來實現,所以這應該工作:
function y = relu(x)
if gt(x,0)
y=x;
else
y=0.1*x;
end
在這種情況下,MATLAB不知道如何將一個非標量gpuArray
轉換成標logical
來控制if
聲明。它不知道如何轉換成標量,因此你應該做的只是
if all(x > 0)
...
end
也,我不知道你在做什麼,但你的代碼的工作只有在'x'是大小1×1。真的,擁有1x1 gpuArray是一個可怕的想法。你是否指y(x> 0)= x(x> 0); Y(x <0的)= 0.01 * X(X <0)'?因爲如果其中任何一個是真的,第一個如果將是真的。 –
嗨,請考慮接受下面的答案之一。雖然這不是強制性的,但對於那些試圖幫助你的人來說,這是一個不錯的姿態。這也將使這個問題看起來解決了將來可能有類似問題的任何人。謝謝=) –