Repository: pytorch
Issue: 关于yolov5在mac设备上使用pytorch的mps加速出现的各种问题
Labels: needs reproduction,triaged,module: mps

### 🐛 Describe the bug

首先从训练模型讲起，我使用的设备是一台MacOS 14的设备，m1max芯片，如果使用
```
python train.py --device mps
```
也就是仅使用官方的训练数据，训练的过程中会出现
```
  Epoch    GPU_mem   box_loss   obj_loss   cls_loss  Instances       Size
  0%|          | 0/8 [00:00<?, ?it/s]/Users/xiongkaiwen/yolov5/train.py:414: FutureWarning: `torch.cuda.amp.autocast(args...)` is deprecated. Please use `torch.amp.autocast('cuda', args...)` instead.
  with torch.cuda.amp.autocast(amp):
```
虽然这并不影响训练的过程，最终还是可以正常的输出训练好的模型。
在我使用这个训练好的模型对 yolov5/data/images 文件夹内的图片进行检测，检测结果是正常的，但当我使用这个训练好的模型对视频检测的时候，最终输出的视频文件中框选的结果是乱的，体现在
<img width="598" alt="352814020-98bc023b-2003-424f-ad27-6eaeccf1fa75" src="https://github.com/user-attachments/assets/13690651-b026-49ce-9645-d5e21e5bcd16">
这个是我在视频里面截取的一帧，并且整个视频中框都呈现类似的错误，而我如果换用cpu进行检测的时候，检测结果就正常了
<img width="426" alt="352814029-ee2afdaf-efa6-45db-9fde-ad04bd9e1e29" src="https://github.com/user-attachments/assets/9f535d8f-25c8-4f45-b1d3-3215d3711887">
并且，如果我使用yolov5文件夹内的yolov5s.pt进行检测的时候，这种问题又消失了，检测的结果就是正常的，这就让人非常不能理解，我认为yolov5s.pt文件的训练集与我使用该命令的数据集
```
python train.py --device mps
```
这个命令使用的的数据集与官方应该是一致的，为什么反而出现了两种不同的结果？为什么会出现这样的错误？

还有，我在使用我自己的数据集的过程中，我曾经在服务器上训练好了一个模型，并且在那边使用的是cuda加速，并且确定这个模型文件是可用的，在服务器上对视频进行识别是正常的，但在我的设备上使用mps，使用这个模型对相同的视频文件进行检测，结果就类似于我给出的图片一致，在本地如果使用mps加速，结果就出现错乱，但使用cpu，结果就是符合预期的，我想知道这到底是什么问题。


### Versions

我使用的是anaconda创建版本为Python 3.11.9的虚拟环境，并使用
```
git clone https://github.com/ultralytics/yolov5.git
pip install -r requirements.txt
cd yolov5
```
在此时，删除现有的pytorch，安装最新版的nightly版,只有在nightly2.5.0版mps加速才能正常的作为参数输入，否则出现错误直接无法运行。以下是安装命令
```
pip uninstall torch
pip uninstall torchvision
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
```
此时我所有包的版本如下：
```
Package            Version
------------------ ------------------
certifi            2024.7.4
charset-normalizer 3.3.2
contourpy          1.2.1
cycler             0.12.1
filelock           3.15.4
fonttools          4.53.1
fsspec             2024.6.1
gitdb              4.0.11
GitPython          3.1.43
idna               3.7
Jinja2             3.1.4
kiwisolver         1.4.5
MarkupSafe         2.1.5
matplotlib         3.9.1
mpmath             1.3.0
networkx           3.3
numpy              1.26.4
opencv-python      4.10.0.84
packaging          24.1
pandas             2.2.2
pillow             10.4.0
pip                24.1.2
psutil             6.0.0
py-cpuinfo         9.0.0
pyparsing          3.1.2
python-dateutil    2.9.0.post0
pytz               2024.1
PyYAML             6.0.2rc1
requests           2.32.3
scipy              1.14.0
seaborn            0.13.2
setuptools         71.1.0
six                1.16.0
smmap              5.0.1
sympy              1.13.1
thop               0.1.1-2209072238
torch              2.5.0.dev20240727
torchaudio         2.4.0
torchvision        0.20.0.dev20240727
tqdm               4.66.4
typing_extensions  4.12.2
tzdata             2024.1
ultralytics        8.2.66
ultralytics-thop   2.0.0
urllib3            2.2.2
wheel              0.43.0
```
按照这个步骤应该就能跟我的环境一致，然后就能按照我的步骤还原问题

cc @kulinseth @albanD @malfet @DenisVieriu97 @jhavukainen