1、源碼構建與預構建:
源碼構建:
源碼構建是通過獲取軟件的源代碼,然后在本地編譯生成可執行程序或庫文件的過程。這種方法允許根據特定需求進行配置和優化,但可能需要較長的時間和較大的資源來編譯源代碼。
預構建:
預構建是通過從開發者或官方網站下載預先編譯好的可執行程序或庫文件,然后在本地使用它們的過程。這種方法省去了編譯的時間和工作,通常更方便。然而,預構建版本可能沒有完全針對特定需求進行優化。
源碼構建的優缺點:
優點:
1.可以根據特定需求進行配置、優化和修改。2.可以確保編譯的二進制與系統和需求完全匹配。
3.可以進行調試和錯誤跟蹤,有助于自定義和定制。
缺點:
1.需要較長的編譯時間和系統資源。
2.對于不熟悉編譯過程的用戶來說可能較為復雜。
3.編譯過程可能會受到依賴項的影響,需要處理依賴項問題。
2、Tensorflow源代碼編譯安裝
TensorFlowi源碼構建基本流程:
1、安裝依賴:安裝構建TensorFlow所需的各種依賴項,包括Python、Bazel構建工具、CUDA、cuDNN、TensorRT等。這些依賴項可能因系統和配置而有所不同。
2、配置編譯:在TensorFlowi源碼目錄中,運行配置腳本以配置編譯選項。
3、構建:用Bazelt構建TensorFlow。
4、生成Wheel包:如果希望將TensorFlow打包成Pythonf的Wheelt格式,以便于分發和安裝。
5、運行測試(可選):可以運行TensorFlow的單元測試和集成測試,以確保構建的版本沒有問題。TensorFlow-安裝依賴、編譯環境:
確保環境中,已經安裝python、pip等工具
????????pip install -U --user pip numpy wheel
????????pip install -U--user keras_preprocessing --no-depsnumpy是一個開源的數值計算庫,提供了豐富的多維數組和矩陣操作功能,以及數學、邏輯、傅里葉變換等數值計算工具。
wheel是Python的一個二進制包格式,旨在加速包的安裝。是一種預構建的軟件包格式,可以包含Python模塊的代碼、依賴項和元數據,以便于分發和安裝。
keras_preprocessing是TensorFlow的一個重要子模塊,提供了許多用于數據預處理和增強的工具,特別適用于在深度學習任務中準備數據集。
TensorFlow-編譯工具bazel
Bazel是一個由Google開發的開源構建工具,旨在支持大型項目的高效構建、測試和部署。它特別適用于構建復雜的軟件系統,具有高度的可擴展性和性能優勢。Bazel支持多種編程語言,并在TensorFlow等許多大型項目中得到廣泛應用。
■構建速度和緩存:使用了增量構建和緩存機制,只編譯已更改的部分,從而顯著加快構建過程。Bazel還可以共享構建緩存,以避免重復編譯相同的依賴項。
■多語言支持:包括但不限于Java、C++、Python、Go、Rust等。這使得可以在一個項目中混合使用不同的語言,而無需為每種語言使用不同的構建工具。
■高度模塊化:將項目拆分為小的、可重用的模塊,以提高代碼的可維護性和可測試性。每個模塊都可以擁有自己的構建規側和依賴項。
■聲明式構建:使用BUILD文件來聲明構建規則和依賴關系。這種聲明式的構建方法使構建過程更加清晰和可管理。
■平臺無關性:可以在不同的操作系統上運行,包括Linux、macOS和Windows。詳細使用方法可以參考:https:/blog.gmem.cc/bazel-study-note
?
3、pytorch 源代碼編譯安裝
1、環境準備:
安裝?Python:確保的系統中安裝了?Python,建議使用支持的版本(通常是?Python 3.7+)。
安裝依賴項:如?CMake、NumPy、Ninja?等。可以根據官方文檔安裝這些依賴項。
2、更新子模塊:源代碼中可能包含子模塊(submodules),往往需要使用以下命令更新子模塊才能正常編譯:
????????git submodule update --init --recursive
3、配置編譯選項:(可使用?cmake -DCMAKE_INSTALL_PREFIX=<install_dir>?來指定安裝目錄)。
????????????????mkdir build
????????????????cd build
????????????????cmake ..
4、使用make命令進行編譯,make install命令進行安裝。
5、運行測試:
在?test?目錄下,可以使用以下命令來運行測試:
????????python run_test.py
這將運行所有的測試套件,包括單元測試、集成測試等。如果需要指定特定的測試模塊或測試用例,可以使用命令行參數來過濾測試,
例如:
????????python run_test.py test_torch.py
將只運行與?test_torch.py?相關的測試。
在測試運行完成后,成功的測試將顯示為?"OK",而失敗的測試將顯示詳細的錯誤信息。
4、caffe源代碼編譯安裝
1、環境準備(這些基本都可以從conda里面安裝):
????????sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev?
????????libhdf5-serial-dev protobuf-compiler?
????????sudo apt-get install --no-install-recommends libboost-all-dev
????????sudo apt-get install python-dev
????????sudo apt-get install libatlas-base-dev
????????sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
????????sudo apt-get install python-opencv
2、修改caffe下文件Makefile.config
????????CPU?和?GPU?支持: 可以通過設置是否啟用?CPU?或?GPU?支持來決定構建?Caffe?時是否使用CPU?或?GPU?運算。這通常涉及?USE_CUDNN、USE_NCCL、CPU_ONLY?等選項。
????????CUDA?和?cuDNN?路徑: 如果啟用了?GPU?支持,需要指定?CUDA?和?cuDNN?的路徑。
????????BLAS?庫: 可以選擇使用不同的?BLAS?庫,如?OpenBLAS、MKL?或?ATLAS。?
????????Python?路徑: 需要指定與?Caffe?集成的?Python?版本和路徑。
3、修改caffe下文件Makefile
????????1.opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
????????后面加入?opencv_imgcodecs
????????2.?找到LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
????????更改最后兩項為:
????????LIBRARIES +=glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl?
????????hdf5_serial
4、編譯與測試
????????make all
????????Make test
????????make runtest
5、深度學習框架常用模型倉庫
TensorFlow: https://github.com/tensorflow/models
TensorFlow Model Garden?是?TensorFlow?團隊維護的一個開源項目,旨在為機器學習社區提供一系列預訓練模型、工具、示例和最佳實踐,以加速模型開發和研究。這個項目匯集了各種不同類型的模型,涵蓋了計算機視覺、自然語言處理、語音識別等多個領域,幫助開發者快速構建和訓練自己的模型。
預訓練模型:?Model Garden?包含了多個預訓練模型,包括?TensorFlow?官方發布的模型,以及社區貢獻的模型。這些模型可以用作遷移學習的起點,或者可以在特定任務上微調。
模型庫:?Model Garden?提供了一個模型庫,用于查看各種模型的代碼、配置文件和文檔。這些模型可以幫助開發者了解模型的結構和使用方法。
最佳實踐:?TensorFlow?團隊會分享一些模型開發和訓練的最佳實踐,幫助開發者避免常見的陷阱和問題。