Tensorflow-gpu2.0.0インストールとtensorflow-gpuインストール成功のテストプログラム。
オリジナルです。
テストコードです。
import tensorflow as tf
import timeit
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([10000, 1000])
cpu_b = tf.random.normal([1000, 2000])
print(cpu_a.device, cpu_b.device)
with tf.device('/gpu:0'):
gpu_a = tf.random.normal([10000, 1000])
gpu_b = tf.random.normal([1000, 2000])
print(gpu_a.device, gpu_b.device)
def cpu_run():
with tf.device('/cpu:0'):
c = tf.matmul(cpu_a, cpu_b)
return c
def gpu_run():
with tf.device('/gpu:0'):
c = tf.matmul(gpu_a, gpu_b)
return c
# warm up
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('warmup:', cpu_time, gpu_time)
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('run time:', cpu_time, gpu_time)
メッセージを出力します。
E:\anaconda3\envs\tf_gpu200\python.exe E:/pycharmProject/helloWorld.py
2019-11-04 23:06:03.772940: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_ 100.dll
2019-11-04 23:06:04.772659: [I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2019-11-04 23:06:04.797803: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2070 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.77
pciBusID: 0000:08:00.0
2019-11-04 23:06:04.797917: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-11-04 23:06:04.798299: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2019-11-04 23:06:04.798570: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2019-11-04 23:06:04.800913: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties:
name: GeForce RTX 2070 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.77
pciBusID: 0000:08:00.0
2019-11-04 23:06:04.801028: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-11-04 23:06:04.801406: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Adding visible gpu devices: 0
2019-11-04 23:06:05.265320: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-04 23:06:05.265399: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
2019-11-04 23:06:05.265443: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
2019-11-04 23:06:05.266070: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/job:localhost/replica:0/ task:0/device:GPU:0 with 6283 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2070 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5 )
/job:localhost/replica:0/task:0/device:CPU:0 /job:localhost/replica:0/task:0/device:CPU:0
/job:localhost/replica:0/task:0/device:GPU:0 /job:localhost/replica:0/task:0/device:GPU:0
2019-11-04 23:06:06.226104: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_ 100.dll
warmup: 0.6706975 0.20009929999999998
run time: 0.6638971000000001 0.000571399999999998887
Process finished with exit code 0
インストール作業です。
NVIDIAのドライバは これは のビデオインストールで、ドライバをインストールするかどうかを見に行くことができます(アドレスも出ますが、私はとても遅いので、ダウンロードボタンを右クリックして、アドレスをコピーしてからThunderboltを使ってダウンロードすると、超高速でダウンロードできます)。tensorflow-gpuをインストールしたい場合は、普通にインストールするだけで、まずcondaで仮想環境を作り、有効化し
# -i https://pypi.doubanio.com/simple
pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
先ほど、tensorflow-gpu version 2.0.0 を使わずに下位バージョンをインストールしようとし、version 1.14 をインストールし、最後に tensoflow-gpu が動くかどうかをテストしたら、最終出力が表示されました。
ImportError: Could not find 'cudnn64_7.dll'.
Webで見てみると、cudnnのバージョンとtensorflowのバージョンにコンフリクトがあることがわかります。当然どちらかを変更しなければならないので、結局手間を減らすためにtensorflow-gpu 2.0.0をインストールすることにしました。
更新しました。
pipを使ったtensorflow-gpu version 1.14.0のオリジナルインストールでは、上記のようなエラーが発生しました。突然ですが、conda install tensorflow-gpu version 1.14.0を使うと意外とうまくいくことがわかりました。しかし、condaを使ったtfのインストールは少し奇妙で、2つの意味で奇妙です。
-
pipのリスト出力とcondaのリスト出力は以下のように異なっています(お気づきでしょうか? 一方はtensorflow-gpuがインストールされており、もう一方はtensorflow-cpuがインストールされていることを示しています)。
<テーブル
システムはPYTHONPATHがanacondaディレクトリを指すように設定するので、Pipコマンドを使用してパッケージをインストールすると、デフォルトでanacondaの下にロードされます。
condaは環境としてanacondaの他に他の環境も管理します。conda は python ライブラリだけでなく c/c++ などの非 python ライブラリも管理できますが、pip は python ライブラリを管理するための公式推奨コマンドのみです。 - 一番重要なのは、condaのリストで、CPU版とGPU版の両方がインストールされていることです。これはCPUとGPUのどちらで動作するのでしょうか?
テスト結果は以下の通りです。
import tensorflow as tf
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)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))
出力はこのようになります。
WARNING:tensorflow:From E:/pycharmProject/testpy.py:6: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.
WARNING:tensorflow:From E:/pycharmProject/testpy.py:6: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.
2019-11-25 23:45:23.874021: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-11-25 23:45:23.876005: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library nvcuda.dll
2019-11-25 23:45:23.903390: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:
name: GeForce RTX 2070 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.77
pciBusID: 0000:08:00.0
2019-11-25 23:45:23.903510: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2019-11-25 23:45:23.903933: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0
2019-11-25 23:45:24.423957: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-11-25 23:45:24.424051: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187] 0
2019-11-25 23:45:24.424097: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0: N
2019-11-25 23:45:24.425108: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/ task:0/device:GPU:0 with 6292 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2070 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5 )
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce RTX 2070 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5
MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2019-11-25 23:45:24.428183: I tensorflow/core/common_runtime/direct_session.cc:296] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce RTX 2070 SUPER, pci bus id: 0000:08:00.0, compute capability: 7.5
2019-11-25 23:45:24.429366: I tensorflow/core/common_runtime/placer.cc:54] MatMul: (MatMul)/job:localhost/replica:0/task:0/device:GPU:0
2019-11-25 23:45:24.429471: I tensorflow/core/common_runtime/placer.cc:54] a: (Const)/job:localhost/replica:0/task:0/device:GPU:0
2019-11-25 23:45:24.429570: I tensorflow/core/common_runtime/placer.cc:54] b: (Const)/job:localhost/replica:0/task:0/device:GPU:0
[[22. 28.]]
[49. 64.]]
Process finished with exit code 0
上記の情報からGPUを使用していることがわかりますが、condaを使ってtensorflow-gpuをインストールすると、最も重要なcudaやcudnnなどの依存関係をダウンロードしてくれることがネットでわかっています。cudaやcudnnを自分でインストールすると明らかに大きくなるので、これが隠れた問題なのかどうかわかりません。しばらく使ってみて、問題がないかどうか確認してみます。あと、condaがダウンロードする依存関係は必ずしも一致せず、高いバージョンをダウンロードすることがあるので、condaを使ってtensorflowをインストールするときは、エラーに関連するものを検索して、バージョンの問題かどうか確認する必要があります(私はnumpyのバージョンが高すぎるという問題が発生しました)。
その他のtensorflowのテストコードです。
# -*- coding: utf-8 -*-#
# Author: weiz
# Date: 2020/3/4 9:41 am
# Name: test-tf.py
# Description:
import tensorflow as tf
import numpy as np
import time
value = np.random.randn(5000, 1000)
a = tf.constant(value)
b = a * a
c = 0
tic = time.time()
with tf.Session() as sess:
for i in range(1000):
sess.run(b)
c += 1
if c % 100 == 0:
d = c / 10
print("Calculation progress: %s%%" % d)
toc = time.time()
t_cost = toc - tic
print("Current device test time spent:%s" % t_cost)
# GPU
print("GPU on Ubuntu is 1050Ti test time is:6.079401016235352")
print("GPU on CenOs for 1080Ti test time is:4.752010345458984")
print("Ubuntu GPU for 2070s test time is:3.87003231048584") # CPU for R7-3700x run time is 8.4 seconds
print("GPU on Ubuntu for 2060s test time is:4.5342936515808105")
# CPU
print("CPU(i7-8700k) on Ubuntu test time is:11.881832599639893")
print("CPU(i9-9900k) on CenOs test time is:7.578999996185303")
<イグ
関連
-
xx.exe の 0x00007FF7A7B64FB3 でスローされた例外: 0xC0000005: 場所 0x00 を読み取るアクセス違反
-
深層学習トラッキングアルゴリズム概要
-
tensorflowをインポートしています。ImportError: libcublas.so.9.0: cannot open shared object file: No such file or director
-
参照用シークレットを呼び出す:BN層詳細解説
-
PackagesNotFoundError: 次のパッケージは、現在のチャンネルから利用できません ソリューション
-
Win10でanacondaのconda activateで環境起動時にエラーが出る場合はどうすればいいのでしょうか?
-
U-netのソースコード解説(Keras編)
-
TypeError: 'module' object is not callable solution to [Keras] call "merge".
-
tensorflow experience code error Adding visible gpu devices: 0 , モジュール 'tensorflow' には 'Session' という属性がありません。
-
AttributeError: 'tuple' オブジェクトには 'log_softmax' という属性がありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
などの警告を出しながらFaster-RCNNを実行します。RuntimeWarning: invalid value encountered in greater_equal などの警告が表示されます。
-
ターゲット検出ベースモジュール(iou/giou/ciou/diou)のIoU概要
-
undefinedGoogLeNet 論文の翻訳 - 英語と中国語で書かれています。
-
py-faster-rcnn/lib の make でエラー: コマンドラインオプション '-Wdate-time' が認識されない
-
ValueError:入力配列を形状 (450,600,3) から形状 (64,64,3) にブロードキャストできませんでした。
-
ImportError: libSM.so.6: cannot open shared object file: そのようなファイルやディレクトリはありません
-
トーチの取り付けと使用
-
Pytorch Deep Learningです。TypeError: 'builtin_function_or_method' object is not iterable エラーの解決方法
-
pytorchはエラーを報告します。ValueError: num_samples は正の整数値であるべきですが、num_samples=0 となりました。
-
ロジスティック回帰は2分法モデル