无法从gpuArray转换为逻辑

时间:2016-05-13 07:27:32

标签: matlab deep-learning

当我使用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。 如何解决这个问题,谢谢...

2 个答案:

答案 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