質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

2273閲覧

GooglecolabでCycleGANを実行したのに実行時間が長すぎます。

naruto1010

総合スコア2

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2021/11/02 16:47

編集2021/11/02 16:49

以下のサイトに従ってGooglecolabでPytorchのCycleGANを実行したのですが1エポックに約30分も時間がかかってしまいます。このサイトでは1エポックに6分くらいかかると書いてありました。
参考にしたサイト
ほかのサイトでも1エポックに6分当たりかかると書かれており私の実行時間よりとても短いです。なぜ私が実行すると30分もかかってしまうのかが分からず困っております。
GPUも設定しましたし、上のサイトに忠実に実行したはずなのに実行時間だけ大きく異なります。
実行したときのパラメータは以下の通りです。
パラメータ1
パラメータ2
バッチサイズは4にしてあり、バッチサイズを大きくしたら早くなるのではと思い32にしてみたのですが、バッチサイズを大きくするとRuntimeerror:cuda error:outofMemoryとなりエラーになってしまいます。
また、実行した出力画面は以下のとおりです。1エポックまで実行して中断しました。1エポックに1657秒かかってます。
出力画面
機械学習の知識があまりないので原因が全く分からないのですが、誰か分かる方がいましたら教えていただけますか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/11/03 12:59 編集

Google Colabで割り当てられたGPUの機種が違うのかもしれません https://colab.research.google.com/github/junyanz/pytorch-CycleGAN-and-pix2pix/blob/master/CycleGAN.ipynb の「Training」に「I've found that a batch size of 16 fits onto 4 V100s and can finish training an epoch in ~90s.」と書かれてますので、V100が4台で約90秒なら、V100が1台ならその4倍の90*4=360秒=6分くらいになると予想でき、 > このサイトでは1エポックに6分 と合います 先ほどGoogle Colabで !nvidia-smi を実行して確認したら、K80が割り当てられてました https://images.nvidia.com/content/technologies/deep-learning/pdf/NVIDIA-Tesla-V100-JPN.pdf の「ディープラーニングの学習を1日で」と書かれてるグラフによると、V100はK80の44/7.4≒6と、約6倍高速なようです したがって、V100で6分かかるのがK80だと6*6=36分くらいかかる予想になり、 > 1エポックに約30分 とだいたい合います https://www.orangeitems.com/entry/2021/05/06/164531 によると、Colab ProだとV100が割り当てられることがあるようです 高速なGPUが使いたければ、お金を払ってください、ということなのかもしれませんね
naruto1010

2021/11/08 05:29

本当にありがとうございます!gpuが違うのかなとは思いましたが、まさかこんな実行時間に差があるはずないしと思っていましたが計算したら実行時間にそんなに差が出ちゃうんですね。。Googlecolab以外の方法がだめそうでしたらGooglecolabproに加入してみたいと思います。とても分かりやすい説明ありがとうございました。
guest

回答1

0

ベストアンサー

Google Colabで割り当てられたGPUの機種が違うのかもしれません

CycleGAN
の「Training」に「I've found that a batch size of 16 fits onto 4 V100s and can finish training an epoch in ~90s.」と書かれてますので、V100が4台で約90秒なら、V100が1台ならその4倍の90*4=360秒=6分くらいになると予想でき、

このサイトでは1エポックに6分

と合います

 
先ほどGoogle Colabで下記を実行して確認したら、K80が割り当てられてました

python

1!nvidia-smi

NVIDIA TESLA V100
の「ディープラーニングの学習を1日で」と書かれてるグラフによると、V100はK80の44/7.4≒6と、約6倍高速なようです
したがって、V100で6分かかるのがK80だと6*6=36分くらいかかる予想になり、

1エポックに約30分

とだいたい合います

投稿2021/11/08 08:06

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問