1. ホーム
  2. lua

[解決済み] トーチ[cpuType]の文法説明

2022-02-18 23:35:18

質問

luaで最初に見たのは、次のような使い方でした。 torch[cpuType] ファイル中の fb.resnest.torchのdataloader.luaです。 :

batch = torch[cpuType](sz, nCrops, table.unpack(imageSize))

文法的な説明が見当たらないのですが。どうすれば理解できるのでしょうか?

PS: cpuType は、ファイルの中で定義されている、すなわち self.cpuType ということでしょうか。

更新しました。私のテストから torch['FloatTensor'] と同じです。 torch.FloatTensor .

解決方法は?

私は、次のように考えています。 torch[cpuType] と同じです。 torch.cpuType .

コード( https://github.com/facebook/fb.resnet.torch/blob/master/dataloader.lua#L51-L57 ) と言っているようです。 cpuType はいくつかの異なる値を取ることができます。 DoubleTensor , FloatTensor または HalfTensor . その結果、この表記法では torch.DoubleTensor または torch.FloatTensor または torch.HalfTensor . のようなものをよりコンパクトに表記するものです。

if cpuType == 'torch.DoubleTensor' then
    batch = torch.DoubleTensor(sz, nCrops, table.unpack(imageSize))
elseif cpuType == 'torch.FloatTensor' then
    batch = torch.FloatTensor(sz, nCrops, table.unpack(imageSize))
elseif cpuType == 'torch.HalfTensor' then
    batch = torch.HalfTensor(sz, nCrops, table.unpack(imageSize))