私は3次元のテンソルを持ち、すべての値が所定の範囲(この場合は0-1)に収まるようにしたいと考えています。これを行うためには、私はすでに次のコードを書かれている:テンソルフィットの値を与えられた範囲にする
function capTo1or0 (Tensor3d)
tensor_width=Tensor3d:size()[2]
tensor_height=Tensor3d:size()[3]
tensor_depth=Tensor3d:size()[1]
for i=1,tensor_width,1 do
for j=1,tensor_height,1 do
for k=1,tensor_depth,1 do
if(Tensor3d[k][i][j])>1 then
Tensor3d[k][i][j]=1
end
if(Tensor3d[k][i][j]<0.0) then
Tensor3d[k][i][j]=0.0
end
end
end
end
return Tensor3d
end
をし、それは、ただ一つ問題がある作品:パフォーマンスがひどいです、私は、これを行う以上のループのいくつかのより良い方法が存在しなければならないことを知っていますアレイ全体を手動でループすることを伴わないテンソル操作のほうがはるかに高速であることを考えると、誰もがこれをより速くする方法を知っていますか?速いこれを行う方法を誰もが知っている1.
と下0と0の上限と1の上限を超えるすべての値の下ですべての値を置き換える
An example in this is say that I have a `2-3-3` array with the values
[1, 2, 0.5][0.5,0.2,-0.2]
[0.1,0.2,0.3][1, 1, 1 ]
[-2, -1, 2 ][0.2,-5,-1 ]
then I expect an outcome of
[1, 1, 0.5][0.5,0.2,0]
[0.1,0.2,0.3][1, 1, 1 ]
[0, 0, 1 ] [0.2,0,-1 ]
?
言う私はトーチを使用したことがないが、それはドキュメントだ
アレイ/テンソルの周りにあまり理想的ではないフォーマットで申し訳ありませんが、フォーマットされていないコードについては不平を言っていましたが、キーワードが混乱していると思います。これ以上質問がある場合は、コメントを残してください。 – Thijser