web-dev-qa-db-ja.com

TensorflowがGPUで実行されていない

私は、スタックオーバーフローを掘り起こし、答えを探すのにかなりの時間を費やしましたが、何も見つかりませんでした =

こんにちは、みんな、

Kerasを上にしてTensorflowを実行しています。 Tensorflow GPUをインストールしたことは90%確信していますが、どのインストールを行ったかを確認する方法はありますか?

JupyterノートブックからいくつかのCNNモデルを実行しようとしていましたが、KerasがCPU上でモデルを実行していることに気付きました(タスクマネージャーをチェック、CPUは100%でした)。

私はテンソルフローのウェブサイトからこのコードを実行しようとしました:

# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))

そして、これは私が得たものです:

MatMul: (MatMul): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.783183: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] MatMul: (MatMul)/job:localhost/replica:0/task:0/cpu:0
b: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.784779: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] b: (Const)/job:localhost/replica:0/task:0/cpu:0
a: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.786128: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] a: (Const)/job:localhost/replica:0/task:0/cpu:0
[[ 22.  28.]
 [ 49.  64.]]

これは、何らかの理由でCPUで実行されていることを示しています。

GTX1050(ドライバーバージョン382.53)、CUDA、Cudnn、およびtensorflowを問題なくインストールしました。 Visual Studio 2015は互換バージョンとしてリストされているため、同様にインストールしました。

互換性のないドライバーがインストールされていることについてCUDAが言及したことを覚えていますが、正しく思い出せば、CUDAには独自のドライバーがインストールされているはずです。

編集:利用可能なデバイスをリストするためにこれらのコマンドを実行しました

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

そして、これは私が得るものです

[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14922788031522107450
]

このような多くの警告

2017-06-29 17:32:45.401429: W c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.

編集2

走ってみた

pip3 install --upgrade tensorflow-gpu

そして私は得る

Requirement already up-to-date: tensorflow-gpu in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages
Requirement already up-to-date: markdown==2.2.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: html5lib==0.9999999 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: werkzeug>=0.11.10 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel>=0.26 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: bleach==1.5.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: protobuf>=3.2.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: backports.weakref==1.0rc1 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from protobuf>=3.2.0->tensorflow-gpu)

解決済み:ソリューションのコメントを確認してください。助けてくれたすべての人に感謝します!

私はこれが初めてなので、どんな助けも大歓迎です!ありがとうございました。

23
Goofynose

TensorFlowで使用可能なデバイスを確認するには、これを使用して、GPUカードが使用可能かどうかを確認します。

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

編集また、TensorFlow Cudaバージョンを使用している場合、次の種類のログが表示されます。

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so.*.* locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so.*.*  locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so.*.*  locally
18
pfm

それは愚かに聞こえるかもしれませんが、再起動してみてください。それは私とGitHubの他の人々を助けました。

9
QtRoS

Pip経由でtensorflow-gpuを正しくインストールした後でも、GPUサポートを取得するのにまだ問題がありました。私の問題は、テンソルフロー1.5とCUDA 9.1(デフォルトバージョンのNvidiaが指示する)をインストールしたのに対して、プリコンパイルされたテンソルフロー1.5はCUDAバージョン<= 9.0で動作することです。正しいCUDA 9.0を取得するためのnvidiaのサイトのダウンロードページは次のとおりです。

https://developer.nvidia.com/cuda-90-download-archive

また、cuDNNをCUDA 9.0と互換性のあるバージョンに更新してください https://developer.nvidia.com/cudnnhttps://developer.nvidia.com/rdp/cudnn-ダウンロード

6
mboss