2016-05-13 6 views
0

ことはできません> 0 ですが、xの型は4-d gpuArrayです。の変換は、私が</p> <pre><code>function y = relu(x) if x>0 y=x; else y=0.1*x; end </code></pre> <p>MathWorks社のMATLABでこのプロジェクトを実行するために、GPUを使用する際にエラーがX場合gpuArrayから論理への変換はreluで エラー(ライン5) ことができないからである

:私は並列コンピューティングツールボックスを持っていないので、私はあなたがdocumentationによると、作業する必要があることの例を提供しますどのようにこの問題を解決するために、感謝...

+0

また、あなたは何をしているのかわからないが、あなたのコードは 'x'が1x1のサイズである場合にのみ機能する。そして、実際には、1x1 gpuArrayを持つのはひどい考えです。あなたは 'y(x> 0)= x(x> 0)を意味しましたか? y(x <0)= 0.01 * x(x <0) '?それらのいずれかが真であれば、最初のifは真となるからです。 –

+0

こんにちは、以下の回答の1つを受け入れることを検討してください。それは必須ではありませんが、あなたを助けようとしている人にとっては素晴らしいことです。また、今後同様の質問が出る可能性のある人には、問題を解決したように見せます。ありがとう=) –

答えて

1

gt操作はgpuArray要素のために実装されているので、この作業する必要があります。この場合

function y = relu(x) 
if gt(x,0) 
    y=x; 
else 
    y=0.1*x; 
end 
0

、MATLABはスカラーに非スカラgpuArrayを変換する方法を知りません。 logicalを使用してifステートメントを制御します。スカラーを変換する方法を知っているので、単純に行うべきである。

関連する問題