国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mac Apple Silicon M1/M2 homebrew miniforge conda pytorch yolov5深度學(xué)習(xí)環(huán)境搭建并簡(jiǎn)單測(cè)試MPS GPU加速

這篇具有很好參考價(jià)值的文章主要介紹了Mac Apple Silicon M1/M2 homebrew miniforge conda pytorch yolov5深度學(xué)習(xí)環(huán)境搭建并簡(jiǎn)單測(cè)試MPS GPU加速。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

開始安裝

筆者使用的是一臺(tái)M2版本的Macbook Air,雖然蘋果作為深度學(xué)習(xí)的訓(xùn)練機(jī)不太合適,但是由于macbook作為打字機(jī)實(shí)在是無可挑剔,所以使用macbook調(diào)試一下pytorch的代碼再放到集群上訓(xùn)練或者直接在mac上調(diào)試運(yùn)行代碼都是不錯(cuò)的體驗(yàn),本文以在mac上直接調(diào)試yolov5為目標(biāo),大概記錄一下步驟。

零,獲取代理

這一步就是大家八仙過海各顯神通的時(shí)候了??
或者直接使用國內(nèi)源安裝,可以參考Homebrew國內(nèi)如何自動(dòng)安裝(國內(nèi)地址)(Mac & Linux)
以下過程都是基于有代理的情況下的安裝過程,基本無痛

一,配置代理

總之開啟代理后,除了瀏覽器可以走代理訪問之外,還需要配置zsh和git走代理,否則homebrew的安裝會(huì)比較痛苦。

配置zsh走代理

#首先創(chuàng)建~/.zshrc
vim ~/.zshrc

加入本地代理的端口地址,例如127.0.0.1:8080

function onproxy() {
    export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    export http_proxy="http://127.0.0.1:8080"
    export https_proxy=$http_proxy
    export all_proxy=socks5://127.0.0.1:8080
    echo -e "\033[32mproxy on!\033[0m"
}

function offproxy(){
    unset http_proxy
    unset https_proxy
    unset all_proxy
    echo -e "\033[31mproxy off!\033[0m"
}

然后source一下

source ~/.zshrc

運(yùn)行一下onproxy開啟代理(后面也要記得重啟terminal的時(shí)候運(yùn)行開一下,或者寫到.zshrc里)

onproxy

測(cè)試一下是不是成功

curl -vv https://www.google.com

如果返回報(bào)文中有status 200 OK等字樣就說明現(xiàn)在配置成功,但是ping依然是不能正常使用代理的,所以即便配置了代理,ping google還是不行的。
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda

配置git走代理

將git也配置一下走代理:

git config --global http.proxy http://127.0.0.1:8080

完工!

二,安裝homebrew

安裝homebrew十分簡(jiǎn)單

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

執(zhí)行完成后會(huì)提示你讓你把homebrew添加到path中,按圖中操作就可以
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/xxx/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

然后就可以愉快的使用brew install了,就和ubuntu的apt install一樣啦!

三,安裝miniforge

有了homebrew安裝miniforge就簡(jiǎn)單了

brew install miniforge

完成!

四,創(chuàng)建conda環(huán)境

首先初始化conda環(huán)境

conda init zsh

關(guān)閉terminal重新打開就能看到(base)環(huán)境已經(jīng)啟用
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda
然后就是創(chuàng)建pytorch的conda環(huán)境

conda create -n torch python=3.8

創(chuàng)建完運(yùn)行

conda activate torch

就可以開始使用專屬的conda虛擬環(huán)境了。

五,安裝pytorch

直接按照官網(wǎng)的安裝,已經(jīng)包含了MPS加速(MPS:Metal Performance Shaders)
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda

# MPS acceleration is available on MacOS 12.3+
pip3 install torch torchvision torchaudio

完成!

六,運(yùn)行yolov5

首先clone源碼,安裝依賴

git clone https://github.com/ultralytics/yolov5.git
pip install -r requirements.txt 

等待安裝完畢
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda

現(xiàn)在就可以開始測(cè)試檢測(cè)圖片了
我們?cè)趛olov5文件夾里創(chuàng)建一個(gè)imgs文件夾,里面放一張1.jpg的測(cè)試圖像
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda
如下圖所示

m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda
然后運(yùn)行

python detect.py --weights yolov5s.pt --source 'imgs/1.jpg'

過程中會(huì)自動(dòng)下載yolov5s.pt的權(quán)重
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda
然后將檢測(cè)結(jié)果保存到y(tǒng)olov5/runs/detect/exp中
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda
打開1.jpg看一下
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda
檢測(cè)成功,yolov5在MacBook上就跑起來了!環(huán)境初步搭建完成!

六,測(cè)試Apple Silicon的MPS GPU加速

測(cè)試yolov5的mps加速

由于pytorch可以跑cpu,所以我們還不知道蘋果的mps gpu加速能否正常起作用,那我們來測(cè)試一下。

打開vscode,創(chuàng)建testyolov5mps.py,環(huán)境選擇我們剛剛創(chuàng)建的conda環(huán)境torch,編輯一下
m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda

import torch

print(torch.backends.mps.is_available)
print(torch.backends.mps.is_built)

device = torch.device("mps" if torch.backends.mps.is_available else"cpu")

print(device)
exit()

運(yùn)行一下

(torch) xx@xxx-MacBook-Air testyolov5 % python testyolov5mps.py 
<functools._lru_cache_wrapper object at 0x114d0f0d0>
<function is_built at 0x114d06ee0>
mps
(torch) xx@xxx-MacBook-Air testyolov5 % 

都有輸出結(jié)果,并且device為mps,mps加速有效,我們接下來用yolov5的官方示例簡(jiǎn)單測(cè)試一下效果

import torch

print(torch.backends.mps.is_available)
print(torch.backends.mps.is_built)

device = torch.device("mps" if torch.backends.mps.is_available else"cpu")

print(device)
# exit()

# Model
model = torch.hub.load("ultralytics/yolov5", "yolov5s")  # or yolov5n - yolov5x6, custom
model.to(device)
# exit()
# Images
img = "https://ultralytics.com/images/zidane.jpg"  # or file, Path, PIL, OpenCV, numpy, list

# Inference
results = model(img)

# Results
results.print()  # or .show(), .save(), .crop(), .pandas(), etc.

結(jié)果發(fā)現(xiàn)報(bào)錯(cuò)了,如下

(torch) xx@xxx-MacBook-Air testyolov5 % python testyolov5mps.py
<functools._lru_cache_wrapper object at 0x140872160>
<function is_built at 0x140869f70>
mps
Using cache found in /Users/xx/.cache/torch/hub/ultralytics_yolov5_master
YOLOv5 ?? 2023-2-27 Python-3.8.16 torch-1.13.1 CPU

Fusing layers... 
YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients
Adding AutoShape... 
Traceback (most recent call last):
  File "testyolov5mps.py", line 23, in <module>
    results.print()  # or .show(), .save(), .crop(), .pandas(), etc.
  File "/Users/xx/.cache/torch/hub/ultralytics_yolov5_master/models/common.py", line 825, in print
    LOGGER.info(self.__str__())
  File "/Users/xx/.cache/torch/hub/ultralytics_yolov5_master/models/common.py", line 831, in __str__
    return self._run(pprint=True)  # print results
  File "/Users/xx/.cache/torch/hub/ultralytics_yolov5_master/models/common.py", line 745, in _run
    for c in pred[:, -1].unique():
  File "/opt/homebrew/Caskroom/miniforge/base/envs/torch/lib/python3.8/site-packages/torch/_tensor.py", line 806, in unique
    return torch.unique(
  File "/opt/homebrew/Caskroom/miniforge/base/envs/torch/lib/python3.8/site-packages/torch/_jit_internal.py", line 485, in fn
    return if_false(*args, **kwargs)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/torch/lib/python3.8/site-packages/torch/_jit_internal.py", line 485, in fn
    return if_false(*args, **kwargs)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/torch/lib/python3.8/site-packages/torch/functional.py", line 877, in _return_output
    output, _, _ = _unique_impl(input, sorted, return_inverse, return_counts, dim)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/torch/lib/python3.8/site-packages/torch/functional.py", line 791, in _unique_impl
    output, inverse_indices, counts = torch._unique2(
NotImplementedError: The operator 'aten::_unique2' is not currently implemented for the MPS device. If you want this op to be added in priority during the prototype phase of this feature, please comment on https://github.com/pytorch/pytorch/issues/77764. As a temporary fix, you can set the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.
(torch) xx@xxx-MacBook-Air testyolov5 % 

發(fā)現(xiàn)模型中的aten::_unique2操作符沒有mps實(shí)現(xiàn),所以只能用fallback模式再試一下

PYTORCH_ENABLE_MPS_FALLBACK=1 python testyolov5mps.py

成功運(yùn)行

(torch) xx@xxx-MacBook-Air testyolov5 % PYTORCH_ENABLE_MPS_FALLBACK=1 python testyolov5mps.py 
<functools._lru_cache_wrapper object at 0x10cb72160>
<function is_built at 0x10cb69f70>
mps
Using cache found in /Users/xx/.cache/torch/hub/ultralytics_yolov5_master
YOLOv5 ?? 2023-2-27 Python-3.8.16 torch-1.13.1 CPU

Fusing layers... 
YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients
Adding AutoShape... 
image 1/1: 900x1200 8 persons, 2 sports balls
Speed: 58.2ms pre-process, 228.4ms inference, 24.2ms NMS per image at shape (1, 3, 480, 640)

可以看到推理時(shí)間228.4ms

如果我們注釋掉model.to(device),使用cpu模式來跑

(torch) xx@xxx-MacBook-Air testyolov5 % python testyolov5mps.py 
<functools._lru_cache_wrapper object at 0x1248f2280>
<function is_built at 0x1248f20d0>
mps
Using cache found in /Users/xx/.cache/torch/hub/ultralytics_yolov5_master
YOLOv5 ?? 2023-2-27 Python-3.8.16 torch-1.13.1 CPU

Fusing layers... 
YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients
Adding AutoShape... 
image 1/1: 900x1200 8 persons, 2 sports balls
Speed: 24.1ms pre-process, 82.8ms inference, 0.7ms NMS per image at shape (1, 3, 480, 640)

僅用了82.8ms就完成了推理,這邊先不下結(jié)論,還需要再研究一下,不過可以看到mac的gpu加速還不是很完善。

測(cè)試resnet50的mps加速

既然yolov5網(wǎng)絡(luò)太復(fù)雜有不支持mps的算子,那我們?cè)囋嚭?jiǎn)單的resnet50

import torch
from PIL import Image
import torchvision.transforms as transforms
import numpy as np
import json
import requests
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
import time
# %matplotlib inline

# print(torch.backends.mps.is_available)
# print(torch.backends.mps.is_built)

device = torch.device("mps" if torch.backends.mps.is_available else"cpu")
#device = torch.device("cpu")
print(device)
# exit()

resnet50 = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_resnet50', pretrained=True)
utils = torch.hub.load('NVIDIA/DeepLearningExamples:torchhub', 'nvidia_convnets_processing_utils')

resnet50.eval().to(device)

uris = ["/Users/xx/workspace/yolov5/imgs/1.jpg" for x in range(1024)]

batch = torch.cat(
    [utils.prepare_input_from_uri(uri) for uri in uris]
).to(device)

with torch.no_grad():
    start = time.time()
    output = resnet50(batch)
    end = time.time()
    # output = torch.nn.functional.softmax(output, dim=1)
    print("using {} total time:{}s".format(device,end-start))

# results = utils.pick_n_best(predictions=output, n=5)
# print(results)

# for uri, result in zip(uris, results):
#     img = Image.open(requests.get(uri, stream=True).raw)
#     img = Image.open(uri)
#     img.thumbnail((256,256), Image.ANTIALIAS)
#     plt.imshow(img)
#     plt.show()
#     print(result)

分別用cpu和mps跑1024張圖像,計(jì)算推理時(shí)間
結(jié)果

(torch) xx@xxx-MacBook-Air testyolov5 % python testresnetmps.py
mps
using mps total time:8.64146113395691s
(torch) xx@xxx-MacBook-Air testyolov5 % python testresnetmps.py
cpu
using cpu total time:85.01676988601685s

我們可以看到,推理1024張圖使用mps 8.6秒,使用cpu花了85秒,快了10倍,確實(shí)有效。

對(duì)比測(cè)試1080ti,3700x

我們同樣的代碼用amd 3700x的純cpu模式跑一下:

cpu
using cpu total time:41.04833006858826s

用cuda在1080ti上再跑一下,由于顯存不夠1024張分成兩個(gè)batch來跑:

cuda
batch0infer
batch1infer
using cuda total time:2.7815260887145996s

3700x用時(shí)41秒,使用cuda只需要2.78秒

總結(jié)

device data model 用時(shí)(秒)
Apple M2(8+10) (CPU) 1024張 1 batch resnet50 cls 85.02
Apple M2(8+10) (MPS) 1024張 1 batch resnet50 cls 8.64
AMD 3700X + 1080Ti (CPU) 1024張 1 batch resnet50 cls 41.05
AMD 3700X + 1080Ti (CUDA) 1024張 2 batch resnet50 cls 2.78

m2跑yolo,deeplearning,pytorch,深度學(xué)習(xí),macos,conda

測(cè)試不是很完善,但是也能看個(gè)大概,5w戰(zhàn)350w能有這個(gè)水平其實(shí)還可以。文章來源地址http://www.zghlxwxcb.cn/news/detail-787733.html

到了這里,關(guān)于Mac Apple Silicon M1/M2 homebrew miniforge conda pytorch yolov5深度學(xué)習(xí)環(huán)境搭建并簡(jiǎn)單測(cè)試MPS GPU加速的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 蘋果mac m1,m2芯片安裝 pytorch和tensorflow的GPU版本

    蘋果mac m1,m2芯片安裝 pytorch和tensorflow的GPU版本

    1.安裝 Xcode 2.創(chuàng)建環(huán)境 3.打開pytorch官網(wǎng)復(fù)制命令,?注意:在mac m上,device是’mps’ 而不是’cuda’, mac的MPS支持MacOS 12.3+ ?4.測(cè)試 1.安裝 Xcode 2.創(chuàng)建環(huán)境 3. 安裝conda install -c apple tensorflow-deps ?4.Install base TensorFlow 5.??Install tensorflow-metal plug-in ?6.驗(yàn)證 7.完成,附上我安裝完pytorch和

    2024年02月13日
    瀏覽(25)
  • 在 Apple silicon Mac 上 DFU 模式修復(fù)或恢復(fù) macOS 固件

    搭載 Apple 芯片的 Mac 電腦 DFU 模式全新安裝 macOS Ventura 請(qǐng)?jiān)L問原文鏈接:https://sysin.org/blog/apple-silicon-mac-dfu/,查看最新版。原創(chuàng)作品,轉(zhuǎn)載請(qǐng)保留出處。 作者主頁:www.sysin.org Mac computers with Apple silicon,簡(jiǎn)稱 Apple silicon Mac,中文翻譯為 “搭載 Apple 芯片的 Mac 電腦”。 2023.02.0

    2024年02月08日
    瀏覽(14)
  • Mac OS 13+,Apple Silicon,刪除OBS虛擬攝像頭(virtual camera),

    Mac OS 13+,Apple Silicon,刪除OBS虛擬攝像頭(virtual camera),

    原文鏈接: ? https://www.reddit.com/r/MacOS/comments/142cv OBS為了捕獲攝像頭視頻,將虛擬攝像頭插件內(nèi)置為系統(tǒng)插件了.如下 直接刪除沒有權(quán)限的,要?jiǎng)h除他,在mac os 13以后,需要關(guān)閉先關(guān)閉蘋果系統(tǒng)的完整性保護(hù)(SIP) Apple 芯片(M1,....)的恢復(fù)模式分為兩種,回退恢復(fù)模式,和配合恢復(fù)模式.其中

    2024年02月19日
    瀏覽(20)
  • Mac M1安裝homebrew步驟

    5.運(yùn)行brew -v 出現(xiàn)以下情況 輸入 6、再次輸入brew -v顯示如下,證明安裝成功 7、在終端使用brew install fig 命令安裝自動(dòng)補(bǔ)全工具,下載好回桌面點(diǎn)擊fig安裝,途中如果有問題就可以 brew uninstall fig,重新安裝。在保證網(wǎng)絡(luò)好的情況下安裝軟件。

    2024年02月08日
    瀏覽(25)
  • 【macOS】mac電腦M2芯片安裝Homebrew 最簡(jiǎn)單的方法

    【macOS】mac電腦M2芯片安裝Homebrew 最簡(jiǎn)單的方法

    一 Homebrew的安裝 打開終端,復(fù)制如下命令,按回車執(zhí)行 M芯片和Intel芯片均可 中途可能需要你手動(dòng)輸入密碼,輸入完成回車即可(密碼不可見 選擇中科大或者清華鏡像源 有些同學(xué)可能會(huì)彈出安裝git的提示,點(diǎn)擊安裝等待即可 安裝完成之后重新執(zhí)行上面的Homebrew安裝命令 這時(shí)

    2024年02月03日
    瀏覽(23)
  • M1/M2 MAC 安裝git

    M1/M2 MAC 安裝git

    cmd輸入 git --version ,會(huì)跳出來說明還沒有安裝,根據(jù)提示點(diǎn)確認(rèn)安裝就好【但gitk等不支持,一般還是從官網(wǎng)下比較方便】 官網(wǎng)中提供了幾種,包括先下載Homebrew,再從Homebrew下載Git,從Xcode下載Git等。之前mac下載過Xcode,但太大了,而且不怎么常用這個(gè)IDE,所以新電腦我就不想

    2024年02月15日
    瀏覽(55)
  • Mac M1 Homebrew的安裝和warning的解決

    Homebrew是mac的包管理工具,需要在安裝xcode之后安裝,可以讓安裝Git, Ruby, Node等軟件變得簡(jiǎn)單。 安裝需要聯(lián)網(wǎng)后,在終端中輸入如下命令: m1安裝homebrew出現(xiàn)warning,如下: 這將意味著每次運(yùn)行brew我們必須在終端中輸入完整的路徑來啟動(dòng): 在終端輸入如下代碼,將 PATH=/opt/ho

    2024年02月15日
    瀏覽(15)
  • Mac M1/M2芯片電腦問題解決匯總

    Mac M1/M2芯片電腦問題解決匯總

    舊的 mbp 用了7年多了,雖然還能使用,但是嚴(yán)重降低了工作效率了,所以最近入手了 mbp (1月發(fā)行的),該電腦使用的是蘋果自研的 m2 芯片,性能杠杠滴。在安裝會(huì)之前的環(huán)境和軟件時(shí)會(huì)遇到種種很奇怪的問題,所以本文記錄下來,以便有需要的童鞋可以去參考。 在本文開

    2024年02月02日
    瀏覽(23)
  • Hadoop 安裝教程 (Mac m1/m2版)

    Hadoop 安裝教程 (Mac m1/m2版)

    安裝JDK1.8 這里最好是安裝1.8版本的jdk 1. 進(jìn)入官網(wǎng)Java Downloads | Oracle Hong Kong SAR, PRC,下滑到中間區(qū)域找到JDK8 2.選擇mac os,下載ARM64 DMG Installer對(duì)應(yīng)版本 注:這里下載需要注冊(cè)oracle賬號(hào),不過很簡(jiǎn)單,只需要提供郵箱即可,什么郵箱都可以 3.下載完成后,雙擊.pkg文件,安裝步驟安

    2024年02月08日
    瀏覽(57)
  • Mac搭建安卓模擬器(支持M1/M2)

    Mac搭建安卓模擬器(支持M1/M2)

    最近在研究Vue打包成app,給我的報(bào)價(jià)器搞一個(gè)移動(dòng)端,奈何沒有安卓手機(jī)用于測(cè)試。所以想到安裝一個(gè)安卓模擬器。 看了下目前主流的安卓模擬器基本都不支持Mac版本。網(wǎng)易的mumu目前來看還是只支持Intel芯。 下載地址:https://www.aliyundrive.com/s/NZet5jrKxV4 下載完成后將后綴 .mp

    2024年02月16日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包