3D數(shù)據(jù)協(xié)同挖掘"
總有人一直問小象,SOLIDWORKS對電腦配置有哪些要求呀?
這不,小象整理了一份詳細(xì)關(guān)于SOLIDWORKS軟硬件配置的文章,供大家參考哦~
很多公司的信息中心和設(shè)計部門并不了解SOLIDWORKS對計算機硬件和操作系統(tǒng)的需求,也不清楚SOLIDWORKS不同模塊對計算機硬件需求的區(qū)別,經(jīng)常出現(xiàn)花大價錢購買的計算機/圖形工作站其實沒有必要。
Tips:我對蔡徐坤發(fā)誓我不是賣電腦的,不會像電腦城吆喝的人什么也不懂,只會讓你買貴的~~~~~~
SOLIDWORKS 3D CAD是它最優(yōu)秀的產(chǎn)品,我們以3D CAD為例,為了使三維軟件順暢運行,需要配備與設(shè)計、計算規(guī)模相當(dāng)?shù)挠嬎銠C硬件,相關(guān)硬件對SOLIDWORKS性能的影響由大到小排序如下:
內(nèi)存>CPU>顯卡>硬盤和顯示器
下面分別闡述,并在最后給出建議,你們看錢包酌情選擇。
內(nèi)存
對于復(fù)雜零部件和有限元分析而言,三維軟件對內(nèi)存的需求很大,一旦物理內(nèi)存不足,系統(tǒng)將自動啟用虛擬內(nèi)存。由于虛擬內(nèi)存位于硬盤上,所以運算效率會大大降低, 并且出錯率大大增加。以HPZ400工作站進行某次有限元分析為例,當(dāng)物理內(nèi)存耗盡,系統(tǒng)啟動虛擬內(nèi)存前后,監(jiān)控到的數(shù)據(jù)讀寫的硬錯誤率由0次/秒激增到最大900次/秒,不僅大大降低分析的效率,也為結(jié)果的可靠性帶來隱患。
(1)三維結(jié)構(gòu)設(shè)計對內(nèi)存的需求。
具體的需求跟設(shè)計產(chǎn)品復(fù)雜度和設(shè)計方法有關(guān)(初學(xué)者和專業(yè)者的區(qū)別),例如采用自下而上(Bottom-Up)設(shè)計方法,對內(nèi)存的需求如下。
4G:單一零件特征<200個,單一裝配體包含零件數(shù) <1000個。
8G:單一零件特征<1000個,單一裝配體包含零件數(shù) <10000個。
12G以上:單一零件特征>1000個,單一裝配體包含 零件數(shù)>10000個。
(2)有限元分析對內(nèi)存的需求。
對于SW Simulation(仿真)入門級分析而言,4G內(nèi)存也能滿足需求,但是對于大自由度的復(fù)雜問題,劃分網(wǎng)格、求解和結(jié)果顯示都需要更多的內(nèi)存。 例如,使用直接解算器(Direct Sparse solver)求解20萬自由度的靜態(tài)算例,最多時需要1G內(nèi)存。對于64位操作系統(tǒng)而言,4G內(nèi)存的最大極限是求解800萬自由度的算例(采用FFEPLUS結(jié)算器)。大家可以用以下方法估算求解時內(nèi)存的需求量:直接解算器,每200個自由度需要1M內(nèi)存;FFEPLUS結(jié)算器,每2000個自由度需要1M內(nèi)存,具體需求的數(shù)量根據(jù)分析類型的不同會略有不同。有限元為主要任務(wù)的計算機推薦標(biāo)準(zhǔn)配置12G或24G 內(nèi)存。
當(dāng)文檔在SOLIDWORKS中打開時,其數(shù)據(jù)就會被加載到內(nèi)存當(dāng)中,你需要足夠的內(nèi)存避免SOLIDWORKS去使用物理硬盤(虛擬內(nèi)存),內(nèi)存的速率是以MHz為單位的,對于SOLIDWORKS使用來說內(nèi)存的容量是越大越好的,主要選擇因素是根據(jù)預(yù)算來選擇,一般來說速度越高越新的內(nèi)存價格會越高。目前來說購買8-16G大小的內(nèi)存是性價比最高的選擇。如果是使用SOLIDWORKS進行大規(guī)模分析計算或者是渲染計算,我們建議同時使用ECC。
推薦:使用最小8G的DDR3或者DDR4內(nèi)存。
CPU
三維結(jié)構(gòu)設(shè)計和有限元分析對CPU的需求都比較高,CPU的主要參數(shù)是主頻和核心數(shù)量,對于SOLIDWORKS來說,主頻的重要性要高于內(nèi)核的數(shù)量。
(1)三維結(jié)構(gòu)設(shè)計對CPU的需求。
目前,SOLIDWORKS三維結(jié)構(gòu)設(shè)計的主模塊并不能完全利用雙核及以上的CPU,僅能完全利用其中一個內(nèi)核。因此,以三維結(jié)構(gòu)設(shè)計為主選配的CPU時,優(yōu)先選擇高主頻的雙核四線程CPU。如圖1所示三維結(jié)構(gòu)設(shè)計能有效利用25%的CPU 資源。如果購買配置支持雙CPU,每個CPU具備8個線程的HP Z800工作站進行三維結(jié)構(gòu)設(shè)計,您只能利用6.25%的CPU資源,那將造成資金的極大浪費。
圖1 三維建模CPU利用率截圖
SOLIDWORKS的渲染和PDM模塊可以有效的利用多核CPU,例如:選擇四核CPU,SOLIDWORKS的渲染模塊(PhotoView360) 可以同時啟用4個內(nèi)核并行運算,充分利用CPU對渲染進行加速,渲染效率比同主頻單核CPU提升近4倍,如圖2所示。
圖2 Photo View360CPU利用率截圖
三維結(jié)構(gòu)設(shè)計為主要任務(wù)的計算機推薦標(biāo)準(zhǔn)配置主頻3.0以上、雙核四線程的CPU。
(2)有限元分析對CPU的需求。
有限元分析數(shù)據(jù)計算的需求十分巨大,對CPU的要求也很高,對于SOLIDWORKSSimulation模塊而言,分析的種類和求解器不同,對CPU的利用率也不同,總體而言,選擇CPU的準(zhǔn)則還是主頻優(yōu)于內(nèi)核數(shù)量。
從SOLIDWORKS2011開始,有限元分析的網(wǎng)格劃分器也能有效的支持多核CPU,對于單實體零件的網(wǎng)格劃分而言,多核利用率不高,對于多實體零件和大型裝配體的網(wǎng)格劃分,多核的利用率相對較高一些。SOLIDWORKS Flow Simulation可以更加高效地利用多CPU或者多計算機并行計算,建議在保證主頻的情況下,增加CPU內(nèi)核數(shù)量。結(jié)構(gòu)分析、運動分析為主要任務(wù)的計算機推薦標(biāo)準(zhǔn)配置主頻3.0以上、雙核四線程的CPU。 流體分析為主要任務(wù)的計算機推薦標(biāo)準(zhǔn)配置主頻3.0以 上、四內(nèi)核以上CPU或雙CPU。
I5/I7 VS Xeon — 志強處理器(Xeon)其主要的優(yōu)勢在于對于錯誤糾正代碼緩存的支持(ECC),此功能可以糾正一些隨機的硬件錯誤并且某些超過6核心CPU在處理分析任務(wù)及處理大規(guī)模問題時可以得到更好性能。
推薦:使用高頻率的4核I5/I7CPU或者是同等級的志強處理器(Xeon)顯卡
顯卡的性能直接影響SOLIDWORKS旋轉(zhuǎn)、移動和縮放等顯示操作,如果顯卡性能不能滿足需求的話,SOLIDWORKS的部分功能將不可用,軟件的操作性體驗也會下降。有限元分析前處理對顯卡的需求相對較低一些,但是分析結(jié)果的后處理(如顯示網(wǎng)格、應(yīng)力云圖和探測器等功能)對顯卡要求相對比較高。建議選擇通過SOLIDWORKS認(rèn)證的專業(yè)顯卡。
顯卡的種類可大致分為:集成顯卡、獨立家用顯卡和專業(yè)繪圖顯卡,下面分別介紹它們的性能。
(1)集成顯卡。
集成顯卡集成在主板上,沒有專用的顯存,需要在系統(tǒng)物理內(nèi)存上劃分出一部分作為顯存使用,所以運算效率很低。集成顯卡不支持OpenGL運算,3D性能很差。對于采用集成顯卡的計算機,SOLIDWORKS會自動啟動“軟件OpenGL”,所有OpenGL運算將由CPU完成,加重了CPU負(fù)擔(dān)。SOLIDWORKS的放大鏡、SpeedPak和RealView等功能將不能使用,并且軟件容易出現(xiàn)顯示問題或者崩潰的情況。
(2)獨立家用顯卡。
獨立家用顯卡有獨立的顯存,游戲性能較好,但是僅支持部分OpenGL指令,復(fù)雜OpenGL運算指令還是需要由 CPU完成。獨立家用顯卡不支持RealView功能,部分支持 SpeedPak功能。如果簡單的三維結(jié)構(gòu)設(shè)計(裝配體零件數(shù) <1000個)或者有限元分析的話,采用獨立家用顯卡也能滿足需求。但是獨立家用顯卡不能滿足大型裝配設(shè)計和大自由度有限元分析的需求。
(3)專業(yè)繪圖顯卡。
專業(yè)繪圖顯卡支持OpenGL全集指令,顯示運算速度高,精度高,能滿足各種大型裝配設(shè)計和大自由度有限元分析的需求,建議用戶采用通過SOLIDWORKS認(rèn)證的專業(yè)圖形顯卡,具體顯卡型號可以登錄SW官網(wǎng)查詢。www.solidworks.com
(4)顯卡故障診斷。
當(dāng)經(jīng)常出現(xiàn)顯示黑塊、花屏等軟件崩潰等情況時,需要考慮是不是顯卡問題,診斷的方法如下:
點擊“開始”→ “ 程序 ” → “SOLIDWORKS” → “SOLIDWORKS工 具”→“SOLIDWORKS RX”,啟動SOLIDWORKS RX診斷工具,點擊“點擊此處以軟件OpenGL模式啟動SOLIDWORKS” 命令
啟動SOLIDWORKS后,如果故障排除,說明軟件崩潰問題在顯卡上,重新安裝官方的驅(qū)動程序或者更換顯卡就可以解決問題。 簡單零部件設(shè)計(單一零件特征<200個,單一裝配體 包含零件數(shù)<1000個)任務(wù)為主的計算機可以采用獨立家用顯卡或者入門級專業(yè)顯卡。 復(fù)雜零件、大型裝配、渲染、動畫和有限元分析等任務(wù)的計算機,推薦采用中高級專業(yè)顯卡,任務(wù)越繁重,需要顯卡的檔次越高級。
工作站級別的專業(yè)顯卡當(dāng)中SOLIDWORKS只推薦使用NVIDIA Quadro系列顯卡。由長時間的驗證包括驅(qū)動的穩(wěn)定性和性能因素,只支持和推薦使用NVIDI Quadro系列顯卡。AMD雖然也有工作站級別的專業(yè)顯卡可供選擇,但是它們無法支持SOLIDWORKSVisualize的渲染加速功能,所以推薦使用NVIDIA的專業(yè)顯卡。 (推薦推薦推薦!沒有廣告費哈,小象生怕別人說我賣電腦的,愁~)
推薦:使用NVIDIA Quadro P1000或者以上型號的顯卡。
硬盤
在計算機的硬件中,最被忽視的硬件就是硬盤。對于簡單的三維設(shè)計和分析而言,普通IDE或者SATA硬盤就可以滿足需求,但是在處理大型裝配體、復(fù)雜有限元分析、渲染和動畫過程中,需要從硬盤存取海量數(shù)據(jù),如果硬盤的數(shù)據(jù)傳輸率很低的話,將會大大影響運算的效率。
選用硬盤時,優(yōu)先選擇7200轉(zhuǎn)以上的高速硬盤。具體到硬盤的種類,不同種類的硬盤性能也不相同,整體而言
SCSI硬盤>SAS硬盤>SATA硬盤>IDE硬盤
由于SCSI硬盤主要應(yīng)用于企業(yè)級服務(wù)器,所以,對于工作站而言,優(yōu)先選用1萬轉(zhuǎn)以上的SAS硬盤。 如果條件允許的情況下,采用RAID0以并聯(lián)磁盤陣列方式來提高硬盤的讀/寫效率。RAID0代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續(xù)的數(shù)據(jù)分散到多個磁盤上并行存取。這樣,系統(tǒng)有數(shù)據(jù)請求就可以被多個磁盤并行的執(zhí)行,每個磁盤執(zhí)行屬于它自己的那部分?jǐn)?shù)據(jù)請求。這種數(shù)據(jù)上的并行操作可以充分利 用總線的帶寬,顯著提高磁盤整體存取性能。例如,n塊硬盤以并聯(lián)方式組成RAID0磁盤陣列,磁盤的讀/寫速度可以提高n倍。
需要注意的是:RAID0磁盤陣列數(shù)據(jù)損壞的概率隨硬盤數(shù)量而倍增,所以僅用于對性能需求高于數(shù)據(jù)安全性要求的圖形工作站,不能應(yīng)用于存儲備份數(shù)據(jù)為主的服務(wù)器。
固態(tài)硬盤作為新興的存儲介質(zhì),這幾年發(fā)展十分迅猛,讀取速度和容量提升的同時,技術(shù)也越來越成熟,它具有存取速度快的特點,但是價格較為昂貴。
建議搭配機械硬盤使用,一塊固態(tài)硬盤分成兩個分區(qū),一個分區(qū)用于系統(tǒng)分區(qū),一個分區(qū)用于存放準(zhǔn)備分析計算的臨時數(shù)據(jù),機械硬盤用于存放計算完成后的數(shù)據(jù)備份。
在預(yù)算可以的情況下我們推薦至少在系統(tǒng)和SOLIDWORKS主程序位置使用固態(tài)硬盤,這樣可以使SOLIDWORKS的運行能至少提高25-30%
我懶得找表情了
推薦:1個高速的固態(tài)硬盤安裝系統(tǒng)和SOLIDWORKS程序+一個傳統(tǒng)的7200轉(zhuǎn)的機械硬盤作為存儲。
操作系統(tǒng)
從SOLIDWORKS 2015開始,SolidWorks只支持64位操作系統(tǒng)了,我們現(xiàn)在建議使用Windows 10專業(yè)版本或者企業(yè)版本。
推薦:Windows 10專業(yè)版或者企業(yè)版(64Bit)
顯示器
顯示器并不影響三維機構(gòu)設(shè)計和有限元分析的速度,但是對操作者的體驗影響比較大。對于機械類三維設(shè)計和有限元分析為主要任務(wù)的計算機而言,顯示器越大越好(廢話),其他的性能指數(shù)要求并不高(有渲染和動畫需求的除外)。
如果購買一個新的顯示器,建議選擇分辨率為1920x1080,最小尺寸為21.5寸的顯示器。
請注意如果分辨率超過1920x1080(比如4K顯示屏)會在SOLIDWORKS 2018中得到更好的顯示支持,同時如果使用更高分辨率的顯示后不建議使用小于27寸的大小。
對于筆記本來說建議使用15.6-17.3寸分辨率為1920x1080的規(guī)格。低分辨率意味著更少的繪圖區(qū)域空間和界面。對于筆記本來說我們不建議使用4K顯示屏,對于15-17寸的屏幕來說,1920x1080是最合適的顯示分辨率,可以得到最合適的界面及工具按鍵大小。
計算機硬件瓶頸的判斷
可以使用以下方法分析系統(tǒng)瓶頸,有針對性地升級計算機系統(tǒng)。
(1)在SOLIDWORKS使用過程中啟動Windows任務(wù)管理器,在性能頁,如果CPU的占用率經(jīng)常在100%,那么系統(tǒng)瓶頸就在CPU或顯卡,建議升級CPU或顯卡;如果系統(tǒng)物理內(nèi)存大部分被占用,虛擬內(nèi)存使用量又很大,操作過程中硬盤燈頻繁閃爍,這說明系統(tǒng)瓶頸在內(nèi)存,建議擴大內(nèi)存。
(2)使用SOLIDWORKS RX(性能診斷)工具測試您的計算機系統(tǒng)是否滿足SOLIDWORKS的需求,該工具得出更加詳細(xì)的診斷結(jié)果和建議。
(3)使用SOLIDWORKS工具→SOLIDWORKS性能測試工具,對計算機性能進行測試。通過對比不同計算機的測試結(jié)果,可以為選購計算機或硬件提供參考依據(jù)。
來源|達索系統(tǒng) SOLIDWORKS
今天的內(nèi)容對您有幫助嗎?
歡迎留言
何不拆機評價評價情況下鑒別macbook pro(13-15款)
1.首先看系統(tǒng)頁面,查看系統(tǒng)參數(shù)是否和蘋果官網(wǎng)頁面介紹的參數(shù)一致(包括處理器,內(nèi)存 顯卡 序列號)
2.查看本機硬件概覽頁面查看產(chǎn)品標(biāo)識符是否與官網(wǎng)的同款一致。
3 .13. 14 15款查看觸控板頁面 15款的觸控板姑姑有五個選項而13 14款只有三個選項。
4.13-15款Macbook pro每一個配置序列號后四位都不一致,具體可以百度查看。
5鑒別硬盤 正品設(shè)置里面儲存頁面設(shè)備名稱和介質(zhì)名稱必須是Apple開頭,Sata頁面有顯示信息而Nvme頁面會沒有信息。正品儲存空間只會顯示多少GB閃存,不會顯示其他信息
6.小技巧,如何區(qū)分電腦是否拆機,除了可以看螺絲之外,也可以看一下耳機孔位置是否有偏移。
是機器未來的第2篇文章,由機器未來原創(chuàng)
寫在前面:
? 博客簡介:專注AIoT領(lǐng)域,追逐未來時代的脈搏,記錄路途中的技術(shù)成長!? 專欄簡介:記錄博主從0到1掌握物體檢測工作流的過程,具備自定義物體檢測器的能力? 面向人群:具備深度學(xué)習(xí)理論基礎(chǔ)的學(xué)生或初級開發(fā)者? 專欄計劃:接下來會逐步發(fā)布跨入人工智能的系列博文,敬請期待? Python零基礎(chǔ)快速入門系列? 快速入門Python數(shù)據(jù)科學(xué)系列? 人工智能開發(fā)環(huán)境搭建系列? 機器學(xué)習(xí)系列? 物體檢測快速入門系列? 自動駕駛物體檢測系列? ......
@[toc]
windows GPU深度學(xué)習(xí)開發(fā)環(huán)境的安裝包含顯卡驅(qū)動、cuda、cuDNN深度學(xué)習(xí)加速包、anaconda、tensorflow的安裝以及安裝源的配置,理解了本文,還可以安裝pytorch等其他開發(fā)框架。
fengmian
Nvidia顯卡、顯卡驅(qū)動、cuda工具套件、cuDNN工具包四部分構(gòu)成。
目前支持深度學(xué)習(xí)的顯卡基本上就是N卡,不論是硬件性能,還是最新的論文支持基本上都是N卡,所以不用在這里糾結(jié)了,采購時一定要上N卡。
下載地址:https://www.nvidia.com/download/index.aspx?lang=en-us
2
根據(jù)提供的下載鏈接選擇電腦對應(yīng)的最新顯卡驅(qū)動安裝即可,這里需要記錄一下顯卡驅(qū)動的版本,安裝cuda要用,我這臺老電腦顯卡驅(qū)動的文件名為425.31-notebook-win10-64bit-international-whql.exe,版本是425.31。
PS C:\Users\zhoushimin> nvidia-smi
Mon Apr 04 22:00:37 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 426.00 Driver Version: 426.00 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 650M WDDM | 00000000:01:00.0 N/A | N/A |
| N/A 36C P0 N/A / N/A | 40MiB / 2048MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
如果提示'nvidia-smi' 不是內(nèi)部或外部命令,也不是可運行的程序,則可能環(huán)境變量沒有配置好,需要將 C:\Program Files\NVIDIA Corporation\NVSMI 目錄添加到系統(tǒng)環(huán)境變量中關(guān)閉命令提示符,重新打開輸入 nvidia-smi 就可以看到上面的輸出結(jié)果了。
7
PS C:\Users\zhoushimin> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
可以看到cuda版本為10.1
type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include\cudnn.h" | less
按回車鍵,直到輸出結(jié)果如下:
#ifndef CUDNN_VERSION_H_
#define CUDNN_VERSION_H_
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#endif /* CUDNN_VERSION_H */
可知cuDNN的版本為7.6.5
如果找不到相關(guān)信息,可以使用如下命令測試
type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include\cudnn_version.h" | less
Anaconda,中文大蟒蛇,是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學(xué)包及其依賴項。其簡化了python軟件包的安裝,并且自動關(guān)聯(lián)依賴,自動下載依賴的軟件包,避免不必要的沖突,另外,anaconda最重要的功能就是創(chuàng)建虛擬環(huán)境,實現(xiàn)各種項目開發(fā)框架及版本的隔離。
Anaconda的官方下載速度較慢,推薦使用清華大學(xué)的源下載,盡量選擇日期較新的版本,根據(jù)操作系統(tǒng)版本選擇對應(yīng)的版本。
注意事項:不要有中文路徑,安裝過程無腦下一步即可。 安裝完畢之后,python、pip等軟件均已安裝完畢。
在命令提示符輸入conda -V查看conda版本,以確認(rèn)conda環(huán)境是否生效。
PS C:\Users\zhoushimin> conda -V
conda 4.10.3
由于Anaconda官方服務(wù)器在國外,安裝python軟件包時下載速度巨慢,因此需要配置國內(nèi)安裝源,在這里使用清華大學(xué)的第三方源。
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
conda clean -i
conda create -n myenv numpy
測試時會發(fā)現(xiàn)下載包的速度杠杠的,測試完畢后,刪除myenv虛擬環(huán)境
conda remove -n myenv --all
conda config --remove-key channels
使用pip安裝軟件包時,有些安裝包下載速度特別慢,可以選擇國內(nèi)的安裝源。
以下安裝源可以選擇:
# 清華大學(xué)
https://pypi.tuna.tsinghua.edu.cn/simple/
# 阿里云
http://mirrors.aliyun.com/pypi/simple/
# 中國科技大學(xué)
https://pypi.mirrors.ustc.edu.cn/simple
以安裝tensorflow使用阿里云安裝源為例,在-i后面指定安裝源即可
pip install tensorflow_gpu==2.3 -i http://mirrors.aliyun.com/pypi/simple/
做如下配置后,無需再使用-i選項
pip install pip -U #升級 pip 到最新的版本后進行配置:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
如果安裝源出現(xiàn)異常,恢復(fù)官方安裝源的方式如下:
pip config unset global.index-url`
為了隔離不同項目可能對應(yīng)的不同tensorflow版本或pytorch或python版本,強烈建議使用conda創(chuàng)建不同的虛擬環(huán)境以實現(xiàn)各種不同的開發(fā)環(huán)境的隔離。
我們需要根據(jù)開發(fā)框架、cuda版本等信息綜合選擇合適的開發(fā)環(huán)境,強烈不建議自行搭建開發(fā)環(huán)境適配開源框架,你會懷疑人生,時間周期可能是星期級別!
博主的需求是安裝物體檢測API[OBJECT DETECTION API[1]],根據(jù)項目的最低配置可以了解到支持的是tensorflow-2.2 python3.6
10
- 查看cuda、tensorflow對照關(guān)系表
- [經(jīng)過測試的構(gòu)建配置](https://tensorflow.google.cn/install/source?hl=zh-cn#gpu)

conda create -n [env_name] python=[python version]
詳細(xì)命令如下:
conda create -n tensorflow-2.2-py36 python=3.6
輸出如下:
PS C:\Users\zhoushimin> conda create -n tensorflow-2.2-py36 python=3.6
Collecting package metadata (repodata.json): done
Solving environment: done==> WARNING: A newer version of conda exists. <==current version: 4.10.3
latest version: 4.12.0
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: D:\Tools\Anaconda3\envs\tensorflow-2.2-py36
added / updated specs:
- python=3.6
The following packages will be downloaded:
package | build
---------------------------|-----------------
certifi-2021.5.30 | py36haa95532_0 142 KB defaults
pip-21.2.2 | py36haa95532_0 2.1 MB defaults
python-3.6.13 | h3758d61_0 17.7 MB defaults
setuptools-58.0.4 | py36haa95532_0 976 KB defaults
wincertstore-0.2 | py36h7fe50ca_0 13 KB defaults
------------------------------------------------------------
Total: 20.9 MB
The following NEW packages will be INSTALLED:
certifi anaconda/pkgs/main/win-64::certifi-2021.5.30-py36haa95532_0
pip anaconda/pkgs/main/win-64::pip-21.2.2-py36haa95532_0
python anaconda/pkgs/main/win-64::python-3.6.13-h3758d61_0
setuptools anaconda/pkgs/main/win-64::setuptools-58.0.4-py36haa95532_0
sqlite anaconda/pkgs/main/win-64::sqlite-3.38.2-h2bbff1b_0
vc anaconda/pkgs/main/win-64::vc-14.2-h21ff451_1
vs2015_runtime anaconda/pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
wheel anaconda/pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
wincertstore anaconda/pkgs/main/win-64::wincertstore-0.2-py36h7fe50ca_0
Proceed ([y]/n)? y
等待執(zhí)行完畢。
conda activate tensorflow-2.2-py36
pip install tensorflow==2.2.0
Successfully built termcolor
Installing collected packages: urllib3, pyasn1, idna, charset-normalizer, zipp, typing-extensions, six, rsa, requests, pyasn1-modules, oauthlib, cachetools, requests-oauthlib, importlib-metadata, google-auth, dataclasses, werkzeug, tensorboard-plugin-wit, protobuf, numpy, markdown, grpcio, google-auth-oauthlib, absl-py, wrapt, termcolor, tensorflow-estimator, tensorboard, scipy, opt-einsum, keras-preprocessing, h5py, google-pasta, gast, astunparse, tensorflow
Successfully installed absl-py-1.0.0 astunparse-1.6.3 cachetools-4.2.4 charset-normalizer-2.0.12 dataclasses-0.8 gast-0.3.3 google-auth-1.35.0 google-auth-oauthlib-0.4.6 google-pasta-0.2.0 grpcio-1.44.0 h5py-2.10.0 idna-3.3 importlib-metadata-4.8.3 keras-preprocessing-1.1.2 markdown-3.3.6 numpy-1.19.5 oauthlib-3.2.0 opt-einsum-3.3.0 protobuf-3.19.4 pyasn1-0.4.8 pyasn1-modules-0.2.8 requests-2.27.1 requests-oauthlib-1.3.1 rsa-4.8 scipy-1.4.1 six-1.16.0 tensorboard-2.2.2 tensorboard-plugin-wit-1.8.1 tensorflow-2.2.0 tensorflow-estimator-2.2.0 termcolor-1.1.0 typing-extensions-4.1.1 urllib3-1.26.9 werkzeug-2.0.3 wrapt-1.14.0 zipp-3.6.0
創(chuàng)建gpu_tf_test.py,拷貝如下代碼:
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import SGD
import time
# config=tf.ConfigProto()
# config.gpu_options.allow_growth=True
# session=tf.Session(config=config)
# 啟用GPU
from tensorflow.compat.v1 import ConfigProto# tf 2.x的寫法
config=ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction=0.9
tf.compat.v1.Session(config=config)
# 構(gòu)建數(shù)據(jù)集
X_data=np.linspace(-1,1,1000)[:, np.newaxis]
noise=np.random.normal(0,0.05,X_data.shape)
y_data=np.square(X_data) + noise + 0.5
print("shape")
print(X_data.shape)
# 構(gòu)建神經(jīng)網(wǎng)絡(luò)
model=Sequential()
model.add(Dense(10, input_shape=(1,), kernel_initializer='normal', activation='relu'))
#model.add(Dense(5, activation='relu'))
# vs 分類為softmax激活
model.add(Dense(10000, kernel_initializer='normal'))
model.add(Dense(10000, kernel_initializer='normal'))
model.add(Dense(100, kernel_initializer='normal'))
model.add(Dense(1, kernel_initializer='normal'))
#sgd=SGD(lr=0.001)
model.compile(loss='mean_squared_error', optimizer="sgd") #adam
# 訓(xùn)練 epoch=10, 30, 50, view the results
start=time.time()
model.fit(X_data, y_data, epochs=50, batch_size=16, verbose=1)
end=time.time()
# 在原數(shù)據(jù)上預(yù)測
y_predict=model.predict(X_data)
#print(y_predict)
model.summary()
print("training time {}".format(end - start))
執(zhí)行測試
# 切換至虛擬環(huán)境
conda activate tensorflow-2.2-py36
# 執(zhí)行測試
python gpu_tf_test.py
輸出如下:
(tensorflow-2.2-py36) C:\Users\zhoushimin\Desktop>python gpu_test.py
2022-04-05 00:24:35.790114: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2022-04-05 00:24:39.180693: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x211ab3407a0 initialized for platform Host (this does not guarantee
that XLA will be used). Devices:
2022-04-05 00:24:39.181152: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
2022-04-05 00:24:39.185023: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll
2022-04-05 00:24:39.957288: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GT 650M computeCapability: 3.0
coreClock: 0.835GHz coreCount: 2 deviceMemorySize: 2.00GiB deviceMemoryBandwidth: 59.60GiB/s
2022-04-05 00:24:39.958038: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2022-04-05 00:24:39.965471: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2022-04-05 00:24:39.972214: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2022-04-05 00:24:39.975560: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2022-04-05 00:24:39.985029: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2022-04-05 00:24:39.989813: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2022-04-05 00:24:40.014427: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2022-04-05 00:24:40.016214: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1657] Ignoring visible gpu device (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0, compute capability: 3.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
2022-04-05 00:24:40.063972: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] Device interconnect StreamExecutor with strength 1 edge matrix:
2022-04-05 00:24:40.064381: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1108] 0
2022-04-05 00:24:40.064707: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1121] 0: N
2022-04-05 00:24:40.068691: I tensorflow/compiler/xla/service/platform_util.cc:139] StreamExecutor cuda device (0) is of insufficient compute capability: 3.5 required, device is 3.0
2022-04-05 00:24:40.069704: I tensorflow/compiler/jit/xla_gpu_device.cc:161] Ignoring visible XLA_GPU_JIT device. Device number is 0, reason: Internal: no supported devices found for platform CUDA
shape
(1000, 1)
2022-04-05 00:24:40.099506: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GT 650M computeCapability: 3.0
coreClock: 0.835GHz coreCount: 2 deviceMemorySize: 2.00GiB deviceMemoryBandwidth: 59.60GiB/s
2022-04-05 00:24:40.100197: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll
2022-04-05 00:24:40.100541: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
2022-04-05 00:24:40.100821: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll
2022-04-05 00:24:40.101140: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll
2022-04-05 00:24:40.101432: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll
2022-04-05 00:24:40.101674: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll
2022-04-05 00:24:40.101915: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll
2022-04-05 00:24:40.103257: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1657] Ignoring visible gpu device (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0, compute capability: 3.0) with Cuda compute capability 3.0. The minimum required Cuda capability is 3.5.
2022-04-05 00:24:40.104045: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] Device interconnect StreamExecutor with strength 1 edge matrix:
2022-04-05 00:24:40.104239: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1108]
2022-04-05 00:24:40.139180: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2022-04-05 00:24:41.717374: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2022-04-05 00:24:41.799759: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
Epoch 1/50
2022-04-05 00:24:42.666531: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
2022-04-05 00:24:42.841301: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 400000000 exceeds 10% of free system memory.
63/63 [==============================] - 36s 567ms/step - loss: 0.2708
Epoch 2/50
63/63 [==============================] - 35s 559ms/step - loss: 0.0703
Epoch 3/50
63/63 [==============================] - 39s 614ms/step - loss: 0.0350
Epoch 4/50
63/63 [==============================] - 41s 643ms/step - loss: 0.0140
Epoch 5/50
63/63 [==============================] - 41s 650ms/step - loss: 0.0144
Epoch 6/50
30/63 [=============>................] - ETA: 21s - loss: 0.0091
從日志中可以看到顯卡GeForce GT 650M已經(jīng)加載成功了,cuda也加載成功了,因為GPU性能較弱,僅3.0,不滿足最小要求3.5,直接使用的cpu在運行。
總體來說,深度學(xué)習(xí)安裝環(huán)境的安裝還是比較麻煩的,涉及到
一般來說,一個項目一個環(huán)境,避免環(huán)境沖突。一個項目一個環(huán)境可以通過anaconda來實現(xiàn),也可以使用docker來實現(xiàn)隔離。有一些框架在windows平臺支持不好,例如目標(biāo)檢測框架MMDetection,盡可能還是使用linux環(huán)境來做開發(fā)。
以上是我的學(xué)習(xí)總結(jié),有問題歡迎交流。
參考鏈接:
推薦閱讀:
[1] OBJECT DETECTION API: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2.md
[2] CUDA與cuDNN:https://www.jianshu.com/p/622f47f94784: https://www.jianshu.com/p/622f47f94784