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

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

ただいまの
回答率

89.62%

JupyterNotebookでGPUを使用し計算させる方法

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 5,898

GG_4454

score 9

Jupyterでの学習が遅すぎて本の内容が進まん!

めっちゃ初心者ですけど、最近ちょっと興味があって噂のディープラーニングを知っとこうと勉強中です。とりあえずアナコンダとJupyterNotebookを入れて「ゼロから作るディープラーニング」(オーム社)をコード入れながら読み進めてます。
しかしやっぱり計算量が多いので、学習にすっごく時間がかかるんです。今ニューラルネットワークを用いた確率的勾配降下法により、MNISTデータセットの手書き文字を学習させています。10000回ミニバッチ学習をさせるんですが、1回の学習に21秒ほどかかるので、単純計算で10000回終えるのに60時間ほどかかりそうなんです。え、そんなにパソコン動かしっぱなしにするの?でもせっかくだし学習させたいな…

そういやパソコンの中にNVIDIAのGPUが入っているぞ?

人工知能の記事をたまに見ると、NVIDIAのGPUという文言は結構な頻度で出てくる気がします。それだけこういう計算に使われるということですよね。タスクマネージャを見てもCPUはよく働いているのですがGPUは無言。どうもGPUを使ってという設定をJupyterNotebookでしなくては使ってくれないようです?じゃあ設定しよう!

TensorFlow?仮想環境?Docker?Cuda?わからん…

進出単語が多すぎ…
まず、記事を転々としているうちに、どうもGPUを使うためにはGPU用のライブラリ、TensorFlowというものが必要らしいことはわかりました(え、こういう認識で大丈夫ですか…?)。
検索すると「windows10ユーザーがJupyterNotebookでtensorflow-gpuを動かそうとした話」という良い感じの記事があったんですが…仮想環境?なんじゃそりゃ!?
仮想環境関係を調べると、Docker?とかCuda?とか、いろいろいろいろ…頭がパンクして、先人たちの知識に頼ろうとここに来ました。

TensorFlow?仮想環境?Docker?Cuda?わからん…

結局、何が「必要な知識」かわかりません。どなたか、

「JupyterNotebook」でGPUを用いて計算させる

これに必要な要素を教えてください。よろしくお願いします。

環境

すみません。必要となる情報がわからないので、お手数ですが調べ方記載の上、この情報をよこせとおっしゃってください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

解決済みですが、参考情報の提供です。

GG_4544さんが学習用に参考にしている「ゼロから作るディープラーニング」はゼロから作るというだけあって、tensorflowなどのディープラーニング用フレームワークは必要ありません。当該書籍のコードはnumpyベースなのでこれをGPU上で動くようにするにはnumpyと互換性があるGPUモジュールのcupyを使ったほうがいいかと思います。

import numpy as np

となっている部分を

import cupy as np

と書き換えれば大抵のコードはそのまま動きます。

tensorflow(正確にはtensorflowはCPU上で稼動するディープラーニング用フレームワークでGPUで稼動させるにはtensorflow-GPUが必要です)を使った場合、当該書籍のコードはほぼ使えません。新たに書き起こすことになります。したがって、hayataka2049さんの提案する方法を丸ごと採用するのであれば、お手元の書籍は忘れて、別途書籍を購入する必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

前提がわからなくて混乱していると思うので、まずは以下の検索キーワードでググってください。

  • gpgpu
  • cuda とは

あと仮想環境は(実用上は使いたくなるだろうけど)本質的には関係ないので一回忘れてください。


GPUを使うためにはGPU用のライブラリ、TensorFlowというものが必要らしいことはわかりました(え、こういう認識で大丈夫ですか…?)

だめです。以下の必要事項をすべて満たして初めて深層学習でGPUを使えます。

  1. GPGPU対応のGPUを持っている
    intelのCPUの内蔵GPUとかは(こう書くと若干語弊があるけど)駄目。NVIDIA製で新し目ならほぼオッケー(ローエンドすぎると駄目とかあったっけ?) AMD製も一応できるが若干茨の道(それでも最近は力を入れていて使えるレベルに達しつつあるとされます)
  2. 必要なソフトをちゃんと入れる
    NVIDIA+TensorFlow環境前提の場合、CUDA自体はドライバとCUDA Toolkitがあれば良いはず。次にcuDNNというソフトを入れる必要があります。それが済んだらTensorFlow入れれば大丈夫かな? 具体的なことは環境構築記事を読んでください
  3. 使うライブラリに対応したコードを書く
    GPUを使わない前提で書いたコードで動くはずもなし(CPUで深層学習フレームワークを動かすという書き方のコードなら少し設定を変えるだけでいけそうですが)

散々書いておいて申し訳ないんですが、Google Colaboratoryなら環境構築の手間なしで無料で使えるらしいので、そっちにしたらどうですか。

【秒速で無料GPUを使う】TensorFow(Keras)/PyTorch/Chainer環境構築 on Colaboratory - Qiita

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/20 00:51 編集

    回答ありがとうございます。
    やはり、一朝一夕に速度を上げたりできないのですね。また、GPUを使わない前提で書いたコードで動くはずもなし。いわれてみればその通りか…。
    ちょっと初心者には厳しそうですので、教えていただいたサイトを一通り読んでから、Google Colaboratoryなるものを使わせていただきます。
    ありがとうございました!!

    キャンセル

0

下記のサイトを参照にされてはいかがでしょうか?
私も現在GUIを勉強している最中なのですが、下記のフォルダを参照させていただいております。
https://qiita.com/nnahito/items/ad1428a30738b3d93762
ひとまず、GUIでボタンを配置させるなど基本的なところから書かれてますので、
参照してみて、そこから発展させてみてはいかがでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/20 00:22

    あはは、「GUI」ではなく、「GPU」です(笑)
    面白い回答ありがとうございます。
    GUIの勉強、頑張ってください。

    キャンセル

  • 2019/01/20 01:02

    大変失礼しました。勘違いでした。

    キャンセル

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

  • ただいまの回答率 89.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる