は動作するはずの小さな例です:この投稿のように、上記の例では、唯一のGPU上で動作することを
require 'torch'
require 'fbcunn'
hidden_dim = 10
input_dim = 20
batch_size = 1
gpuid = 0
function to_cuda(x) return gpuid >= 0 and x:cuda() or x end
inputs = to_cuda(torch.rand(batch_size, input_dim))
targets = to_cuda(torch.ones(batch_size):long())
-- #mapping should equal the number of possible outputs, in our case 8
-- this mapping defines 4 clusters, two size 2, one size 3, one size 1
mapping = { {1, 1}, {1, 2}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {4, 1}, {4, 2} }
linear = to_cuda(nn.Sequential():add(nn.Linear(input_dim,hidden_dim)))
hsm = to_cuda(nn.HSM(mapping, hidden_dim))
h_out = linear:forward(inputs)
s_out, err = hsm:forward(h_out, targets)
df_ds = hsm:backward(h_out, targets)
linear:backward(inputs, df_ds)
は注意(gpuid=-1
別名、CPU上で実行することはできません)。 this issueを参照してください。
さらに、GPUの計算能力は3.5以上でなければなりません。上記のリンクの例では、計算機能3.0を備えたGPU上で動作するさらに小さな例が提供されています。
こんにちはEmma、私はfbcunnをインストールしようとしています。インストール後、「fbcunnが必要です」というエラーが表示されると、async_rngトーチモジュールが存在しません。同じエラーが出ましたか?ただし、 'libfbcunn'を実行してもエラーは発生しません。それでも使用できますか?また、HSMに必要な損失関数は何ですか? –
@AbhishekShivkumar私はこれがこの議論の正しい場所ではないと思うが、私はこの問題に遭遇しなかった。私の最初の推測は、fbtorchが正しくインストールされなかったことです。私の2番目のコメントは、fbcunnが本当にこれ以上メンテナンスされていない(FacebookはTensorFlowを現在使用しています)と私はそれを使用することをお勧めしません - TensorFlowに切り替えるか(特にGPUリソースで泳いでいない場合) Torchであなた自身をロールバックする –
こんにちはEmma、ありがとう、あなたのコメントのためにたくさん。ただの簡単な質問です。 FacebookはTorchをもう使用しないのですか?彼らがテンソルフローに移動したのは正式なのでしょうか?本当に参考にしてください。 –