2016-05-04 40 views
0

fbcunnでnn.HSM階層softmaxモジュールを使用する簡単な例が気に入っています。どのようにfbcunn nn.HSMを使用するのですか

ドキュメントは存在しません(see here)。私はthis user group postを見つけましたが、どのようなクラスタ "マッピング"のように見えるべきであり、いくつかのテストがモジュールとそれに対応する基準のために存在しますが、どれもモジュールを "通常の"方法で使用していません。シンプルなフィードフォワードニューラルネットワークの最終層として使用できます。ここで

答えて

1

は動作するはずの小さな例です:この投稿のように、上記の例では、唯一の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上で動作するさらに小さな例が提供されています。

+0

こんにちはEmma、私はfbcunnをインストールしようとしています。インストール後、「fbcunnが必要です」というエラーが表示されると、async_rngトーチモジュールが存在しません。同じエラーが出ましたか?ただし、 'libfbcunn'を実行してもエラーは発生しません。それでも使用できますか?また、HSMに必要な損失関数は何ですか? –

+0

@AbhishekShivkumar私はこれがこの議論の正しい場所ではないと思うが、私はこの問題に遭遇しなかった。私の最初の推測は、fbtorchが正しくインストールされなかったことです。私の2番目のコメントは、fbcunnが本当にこれ以上メンテナンスされていない(FacebookはTensorFlowを現在使用しています)と私はそれを使用することをお勧めしません - TensorFlowに切り替えるか(特にGPUリソ​​ースで泳いでいない場合) Torchであなた自身をロールバックする –

+0

こんにちはEmma、ありがとう、あなたのコメントのためにたくさん。ただの簡単な質問です。 FacebookはTorchをもう使用しないのですか?彼らがテンソルフローに移動したのは正式なのでしょうか?本当に参考にしてください。 –

関連する問題