PyTorch 官方文件指出,MPS 後端要求 macOS 12.3 或更新版本,並且需要相容裝置與 PyTorch 建置;可先核對官方 MPS 前提。這不代表 Cellpose 的每個步驟都使用 GPU。本週先確認 MPS 可用性,再檢查 Cellpose 的實際執行入口,最後用代表性影像驗收結果;任何一關不符合需求,就改用已驗證的計算環境。
適合正在 Mac 上執行 Cellpose、但不確定是否呼叫 MPS 的研究生,逐步檢查後端與執行路徑。
也適合需要依科研判據檢視分割結果的研究人員。
課題組 macOS 管理人員則可用這套流程,區分環境、參數與任務環節問題。
先分清後端、推論與結果驗收
GPU 疑似未啟用時,常見的誤判是只看整次工作的耗時:如果結果比預期慢,就認定 Cellpose 正在用 CPU;如果 PyTorch 回報 MPS 可用,就認定分割已由 GPU 完成。兩種推論都不充分。
你要分開確認三件事:
- 後端可用:目前執行 Cellpose 的 Python 環境,能否使用 PyTorch MPS。
- Cellpose 有呼叫:這次任務的 CLI 或 API 是否採用 GPU 執行路徑。
- 結果合格:掩膜及後續分析是否符合課題組的科研判據。
另外,影像讀取、掩膜生成、後處理及檔案輸出,不一定與模型推論使用相同的執行方式。整體耗時會受到這些環節影響,因此不能單靠秒數判定 GPU 狀態或分割品質。若使用 PYTORCH_ENABLE_MPS_FALLBACK,還要確認不支援的運算是否退回 CPU;相關設定可查閱官方環境變數說明。
先檢查執行環境中的 MPS
先確認你執行檢查程式的環境,就是啟動 Cellpose 所使用的環境。終端機、圖形介面或批次工作可能各自使用不同的 Python 解譯器;在其中一個環境看到 MPS 可用,不足以證明另一個環境也相同。
在相同環境執行以下檢查:
import torch
print("PyTorch:", torch.__version__)
print("MPS built:", torch.backends.mps.is_built())
print("MPS available:", torch.backends.mps.is_available())
兩個狀態各自回答不同問題:is_built() 檢查這個 PyTorch 建置是否包含 MPS 支援;is_available() 檢查目前裝置與系統能否使用該後端。PyTorch 提供後端檢查介面說明,MPS 的裝置與系統條件則以官方 MPS 文件為準。
若建置不包含 MPS,先處理 PyTorch 安裝環境;若建置包含 MPS、但目前不可用,回頭核對作業系統、硬體及實際啟動的 Python。不要先修改 Cellpose 的分析參數,否則容易把環境故障誤當成模型問題。
核對 Cellpose 的呼叫方式與日誌
MPS 可用不等於當次 Cellpose 工作已呼叫 GPU。你需要確認執行入口與參數是否符合目前安裝版本的文件,並確認 CLI、圖形介面或程式碼實際使用的是同一個環境。
按以下次序檢查:
- 確認啟動入口:記下實際使用的 CLI、GUI 或 Python 程式碼,以及它所用的 Python 解譯器。
- 查看本機說明:在該環境檢視
cellpose --help,並與Cellpose CLI 文件核對 GPU 相關選項。不要把其他版本的參數直接套用。 - 檢查程式呼叫:若透過 API 執行,核對目前版本接受的 GPU 或裝置設定;可對照Cellpose API 文件。
- 保存啟動資訊:記錄 Cellpose 版本、PyTorch 版本、執行入口、相關參數及日誌。檢查輸出有沒有明確指出裝置選擇或後端錯誤。
- 用小型代表性工作複核:以符合資料規範的樣本重跑,確認任務從啟動到輸出使用的是預期環境,再檢查掩膜及日誌。
Cellpose 的裝置分配程式碼可協助你理解版本中的裝置選擇邏輯。實際判斷仍應以正在使用的版本、呼叫參數和執行記錄為準;「PyTorch 可用」不是「Cellpose 已呼叫 MPS」的證據。
把模型推論和 2D/3D 後處理分開看
即使模型推論走了 MPS,也不應推定掩膜生成、資料轉換與後處理全部由 GPU 執行。2D 與 3D 任務可能經過不同流程;模型、版本及參數也會改變實際程式路徑。Cellpose 4.2.1.1 的行為應對照該版本的官方發行說明,並搭配相關安裝文件和 API 說明核對。
| 選項 | 適用情況 | 主要限制 | 決策方式 |
|---|---|---|---|
| 先查 PyTorch MPS 狀態 | 不確定後端是否可用 | 只確認環境條件,不證明 Cellpose 已呼叫 | 後端不可用時,先修正系統或 Python 環境 |
| 核對 Cellpose 入口、參數及日誌 | PyTorch 可用,但任務像是走 CPU | 需要核對當前版本,不宜照搬其他版本設定 | 找到實際呼叫證據後,再進入流程驗收 |
| 分別檢查 2D/3D 各流程 | 推論似乎正常,但整體工作仍慢或行為不同 | 推論、掩膜處理和輸出可能有不同限制 | 逐項記錄流程;無法確認的步驟不視為已由 MPS 執行 |
| 改用已驗證的計算環境 | 專案要求可重現或正式分析,現有環境無法驗收 | 需要確認軟硬體、資料規則與環境條件 | 先以同一代表性樣本和科研判據完成環境驗收 |
若問題集中在 3D 工作,不要把某個步驟的限制擴大成「Mac 不支援 Cellpose」;反過來,也不要因為某個模型推論正常,就推定整條 3D 流程已加速。對照輸出內容時,可以參考Cellpose 輸出文件說明,確認你檢視的檔案與分析步驟相符。
用代表性影像驗收科研結果
一次成功執行,只表示程式完成了某段工作;產生掩膜,也不等於掩膜符合研究用途。你應把「工作是否完成」和「結果是否可用」分開記錄。
建議以代表性或非敏感影像進行檢查,並遵守所屬機構的資料管理規則:
- 選取能代表正式分析難點的影像,例如邊界不清或細胞密集的樣本;不得未經許可把受限資料移出核准環境。
- 使用課題組既有基線、人工檢查過的掩膜,或已核准的分析判據作為比較依據。
- 檢視漏分、過度分割、邊界偏差等與研究問題相關的現象,並確認後續分析步驟沒有遺漏。
- 記錄 Cellpose 與 PyTorch 版本、模型、影像處理流程、執行設定和結果差異,以便重現與審查。
- 只有在結果通過專案判據後,才把該環境納入正式工作流程;否則應回退到已驗證的計算環境。
不要預設 MPS 與其他裝置的運算速度或輸出必然一致,也不要把一次試跑當成結果有效性的證明。科研判斷要依據你所屬領域的驗證要求,而不是由執行成功訊息代替。
常見疑問:裝置、流程與科研判據
以下問題適合在檢查完環境與執行路徑後,作為下一步判斷依據。
在 Apple Silicon Mac 上怎樣確認 Cellpose 真的走 MPS?
先在啟動 Cellpose 的同一個 Python 環境檢查 PyTorch 的 MPS 建置與可用狀態,再依你使用的 CLI 或 API 明確設定 GPU。最後查看 Cellpose 的啟動資訊與執行路徑;單看 PyTorch 回報可用,不能證明這次分割工作已交由 MPS 執行。
PyTorch 顯示 MPS 可用,為甚麼 Cellpose 看起來仍在用 CPU?
兩者檢查的範圍不同。PyTorch 回報的是後端條件,Cellpose 是否採用 GPU,還取決於此次呼叫的參數、實際使用的 Python 環境,以及任務所走的程式路徑。若有不支援的運算子,也要檢查 MPS fallback 設定及日誌,不能只憑整體耗時判定。
Cellpose 的 MPS 會加速整個 3D 分割流程嗎?
不要預設所有 3D 步驟都在 MPS 上執行。模型推論、掩膜生成與後處理可能經過不同程式路徑,支援情況也會受 Cellpose 版本和任務設定影響。請核對對應版本的文件,並分別確認各環節;若無法確認,就以已驗證的環境完成正式分析。
怎樣判斷 Cellpose 分割結果可不可以用於科研分析?
先用符合資料許可要求的代表性影像,對照課題組既有基線、人工檢查的掩膜或已訂定的分析判據。確認細胞邊界、漏分與過度分割等關鍵問題,再核對下游分析步驟。任務完成或輸出檔案存在,只代表流程有結果,不代表結果已通過科研驗收。
需要補充 Mac 驗證環境時先核對條件
若課題組現有的 Linux 或 Windows 設備無法驗證 Apple Silicon 上的 MPS 行為,先確認研究問題是否真的要求在該環境驗收,再核對可用 Mac 的晶片、作業系統、軟體條件與機構資料規則。遠端 Mac 可以作為條件式驗證路徑,但不能在未確認環境前假設具備所需晶片、GPU 能力或資料審批資格。
相較之下,繼續只用既有非 Mac 設備,可能無法重現 Apple Silicon 的 MPS 路徑;自行購買 Mac 則涉及一次性設備支出與後續維護;臨時借用設備則未必能提供一致的軟體環境。你可以先閱讀遠端 Mac 環境說明,並查看方案與交付資訊,逐項確認實際提供的硬體、存取方式與租用條件。正式處理研究資料前,也應先核對機構資料規範及資料隱私說明。
若你只是需要短期檢查 Cellpose 的 Apple Silicon/MPS 執行路徑,租用遠端 Mac 可列入比較;但若工作長期且負載穩定、需要本機實體介面,或機構不允許資料離開核准設備,租用未必合適。先確認環境能力與資料規則,再決定是否採用,比單看「GPU 可用」就開始正式分析更可靠。
常見問題
在 Apple Silicon Mac 上,怎樣確認 Cellpose 真的走 MPS?
先在啟動 Cellpose 的同一個 Python 環境檢查 PyTorch 的 MPS 建置與可用狀態,再依你使用的 CLI 或 API 明確設定 GPU。最後查看 Cellpose 的啟動資訊與執行路徑;單看 PyTorch 回報可用,不能證明這次分割工作已交由 MPS 執行。
PyTorch 顯示 MPS 可用,為甚麼 Cellpose 看起來仍在用 CPU?
兩者檢查的範圍不同。PyTorch 回報的是後端條件,Cellpose 是否採用 GPU,還取決於此次呼叫的參數、實際使用的 Python 環境,以及任務所走的程式路徑。若有不支援的運算子,也要檢查 MPS fallback 設定及日誌,不能只憑整體耗時判定。
Cellpose 的 MPS 會加速整個 3D 分割流程嗎?
不要預設所有 3D 步驟都在 MPS 上執行。模型推論、掩膜生成與後處理可能經過不同程式路徑,支援情況也會受 Cellpose 版本和任務設定影響。請核對對應版本的文件,並分別確認各環節;若無法確認,就以已驗證的環境完成正式分析。
怎樣判斷 Cellpose 分割結果可不可以用於科研分析?
先用符合資料許可要求的代表性影像,對照課題組既有基線、人工檢查的掩膜或已訂定的分析判據。確認細胞邊界、漏分與過度分割等關鍵問題,再核對下游分析步驟。任務完成或輸出檔案存在,只代表流程有結果,不代表結果已通過科研驗收。
用 osxmesh 雲端 Mac 驗收 MPS 分割流程
租用 osxmesh 獨享實體雲端 Mac,在原生 macOS 環境中檢查 MPS 是否可用,以及實際工作流程是否呼叫 GPU。
租用雲端 Mac