Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

11章 学習時間について #20

Open
t-tanakas opened this issue Apr 10, 2022 · 2 comments
Open

11章 学習時間について #20

t-tanakas opened this issue Apr 10, 2022 · 2 comments

Comments

@t-tanakas
Copy link

実装環境

google colab
CPUメモリ:約25GB
GPUメモリ:約16GB
batch_size:16
num_worker:4
subset : subset0, subset1のみ
モデル:11章model.pyのCNNのまま

11章p349のrun('p2ch11.training.LunaTrainingApp', '--epochs=1')を実行した際に処理時間が長すぎるのですが、貴殿の方ではどれくらいの処理時間となっていますでしょうか。
私の処理時間:約20min/イテレーション
1epochですらとてもじゃないですが、回らないです。妥当な学習時間なのか、以下の処理で何か誤りがありそうか教えていただきたいです。

実行内容

def run(app, *argv):
    argv = list(argv)
    argv.insert(0, '--num-workers=4')  # <1>
    argv.insert(1, '--batch-size=16')  # <1>
    log.info("Running: {}({!r}).main()".format(app, argv))
    
    app_cls = importstr(*app.rsplit('.', 1))  # <2>
    app_cls(argv).main()
    
    log.info("Finished: {}.{!r}).main()".format(app, argv))

run('p2ch11.training.LunaTrainingApp', '--epochs=1')

出力結果

2022-04-09 15:12:05,956 INFO     pid:82 nb:005:run Running: p2ch11.training.LunaTrainingApp(['--num-workers=4', '--batch-size=16', '--epochs=1']).main()
2022-04-09 15:12:07,909 INFO     pid:82 p2ch11.training:079:initModel Using CUDA; 1 devices.
2022-04-09 15:12:17,666 INFO     pid:82 p2ch11.training:138:main Starting LunaTrainingApp, Namespace(batch_size=16, comment='dwlpt', epochs=1, num_workers=4, tb_prefix='p2ch11')
2022-04-09 15:12:23,922 INFO     pid:82 p2ch11.dsets:185:__init__ <p2ch11.dsets.LunaDataset object at 0x7fa530696110>: 99128 training samples
2022-04-09 15:12:23,932 INFO     pid:82 p2ch11.dsets:185:__init__ <p2ch11.dsets.LunaDataset object at 0x7fa528629e90>: 11015 validation samples
2022-04-09 15:12:23,933 INFO     pid:82 p2ch11.training:151:main Epoch 1 of 1, 6196/689 batches of size 16*1
2022-04-09 15:12:23,946 WARNING  pid:82 util.util:221:enumerateWithEstimate E1 Training ----/6196, starting
2022-04-09 15:16:11,271 INFO     pid:82 util.util:241:enumerateWithEstimate E1 Training   16/6196, done at 2022-04-10 10:18:13, 19:04:26
2022-04-09 15:25:48,677 INFO     pid:82 util.util:241:enumerateWithEstimate E1 Training   64/6196, done at 2022-04-10 11:34:32, 20:20:45

確認事項・試したこと
・GPUがsetされていることを上記の”CUDA;1devices以外”に下記により確認
1 self.device = torch.device("cuda" if self.use_cuda else "cpu")
print(self.device)
2 !nvidia-smi
3 pytorchで書いたmnist認識コードを実行しcpu使用時よりもGPU処理時間が早くなるのを確認

@Gin5050
Copy link
Owner

Gin5050 commented Apr 24, 2022

ご連絡ありがとうございます。
返信が遅くなり大変申し訳ございません。

大変お手数ですが、以下2点をご確認いただけますでしょうか。

  • キャッシュが作成済みである。(P372、「11.7 訓練の実施」の記述)
  • 実行いただいた!nvidia-smiでGPUの使用率が80%程度になっているか

@t-tanakas
Copy link
Author

ご回答ありがとうございます。
キャッシュの作成がされていないことが問題でした。
キャッシュ作成後、学習が高速化され、google colabの実行可能時間内で終えられることを確認できました。

ただ、キャッシュの内容は、11-1の始まりでキャッシュを作成しないと実行時間とても長くなりますという記載があっても良いのではと思いました。11-1の始まりで詰まって、11-7まで読み進めて初めてキャッシュがないと学習時間が長いですと書かれていても、もっと早くその情報が欲しかったとなるかと。原書の構成など分からないのですが、一読者の意見としてご参考になれば幸いです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants