当我使用gpu在matlab中运行这个项目时
function y = relu(x)
if x>0
y=x;
else
y=0.1*x;
end
错误是无法从gpuArray转换为逻辑 relu错误(第5行) 如果x> 0 而x的类型是4-D gpuArray。 如何解决这个问题,谢谢...
答案 0 :(得分:1)
我没有并行计算工具箱,因此我会根据documentation为您提供应该工作的示例:
为gpuArray元素实现了gt
操作,因此应工作:
function y = relu(x)
if gt(x,0)
y=x;
else
y=0.1*x;
end
答案 1 :(得分:0)
在这种情况下,MATLAB不知道如何将非标量gpuArray
转换为标量logical
来控制if
语句。它确实知道如何转换标量,所以你应该只做
if all(x > 0)
...
end