Mac pytorch训练怎么调用GPU

### 如何在 Mac 上配置 PyTorch 使用 GPU 进行训练 #### 安装适用于 Apple Silicon 的 PyTorch 版本 对于配备 M1 芯片的 MacBook Pro 或其他 Apple Silicon 设备,安装特定于这些架构的 PyTorch 构建版本至关重要。官方渠道已经提供了针对此类硬件优化过的二进制文件,能够充分利用 Metal Performance Shaders (MPS)[^3]。 #### 设置 MPS 后端 为了使 PyTorch 可以识别并利用 macOS 中集成的图形处理单元(GPU),需要确保选择了正确的计算后端——即 Apple 的 Metal Performance Shaders (MPS)。这可以通过设置 `device` 对象指向 `'mps'` 来实现: ```python import torch if torch.backends.mps.is_available(): device = torch.device('mps') else: device = torch.device('cpu') model = YourModelClass().to(device) input_tensor = your_input_data.to(device) output = model(input_tensor) ``` 上述代码片段展示了如何检测 MPS 是否可用,并相应地调整设备选择逻辑[^4]。 #### 配置环境变量 通常情况下,在 Windows 平台上会通过设定 `os.environ["CUDA_VISIBLE_DEVICES"]` 来控制可见的 GPU 列表;然而,在 MacOS 下无需这样做,因为系统默认管理着所有可用资源。因此应当移除任何试图手动指定 GPU ID 的语句。 #### 更新旧版 API 调用方式 早期版本中的某些函数调用可能不再适用当前的最佳实践。例如,将张量移动至 GPU 应该采用 `.to()` 方法而不是过时的 `.cuda()` 接口。同样地,当创建新的可变张量实例时也要记得将其放置到合适的设备上去。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

体验机器学习:在Mac电脑上训练和部署一个图片分类模型.zip

体验机器学习:在Mac电脑上训练和部署一个图片分类模型.zip

体验机器学习:在Mac电脑上训练和部署一个图片分类模型.zip

Mac M芯片适配Wan2.2模型[代码]

Mac M芯片适配Wan2.2模型[代码]

本文详细介绍了在Mac M系列芯片上部署和优化Wan2.2-I2V-A14B视频生成模型的全过程。从环境配置、模型转换到性能优化技巧,作者分享了在M2 Max MacBook Pro上的实测经验。测试结果显示,经过适当优化后,Mac平台在生成速度和质量上与NVIDIA显卡的差距在可接受范围内,特别适合轻度到中度的视频生成需求。文章还提供了设备选择、分辨率策略和工作流优化等实用建议,为Mac开发者提供了有价值的参考。

Anaconda安装教程[源码]

Anaconda安装教程[源码]

本文提供了详细的Anaconda安装教程,从下载到配置的全流程指导。内容包括Anaconda的官方下载渠道、安装前的准备工作、图文安装步骤、环境变量配置、更换镜像源以提高下载速度、与PyCharm的集成方法、验证环境是否正常工作、创建和管理虚拟环境的指南,以及配置PyTorch环境的快速上手步骤。通过本文,读者可以快速搭建一个功能强大的Python开发环境,适合进行数据科学、机器学习和科学计算等项目的开发。

torch_spline_conv-1.2.0-cp36-cp36m-macosx_10_9_x86_64whl.zip

torch_spline_conv-1.2.0-cp36-cp36m-macosx_10_9_x86_64whl.zip

需要配和指定版本torch-1.4.0+cpu使用,请在安装该模块前提前安装官方命令安装torch-1.4.0+cpu

anaconda离线文件库-Lib-site-packages-torch

anaconda离线文件库-Lib-site-packages-torch

anaconda离线文件库-

torch_scatter-2.0.5-cp37-cp37m-macosx_10_9_x86_64whl.zip

torch_scatter-2.0.5-cp37-cp37m-macosx_10_9_x86_64whl.zip

需要配和指定版本torch-1.5.0+cpu使用,请在安装该模块前提前安装官方命令安装torch-1.5.0+cpu

pytorch安装GPU版本 (Cuda12.1)教程

pytorch安装GPU版本 (Cuda12.1)教程

pytorch安装教程gpu pytorch安装GPU版本 (Cuda12.1)教程 Windows、Mac和Linux系统下GPU版PyTorch(CUDA 12.1)快速安装

Mac安装PyTorch指南[项目源码]

Mac安装PyTorch指南[项目源码]

本文详细介绍了在M芯Mac电脑上通过pip安装PyTorch开发环境的步骤,包括准备工作、安装PyTorch、验证安装以及使用M芯GPU训练模型的完整流程。文章首先强调了Python和pip的版本要求,并提供了检查版本和安装位置的命令。接着,详细说明了如何从PyTorch官方网站获取安装链接,并通过pip3命令完成安装。安装完成后,通过简单的代码示例验证PyTorch是否成功安装。最后,文章展示了如何使用M芯GPU训练一个简单的线性回归模型,包括模型定义、数据准备、训练过程和结果输出,帮助开发者快速上手深度学习开发。

PyTorch支持M1芯片GPU加速[项目代码]

PyTorch支持M1芯片GPU加速[项目代码]

PyTorch官方宣布正式支持在搭载苹果M1芯片的Mac上进行GPU加速的机器学习模型训练,显著提升了训练和推理速度。通过苹果Metal Performance Shaders (MPS)后端,PyTorch能够利用M1芯片的GPU进行高效计算,训练速度提升高达6倍,推理速度提升21倍。M1芯片的统一内存架构使得GPU可以直接访问完整内存,降低了与云算力相关的成本,并减少了数据检索延迟。测试结果显示,部分模型如ResNet18和AlexNet的加速效果尤为显著,而M1 Ultra的性能甚至可能超过英伟达T4。开发者需安装原生版本Python并升级系统至macOS 12.3或更高版本以使用此功能。

pytorch安装教程gpu.md

pytorch安装教程gpu.md

pytorch安装教程gpu

Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式

Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式

我就废话不多说了,大家还是直接看代码吧! #!/usr/bin/python # -*- coding: UTF-8 -*- from PIL import Image import numpy as np import torch pil_img = Image.open('/Users/songlu/Desktop/code.jpg') img = np.array(pil_img) print torch.from_numpy(img) 补充知识:pytorch mxnet 多GPU训练 batch 的区别 区别有很多,这是一点点不一样 1、mxnet 的batch ,设置的是单卡的

MPS加速PyTorch训练指南[可运行源码]

MPS加速PyTorch训练指南[可运行源码]

本文详细介绍了如何在MacBook Pro M1/M2上使用Metal Performance Shaders (MPS) 加速PyTorch训练。文章首先解释了MPS的原理及其在Apple Silicon统一内存架构下的优势,随后提供了环境配置的详细步骤和验证方法。通过三个不同复杂度的模型测试(全连接网络、卷积神经网络和视觉Transformer块),作者展示了MPS带来的显著性能提升(4-5倍加速)。此外,文章还分享了实战技巧和常见问题排查方法,帮助开发者最大化利用Mac本地GPU资源进行高效的机器学习训练。

PyTorch GPU安装教程[项目代码]

PyTorch GPU安装教程[项目代码]

本教程详细介绍了在Windows、Mac和Linux系统上安装GPU版本的PyTorch(CUDA 12.1)的步骤。教程涵盖了从检查GPU兼容性、安装NVIDIA驱动程序、配置CUDA Toolkit到设置清华源以加速安装的全过程。每个系统的安装步骤都分为8个详细步骤,包括创建虚拟环境、安装PyTorch以及验证安装是否成功。通过本教程,用户可以轻松完成GPU版本PyTorch的安装,为深度学习任务做好准备。教程还强调了在安装前确保系统满足硬件要求的重要性。

pytorch安装教程gpu.pdf

pytorch安装教程gpu.pdf

PyTorch的GPU版本安装过程相对复杂,因为它依赖于多个组件,包括CUDA和cuDNN。以下是详细的PyTorch GPU版本安装教程: 一、准备工作 1.检查系统要求: 1.确保你的操作系统是64位的Windows、Linux或Mac OS。 2.PyTorch的GPU版本需要NVIDIA显卡,并且该显卡需要支持CUDA。 2.安装Python和Anaconda: 1.PyTorch需要Python 3.6或更高版本。你可以通过安装Anaconda来管理Python环境和依赖项。 2.访问Anaconda官网下载并安装Anaconda。 3.检查NVIDIA显卡和驱动: 1.打开NVIDIA控制面板或在命令行输入nvidia-smi来检查你的显卡型号和驱动版本。 2.确保显卡驱动是最新的,因为旧版本的驱动可能不支持最新的CUDA版本。 二、安装CUDA和cuDNN 1.安装CUDA: 1.访问NVIDIA CUDA Toolkit官网下载适合你显卡和操作系统的CUDA版本。 2.安装CUDA时,注意选择“精简”模式以简化安装过程。 3.安装完成后,通过命令行输入nvcc -V来验

pytorch安装教程gpu.docx

pytorch安装教程gpu.docx

pytorch安装教程gpu

GPU版Pytorch安装教程[项目源码]

GPU版Pytorch安装教程[项目源码]

本文详细介绍了如何安装支持CUDA的GPU版Pytorch,包括CUDA的安装前置条件、下载与安装步骤,Anaconda的安装与环境配置,以及Pytorch的具体安装过程。文章还提供了解决CPU版和GPU版冲突问题的方法,确保用户能够顺利安装并使用GPU加速的Pytorch进行深度学习项目。

《动手学深度学习》安装GPU版Pytorch

《动手学深度学习》安装GPU版Pytorch

使用的软件为py3.9版本的miniconda,安装miniconda可能需要安装的时候选择修改环境变量,接下来按照《动手学深度学习》书上的安装就行,创建d2l环境,接下来是安装Torch,参考文章为https://blog.csdn.net/m0_51302496/article/details/138013760,cuda版本为11.8,安装方式为whl安装。资源为miniconda安装包、cuda118安装包、以及对应whl文件,其余文件暂时可以不管,走百度网盘下载可以大量缩减您下载的时间,本人使用的显卡为rtx970,实测可以成功,如果有用,留下好评,谢谢,如果没用请及时反映。

mac安装pytorch及系统的numpy更新方法.pdf

mac安装pytorch及系统的numpy更新方法.pdf

mac安装pytorch及系统的numpy更新方法

03-PyTorch简介1

03-PyTorch简介1

03-PyTorch简介1

pytorch安装-pytorch安装

pytorch安装-pytorch安装

pytorch pytorch安装 pytorch安装 pytorch安装 pytorch安装 pytorch安装

最新推荐最新推荐

recommend-type

科技中介服务机构如何借助平台提升服务效率与专业性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
recommend-type

高校技术转移办公室人员如何快速评估成果的市场转化潜力?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
recommend-type

政府科技管理者如何实现科技成果转化的全流程监管?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
recommend-type

PSO优化RBF模糊神经网络自适应PID控制、RBF模糊神经网络、传统PID三种算法对比仿真(m函数实现)

PSO优化RBF模糊神经网络自适应PID控制、RBF模糊神经网络、传统PID三种算法对比仿真(m函数实现)
recommend-type

基于多目标哈里斯鹰算法及模型预测控制(MPC)的储能和风电平抑波动研究(Matlab代码实现)

内容概要:本文研究了基于多目标哈里斯鹰算法(MOHHO)与模型预测控制(MPC)相结合的储能系统与风电场联合平抑功率波动的方法。针对风电出力的不确定性,构建了综合考虑平抑效果与储能损耗的多目标优化模型,并采用MOHHO算法对MPC控制器的权重参数进行优化求解,从而在保障电网功率稳定的同时延长储能设备使用寿命。研究涵盖了算法设计、控制策略构建及仿真验证全过程,详细阐述了MOHHO在多目标参数整定中的实现机制与MPC的滚动优化过程,结果表明该方法能有效降低风电波动对电网的冲击,提升系统运行的经济性与鲁棒性,适用于高比例可再生能源接入的电力系统调度场景。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,从事新能源并网、储能控制、智能优化算法或模型预测控制研究的研发人员及研究生。; 使用场景及目标:①解决风电功率剧烈波动引起的电网频率与电压不稳定问题;②优化储能系统的充放电策略以实现功率平滑输出并减少循环损耗;③掌握多目标智能优化算法在MPC参数整定中的应用方法;④学习基于Matlab的电力系统建模与仿真分析技术,深入理解预测控制与优化算法的协同机制。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注MOHHO算法的种群演化过程、Pareto最优解集的生成逻辑以及MPC控制器的预测时域与权重矩阵设计,通过调整风电波动场景与储能参数观察系统响应变化,全面掌握多目标优化与模型预测控制在实际工程中的集成应用。
recommend-type

Java算法实战:高效排序与查找优化技术及Redis/MySQL集成应用

Java算法实战项目中的排序与查找优化技巧,是软件开发工程师尤其是后端开发者必须深入掌握的核心能力之一。本项目标题明确聚焦于“排序”与“查找”两大经典算法范畴,并强调“优化技巧”与“实战”属性,意味着其内容绝非停留在教科书式的理论推导或简单代码复现层面,而是深度融合Java语言特性、JVM运行机制、数据结构选型、内存模型、并发控制、以及现代企业级技术栈(如Spring Boot、MyBatis、MySQL、Redis、RabbitMQ)的实际约束与性能瓶颈,构建具备高吞吐、低延迟、强一致性与可扩展性的工程化解决方案。 在排序方面,Java开发者需系统掌握从基础到进阶的完整谱系:包括但不限于冒泡、插入、选择等O(n²)初级算法(用于教学理解时间复杂度本质及稳定性概念),再到归并排序(稳定、适合外部排序与大数据分治)、快速排序(平均O(n log n),原地、缓存友好但最坏退化为O(n²),需三数取中+尾递归优化+小数组切换插入排序)、堆排序(原地、最坏O(n log n),适用于Top-K场景与优先队列建模)、以及TimSort(Java 7+ Arrays.sort()对对象数组的默认实现,融合归并与插入,针对真实世界部分有序数据高度优化)。实战中更需关注:Comparator自定义比较器的null安全与性能开销;Arrays.parallelSort()在多核CPU下的并行分治策略与ForkJoinPool调优;Stream.sorted()的惰性求值与中间操作链式开销;以及面对海量日志、订单、用户行为等场景时,如何结合Redis Sorted Set(ZSET)实现分布式范围查询与排名,或借助Elasticsearch的倒排索引+跳表结构完成近实时排序检索。 在查找方面,“优化”远不止于二分查找的递归/迭代实现。项目必然涵盖:哈希表底层(HashMap在Java 8+的红黑树退化机制、扩容阈值loadFactor=0.75的数学依据、key的hashCode与equals契约一致性校验);TreeMap/TreeSet的红黑树平衡策略与O(log n)范围查询优势;ConcurrentHashMap的分段锁(1.7)到CAS+synchronized(1.8)演进及其在高并发计数、缓存穿透防护中的应用;布隆过滤器(Bloom Filter)在Redis中预判缓存是否存在以降低DB压力;跳表(Skip List)在Redis ZSET与LevelDB中的高效区间遍历原理;以及结合MySQL B+树索引(聚簇/非聚簇)、覆盖索引、最左前缀原则、索引下推(ICP)、索引合并(Index Merge)等数据库层查找加速手段。实战中还需处理模糊查找(LIKE通配符优化、全文索引、Elasticsearch Ngram分词)、地理位置查找(GeoHash编码+Redis GEO命令)、图关系查找(Neo4j Cypher路径查询)等复杂维度。 进一步地,“优化技巧”体现在全链路协同:例如使用Redis缓存热点排序结果(如商品销量TOP100),配合RabbitMQ异步更新缓存(避免DB与缓存双写不一致),通过Spring Boot Actuator监控GC频率与Young/Old区占比,定位因频繁创建临时排序数组引发的Minor GC风暴;利用MyBatis的@SelectProvider动态SQL生成分页排序语句,规避OFFSET深分页性能陷阱(改用游标分页或基于ID的条件分页);在微服务架构中,将高频查找逻辑下沉为独立的Search Service,集成Elasticsearch集群并配置副本分片策略保障高可用;甚至引入算法工程化思维——将排序策略抽象为Strategy接口,支持运行时SPI加载不同实现(如按时间衰减加权排序、协同过滤推荐排序、A/B测试分流排序),并通过Spring Cloud Config统一管理策略参数。 此外,“实战”意味着必须直面真实世界的脏数据:空值处理(null-first/null-last语义)、时区不一致导致的时间戳排序错乱、浮点精度误差引发的比较异常(应使用BigDecimal或误差容忍阈值)、中文拼音排序(Collator类或数据库COLLATE utf8mb4_unicode_ci)、大小写敏感性控制(String.CASE_INSENSITIVE_ORDER或数据库LOWER()函数)。项目中的readme.txt与docs目录,极可能包含性能压测报告(JMeter/Gatling)、算法复杂度对比表格、各排序/查找API在不同数据规模(1K/1M/100M)下的实测耗时曲线、GC日志分析片段、以及典型线上问题排查案例(如因未重写hashCode导致HashMap查找失效引发的偶发超时)。 综上,该项目绝非孤立的算法练习,而是以Java生态为基座,贯通数据结构、JVM调优、数据库原理、缓存设计、消息中间件、分布式系统一致性等多维知识的综合性能力熔炉。掌握其中的排序与查找优化技巧,本质上是在锤炼一种系统级性能敏感性思维——即在每一行代码背后,都能清晰预见其在内存、CPU、磁盘、网络四维资源上的消耗轨迹,并能基于量化指标做出最优工程权衡。这种能力,正是区分初级开发者与资深架构师的关键分水岭。
recommend-type

防AI逆向的Android加固方案XopProtector:从原理到接入实践

这两年AI往逆向圈渗透的速度,比我预想的快太多了。以前逆向一个Android APK,Frida脚本一套、jadx打开、关键函数一打,基本能摸清业务逻辑;现在大模型辅助逆向、自动反混淆、伪代码解读这些工具链一上来,传统加固方案确实开始吃力。这个背景下,开源加固项目XopProtector在安全社区的讨论度一直不低,原因也很直接:它把“防AI逆向”当成一个明确的对抗目标,而不是顺手加几个字符串加密就算完事。这篇文章就以Android平台为例,把XopProtector这类激进加固方案从设计思路、关键防护点到实际接入流程过一遍,重点聊聊为什么它能让AI辅助逆向明显失效,以及使用它你需要注意哪些性能
recommend-type

运行 make install 报错‘没有规则可制作目标 install’,这是怎么回事?

当你运行 `make install` 时,如果出现了类似 `make: *** 没有规则可制作目标 'install' 停止.` 的错误提示,这表明当前的 Makefile 中并没有定义 `install` 目标。这种情况可能由以下几个原因之一引起: 1. **未正确配置项目** 许多项目依赖于 `./configure` 脚本来自动生成合适的 Makefile 文件。如果没有先运行此脚本就直接执行 `make` 或者 `make install` ,那么可能导致缺少必要的目标选项。你应该回到项目的主目录并尝试运行: ```bash ./configure --pre
recommend-type

2025年中国精密主轴维修与重建服务市场分析:智能化、定制化趋势及前10强企业市场份额达27.53%

资源摘要信息:“精密主轴维修与重建服务,2025年前10大企业占据中国27.53%的市场份额”这一标题及配套描述与内容,系统揭示了中国高端装备维保产业链中一个高度专业化、技术密集型且战略价值突出的关键细分领域——精密主轴维修与重建服务。该服务并非传统意义上的简单拆装或零件更换,而是融合了精密机械工程、材料科学、动态平衡理论、误差补偿算法、高精度计量学、状态监测与预测性维护等多学科交叉知识的复合型技术服务体系。其核心对象——精密主轴,是数控机床、高速加工中心、五轴联动设备、精密磨床、电主轴、车铣复合机床乃至半导体封装设备、光学镜面加工设备等高端制造装备的“心脏部件”,直接决定整机的回转精度(通常要求径向跳动≤1μm、轴向窜动≤0.5μm)、热稳定性(温升控制在0.5℃/h以内)、动态刚度(≥200N/μm)、最高转速(可达100,000rpm以上)以及寿命可靠性(MTBF≥20,000小时)。因此,维修与重建绝非“修好即可”,而是以“性能再生”为目标的系统性工程:首先需进行全维度失效分析,涵盖疲劳裂纹(常采用荧光渗透+金相显微+SEM扫描电镜三级诊断)、轴承滚道剥落(振动频谱分析+声发射检测)、轴颈磨损(激光干涉仪+圆度仪+轮廓仪联合测绘)、动平衡失准(双面高速动平衡机校正至G0.4级)、预紧力衰减(液压拉伸+扭矩-角度曲线反演)、热变形累积(红外热像+有限元逆向建模)等;其次实施分级修复策略——轻度磨损采用超精研磨+纳米陶瓷涂层再制造;中度损伤启用激光熔覆+五轴联动精密车铣复合加工;严重失效则启动“主轴基体保留+核心功能模块全替换”式重建,包括更换高氮不锈钢主轴芯棒、配对安装P4/P2级超精密角接触球轴承或静压/磁浮轴承、重置内置编码器与温度传感器阵列、重构冷却油路与气密封结构,并最终通过ISO 230-3标准下的24小时连续空载+负载跑合测试、ASME B5.54动态精度验证及客户工况模拟切削验证。当前市场格局显示,前十大服务商合计仅占27.53%份额,凸显行业极度碎片化特征,背后折射出三重深层矛盾:一是技术门槛与产业化能力错配——掌握纳米级动平衡、微米级形位误差补偿、轴承预紧智能调控等核心技术的企业不足百家,而注册维修公司超6,800家,大量从业者仍停留在“换轴承+打表调隙”初级阶段;二是人才结构断层——既懂西门子840D/发那科31i系统底层逻辑、又能操作ZEISS CONTURA三坐标与HEIDENHAIN KGM激光干涉仪的复合型工程师全国存量不足2,000人;三是标准体系缺位——现行JB/T 9877-2017《机床主轴技术条件》仅规定新品验收指标,缺乏针对维修后主轴的GB/T级再制造认证标准、寿命评估方法及数据追溯规范。未来演进将深度嵌入工业4.0生态:一方面,基于数字孪生的主轴全生命周期管理平台将普及,通过在主轴内置IoT传感器实时采集振动、温度、电流、声发射等12类参数,结合LSTM神经网络实现剩余使用寿命(RUL)预测精度达92.7%,驱动“按需维修”替代“定期大修”;另一方面,“云诊断+区域中心工厂+移动快修站”三级服务网络加速成型,头部企业已部署5G+AR远程协作系统,专家可实时指导现场工程师完成轴承热装工艺参数设定,并同步调用云端材料数据库匹配最优润滑脂配方。尤为关键的是,随着国产高端数控系统(如华中9型、科德KMC系列)装机量突破45万台,配套主轴维修标准正从“适配进口主轴”转向“支撑国产自主可控”,这不仅关乎单台设备运维成本降低30%-50%,更直接影响航空航天发动机叶片五轴加工、光刻机双工件台运动控制、新能源汽车电机定子高速铣削等国家战略产业的供应链安全与工艺一致性保障能力。
recommend-type

Windows DLL机制与实战:从加载原理到缺失排查与安全防护

前两天群里一个做后端的同事甩来一张截图,报错信息写着: > ImportError: DLL load failed while importing cv2: 找不到指定的模块。 然后他跟了一句很经典的话:“Windows 是不是把什么东西都做成 DLL?为什么动不动就缺 DLL、坏 DLL、被 DLL 卡住?” 这话听着像吐槽,但确实问到了一个核心问题。Windows 之所以如此重度依赖 DLL,不是微软故意折腾用户,而是这套设计从 1980 年代起就自带很强的技术逻辑:代码共享、内存节省、组件化更新、跨语言复用、插件扩展,全都建立在 DLL 这个形态上。顺着这个问题往下拆,你会发现它