拯救者Y720-gtx1050-window10-配置tensorflow-gpu環境


https://www.cnblogs.com/31415926535x/p/10536572.html

概述

因為選修了數字圖像這門課,,要做一個人臉識別的項目,和室友打算利用tensorflow來訓練一個模型,,然后剛開始的環境配置就折騰了一天,,

現在記錄一下大致的流程和遇到的坑,,(只是簡略的寫寫配置的要點,,具體的信息別的博客講的很清楚了,,,

最后的環境: win10x64 + gtx1050 + CUDA9.0 + cuDNN9.0 + Anaconda + Tensorflow1.9.0

英偉達官網你會發現1050不能使用它的CUDA,,但實際上是可以使用的,,后面可以看出算力大概是6.1,,

配置流程

只列出必要的流程以及我遇到的坑,,

詳細的安裝過程參考別人的博客:

Win10+1050Ti配置Tensorflow教程

Win10下Tensorflow(GPU版)安裝趟坑實錄

win10搭建tensorflow-gpu環境

tensorflow 安裝GPU版本,個人總結,步驟比較詳細

在Windows 10上安裝TensorFlow並支持GPU的最佳方式(無需安裝CUDA

Win10+cuda8.0+cudnn5.1+tensorflow-gpu1.2.0+gtx1050ti,tensorflow環境搭建與配置

tensorflow 使用CPU而不使用GPU的問題解決

Python配置

首先是Python的配置,,Python很簡單就可以弄好了,,去官網下載win的安裝器,,點一點等一等就行了,,

Anaconda安裝

這個也是直接去官網下載安裝就行了,,,安裝的過程可能會很長,,所以要一直等,,會出現終端,,不要叉掉,,等就可以了,,,(貌似這玩意兒2個多G

CUDA9.0安裝

CUDA9.0下載地址

這是一個大坑!!!被這玩意坑了一次,,,

首先,英偉達的官網你直接進去去下CUDA只顯示最新版10.1,,,然后我就想着有新的就直接上新版本的算了,,,后來才發現Tensorflow到現在還不支持10.0的版本,,,最多只能用9.0的,,

還有一個坑,,,選擇的安裝器是第一個(Base Installer)還有選擇在線安裝(exe(Network)),,,

最后,,因為我的C盤不怎么空余了,,,所以就把這玩意裝到了別的盤,,這樣的話 系統環境變量 得重新修改,,

參考博客1

參考博客2

都可以

cuDNN v7.5.0 for CUDA 9.0

這玩意也是一個坑,,,

因為CUDA安裝的是9.0版本的,,所以這玩意也只能裝對應的版本,,,

下載地址

會要你注冊賬號,,最主要的是10.0版本的可以直接下載,,換成9.0的就得要梯子,,,驚了,,,

下載好后解壓,,把里面的那三個文件復制到cuda對應的文件夾里,,參考上面那幾個博客的操作

vs2017

看到網上有人說配置環境需要vs來編譯什么的,,,因為我在之前就已經裝好了vs2017,,所以就省略了這一步的安裝,,沒有測試不裝會發生什么,,

安裝Tensorflow-gpu--1.9.0 並測試

之前的所有東西都弄好后就可以安裝 Tensorflow 了,,,

打開 Anaconda Prompt

因為地下室這里網還不錯,,所以就沒有去配置清華的鏡像,,

安裝Tensorflow: conda install tensorflow-gpu==1.9.0 因為現在(2019-3-15)Tensorflow已經是1.13.0版本了,,直接安裝的話就會是最新版,,,不知道怎么回事,,最新版的話我這里在之后不會調用gpu來運行,,用這個版本之后就可以了(CUDA的鍋?),,(也有可能是我在改變了其它的因素的原因,,,待驗證

創建運行環境; conda create -n tensorflow-gpu python=3.6 等待安裝就行了,,

激活環境: conda activate tensorflow-gpu

驗證

然后打開python,,

輸入:

import tensorflow as tf         //0
hello = tf.constant('hello')
sess = tf.Session()             //1
print(sess.run(hello))          //2
sess.close()
  • 在輸完0代碼之后,會停頓一會,,
  • 在輸完1代碼之后,會顯示一些信息,,如果說有有關gpu的信息的話證明調用gpu成功,,否則的話只有一條cpu的信息,,可能之前的安裝有問題,,重新安裝試試,,(我就是因為這個重裝了好幾遍
  • 在輸完2代碼之后,顯示 b'hello'

1的輸出類似這樣:

2019-03-15 13:03:55.881573: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-03-15 13:03:56.695820: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1392] Found device 0 with properties:
name: GeForce GTX 1050 major: 6 minor: 1 memoryClockRate(GHz): 1.493
pciBusID: 0000:01:00.0
totalMemory: 2.00GiB freeMemory: 1.61GiB
2019-03-15 13:03:56.702429: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1471] Adding visible gpu devices: 0
2019-03-15 13:03:57.517589: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-03-15 13:03:57.521414: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:958]      0
2019-03-15 13:03:57.523379: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0:   N
2019-03-15 13:03:57.525486: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1084] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1359 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1)

也可以這樣驗證:

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

會輸出一長條的信息,,例如:

>>> from tensorflow.python.client import device_lib
>>> print(device_lib.list_local_devices())
2019-03-15 13:13:03.527577: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1471] Adding visible gpu devices: 0
2019-03-15 13:13:03.545230: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-03-15 13:13:03.563464: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:958]      0 
2019-03-15 13:13:03.576112: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0:   N 
2019-03-15 13:13:03.587662: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1084] Created TensorFlow device (/device:GPU:0 with 1359 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 5406329819980989395
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 1425578393
locality {
  bus_id: 1
  links {
  }
}
incarnation: 3552327620198962820
physical_device_desc: "device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1"
]

如果失敗的話(也就是只有cpu運算)就是這樣:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}

再或者這樣:

import tensorflow as tf
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([2.0, 3.0], name="b")
result = a + b
print(result)

sess = tf.InteractiveSession()
print(result.eval())
sees.close()

正常情況下也會顯示gpu等信息

>>> import tensorflow as tf
>>> a = tf.constant([1.0, 2.0], name="a")
>>> b = tf.constant([2.0, 3.0], name="b")
>>> result = a + b
>>> print(result)
Tensor("add_1:0", shape=(2,), dtype=float32)
>>> sess = tf.InteractiveSession()
2019-03-15 13:19:57.500304: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1471] Adding visible gpu devices: 0
2019-03-15 13:19:57.514303: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-03-15 13:19:57.530082: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:958]      0 
2019-03-15 13:19:57.539267: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0:   N 
2019-03-15 13:19:57.547441: I C:\users\nwani\_bazel_nwani\ujdkfsks\execroot\org_tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1084] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1359 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1)
>>> print(result.eval())
[3. 5.]

使用

每次使用tensorflow時,,因為我們是在Anaconda的虛擬的一個環境里運行tensorflow+python,,所以要先激活環境:conda activate tensorflow-gpu,,,(這么說先前直接安裝的python不僅版本過高,,而且沒用上)

對了必須要在cmd里使用,,powershell貌似不行,,,進入powershell輸入 cmd 切換到cmd就行了,,,激活環境后前面會多一個環境名: (tensorflow-gpu),,這樣再進入python等等,,,

結束

這樣環境的配置基本就完了,,大概占了12個多G的存儲空間,,,emmmm心疼硬盤ing

從昨天晚上到今天上午,,折騰了幾遍,,,最后還是弄好了,,,最怕的不是出各種各樣的錯誤,,而是放棄吧,,,畢竟很多人都在弄這個,,會遇到一樣的狀況,,總會找到解決的方法的,,,

(猜測:安裝anaconda時,,發現里面有cuda了,,可能不需要安裝cuda就可以,,留坑)
(end)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM