1

https://github.com/wojzaremba/lstm/blob/master/main.luaで lstm 言語モデルを使用しています

後で使用するために、トレーニングの最後にモデルを保存したいと考えています。トレーニングの最後に次の行を追加しました

torch.save(params.model_file, model)

モデルを正常に保存したようです。ただし、そのモデルをロードしてテストしようとすると、非常に困惑します。テストのためだけに、小さなトレーニング インスタンスを実行したところ、テスト セットのパープレキシティは 134 になり、モデルを保存しました。次に、保存したモデルをロードし、まったく同じテスト方法 (関数 run_test) を同じテスト セットに適用しましたが、71675.134 という大きな問題が発生しました (ランダムな重みを使用しても、問題はそれよりもはるかに少なくなります!)。重みのみを保存してロードし、保存する前にそれらを float() に変換するか、cudaTensor として保存しようとしましたが、すべて同じ結果が得られました。

モデル全体を保存した後の読み込みとテストのコードを次に示します。元の main.lua から main メソッドのみを変更しました。

local function main()
    g_init_gpu(arg)
    print('loading model from file ' .. params.model_file)
    model=torch.load(params.model_file)
    state_test =  {data=transfer_data(ptb.testdataset(params.batch_size))}
    reset_state(state_test)
    run_test()
end
4

0 に答える 0