[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-fxia22--pointnet.pytorch":3,"tool-fxia22--pointnet.pytorch":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[19,14,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[18,13,14,20],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75666,"2026-04-15T23:15:07",[19,13,20,18],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":29,"last_commit_at":63,"category_tags":64,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,"2026-04-03T21:50:24",[20,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":82,"owner_twitter":83,"owner_website":84,"owner_url":85,"languages":86,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":103,"env_os":104,"env_gpu":105,"env_ram":106,"env_deps":107,"category_tags":113,"github_topics":82,"view_count":10,"oss_zip_url":82,"oss_zip_packed_at":82,"status":22,"created_at":114,"updated_at":115,"faqs":116,"releases":157},8088,"fxia22\u002Fpointnet.pytorch","pointnet.pytorch","pytorch implementation for \"PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation\"  https:\u002F\u002Farxiv.org\u002Fabs\u002F1612.00593","pointnet.pytorch 是经典论文《PointNet》的 PyTorch 版本实现，专为处理三维点云数据而设计。它核心解决了如何直接对无序的点集进行深度学习的问题，无需将数据转换为规则的网格或体素，即可高效完成 3D 物体分类与部件分割任务。\n\n这款工具非常适合从事计算机视觉、自动驾驶感知及机器人领域的研究人员与开发者使用。对于希望复现学术成果、验证算法效果或构建 3D 理解模型的技术人员来说，它提供了一个清晰、易读的代码基准。其独特的技术亮点在于引入了对称函数（如最大池化）来处理点云的无序性，并可选配特征变换网络（Feature Transform）来增强模型对几何变换的鲁棒性。\n\n虽然其在部分细分任务上的精度略低于原始 TensorFlow 实现，但 pointnet.pytorch 凭借 PyTorch 框架的灵活性与易用性，极大地降低了 3D 深度学习的入门门槛。项目包含了完整的训练脚本、数据下载指引及可视化支持，帮助用户快速在 ModelNet40 或 ShapeNet 等数据集上跑通流程，是探索三维人工智能不可或缺的开箱即用资源。","# PointNet.pytorch\nThis repo is implementation for PointNet(https:\u002F\u002Farxiv.org\u002Fabs\u002F1612.00593) in pytorch. The model is in `pointnet\u002Fmodel.py`.\n\nIt is tested with pytorch-1.0.\n\n# Download data and running\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\ncd pointnet.pytorch\npip install -e .\n```\n\nDownload and build visualization tool\n```\ncd scripts\nbash build.sh #build C++ code for visualization\nbash download.sh #download dataset\n```\n\nTraining \n```\ncd utils\npython train_classification.py --dataset \u003Cdataset path> --nepoch=\u003Cnumber epochs> --dataset_type \u003Cmodelnet40 | shapenet>\npython train_segmentation.py --dataset \u003Cdataset path> --nepoch=\u003Cnumber epochs> \n```\n\nUse `--feature_transform` to use feature transform.\n\n# Performance\n\n## Classification performance\n\nOn ModelNet40:\n\n|  | Overall Acc | \n| :---: | :---: | \n| Original implementation | 89.2 | \n| this implementation(w\u002Fo feature transform) | 86.4 | \n| this implementation(w\u002F feature transform) | 87.0 | \n\nOn [A subset of shapenet](http:\u002F\u002Fweb.stanford.edu\u002F~ericyi\u002Fproject_page\u002Fpart_annotation\u002Findex.html)\n\n|  | Overall Acc | \n| :---: | :---: | \n| Original implementation | N\u002FA | \n| this implementation(w\u002Fo feature transform) | 98.1 | \n| this implementation(w\u002F feature transform) | 97.7 | \n\n## Segmentation performance\n\nSegmentation on  [A subset of shapenet](http:\u002F\u002Fweb.stanford.edu\u002F~ericyi\u002Fproject_page\u002Fpart_annotation\u002Findex.html).\n\n| Class(mIOU) | Airplane | Bag| Cap|Car|Chair|Earphone|Guitar|Knife|Lamp|Laptop|Motorbike|Mug|Pistol|Rocket|Skateboard|Table\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | \n| Original implementation |  83.4 | 78.7 | 82.5| 74.9 |89.6| 73.0| 91.5| 85.9| 80.8| 95.3| 65.2| 93.0| 81.2| 57.9| 72.8| 80.6| \n| this implementation(w\u002Fo feature transform) | 73.5 | 71.3 | 64.3 | 61.1 | 87.2 | 69.5 | 86.1|81.6| 77.4|92.7|41.3|86.5|78.2|41.2|61.0|81.1|\n| this implementation(w\u002F feature transform) |  |  |  |  | 87.6 |  | | | | | | | | | |81.0|\n\nNote that this implementation trains each class separately, so classes with fewer data will have slightly lower performance than reference implementation.\n\nSample segmentation result:\n![seg](https:\u002F\u002Fraw.githubusercontent.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fmaster\u002Fmisc\u002Fshow3d.png?token=AE638Oy51TL2HDCaeCF273X_-Bsy6-E2ks5Y_BUzwA%3D%3D)\n\n# Links\n\n- [Project Page](http:\u002F\u002Fstanford.edu\u002F~rqi\u002Fpointnet\u002F)\n- [Tensorflow implementation](https:\u002F\u002Fgithub.com\u002Fcharlesq34\u002Fpointnet)\n","# PointNet.pytorch\n本仓库是 PointNet（https:\u002F\u002Farxiv.org\u002Fabs\u002F1612.00593）在 PyTorch 中的实现。模型位于 `pointnet\u002Fmodel.py`。\n\n已在 PyTorch 1.0 上测试通过。\n\n# 下载数据与运行\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\ncd pointnet.pytorch\npip install -e .\n```\n\n下载并编译可视化工具：\n```\ncd scripts\nbash build.sh # 编译用于可视化的 C++ 代码\nbash download.sh # 下载数据集\n```\n\n训练：\n```\ncd utils\npython train_classification.py --dataset \u003C数据集路径> --nepoch=\u003C训练轮数> --dataset_type \u003Cmodelnet40 | shapenet>\npython train_segmentation.py --dataset \u003C数据集路径> --nepoch=\u003C训练轮数>\n```\n\n使用 `--feature_transform` 参数可启用特征变换。\n\n# 性能\n\n## 分类性能\n\n在 ModelNet40 数据集上：\n\n|  | 整体准确率 |\n| :---: | :---: |\n| 原始实现 | 89.2 |\n| 本实现（不使用特征变换） | 86.4 |\n| 本实现（使用特征变换） | 87.0 |\n\n在 [Shapenet 的一个子集](http:\u002F\u002Fweb.stanford.edu\u002F~ericyi\u002Fproject_page\u002Fpart_annotation\u002Findex.html) 上：\n\n|  | 整体准确率 |\n| :---: | :---: |\n| 原始实现 | 无数据 |\n| 本实现（不使用特征变换） | 98.1 |\n| 本实现（使用特征变换） | 97.7 |\n\n## 分割性能\n\n在 [Shapenet 的一个子集](http:\u002F\u002Fweb.stanford.edu\u002F~ericyi\u002Fproject_page\u002Fpart_annotation\u002Findex.html) 上进行分割：\n\n| 类别（mIOU） | 飞机 | 包 | 帽子 | 汽车 | 椅子 | 耳机 | 吉他 | 刀具 | 灯 | 笔记本电脑 | 摩托车 | 杯子 | 手枪 | 火箭 | 滑板 | 桌子 |\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| 原始实现 | 83.4 | 78.7 | 82.5 | 74.9 | 89.6 | 73.0 | 91.5 | 85.9 | 80.8 | 95.3 | 65.2 | 93.0 | 81.2 | 57.9 | 72.8 | 80.6 |\n| 本实现（不使用特征变换） | 73.5 | 71.3 | 64.3 | 61.1 | 87.2 | 69.5 | 86.1 | 81.6 | 77.4 | 92.7 | 41.3 | 86.5 | 78.2 | 41.2 | 61.0 | 81.1 |\n| 本实现（使用特征变换） | — | — | — | — | 87.6 | — | — | — | — | — | — | — | — | — | — | 81.0 |\n\n请注意，本实现是针对每个类别单独训练的，因此数据量较少的类别其性能会略低于参考实现。\n\n分割结果示例：\n![seg](https:\u002F\u002Fraw.githubusercontent.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fmaster\u002Fmisc\u002Fshow3d.png?token=AE638Oy51TL2HDCaeCF273X_-Bsy6-E2ks5Y_BUzwA%3D%3D)\n\n# 链接\n\n- [项目主页](http:\u002F\u002Fstanford.edu\u002F~rqi\u002Fpointnet\u002F)\n- [TensorFlow 实现](https:\u002F\u002Fgithub.com\u002Fcharlesq34\u002Fpointnet)","# PointNet.pytorch 快速上手指南\n\n## 环境准备\n\n- **操作系统**：Linux \u002F macOS (Windows 需自行配置 C++ 编译环境以支持可视化工具)\n- **Python 版本**：推荐 Python 3.6+\n- **核心依赖**：\n  - PyTorch >= 1.0\n  - NumPy\n  - tqdm\n  - matplotlib\n- **可视化工具依赖**：需要系统安装 C++ 编译器 (如 `g++`) 用于构建可视化脚本。\n\n> **国内加速建议**：\n> 安装依赖时推荐使用清华或阿里镜像源，例如：\n> `pip install -e . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n1. **克隆项目代码**\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\n   cd pointnet.pytorch\n   ```\n\n2. **安装 Python 依赖**\n   ```bash\n   pip install -e .\n   ```\n\n3. **构建可视化工具并下载数据集**\n   进入脚本目录执行构建和下载命令：\n   ```bash\n   cd scripts\n   bash build.sh\n   bash download.sh\n   ```\n   *注：`build.sh` 会编译用于可视化的 C++ 代码；`download.sh` 会自动下载所需数据集。*\n\n## 基本使用\n\n本项目主要支持**分类 (Classification)** 和 **分割 (Segmentation)** 两种任务。以下是最简单的训练示例。\n\n### 1. 训练分类模型 (Classification)\n\n支持 ModelNet40 和 ShapeNet 数据集。\n\n```bash\ncd utils\n# 训练 ModelNet40 分类模型，运行 10 个 epoch\npython train_classification.py --dataset \u003Cdataset path> --nepoch=10 --dataset_type modelnet40\n\n# 开启特征变换 (feature transform) 进行训练（通常能提升精度）\npython train_classification.py --dataset \u003Cdataset path> --nepoch=10 --dataset_type modelnet40 --feature_transform\n```\n\n### 2. 训练分割模型 (Segmentation)\n\n基于 ShapeNet 部分标注数据集进行部件分割。\n\n```bash\ncd utils\n# 训练分割模型，运行 10 个 epoch\npython train_segmentation.py --dataset \u003Cdataset path> --nepoch=10\n\n# 开启特征变换进行训练\npython train_segmentation.py --dataset \u003Cdataset path> --nepoch=10 --feature_transform\n```\n\n**参数说明：**\n- `\u003Cdataset path>`：替换为你本地数据集的实际路径。\n- `--nepoch`：指定训练的轮数。\n- `--feature_transform`：可选参数，启用后模型将包含特征变换模块，有助于提高分类和分割的鲁棒性。","某自动驾驶初创公司的感知算法团队，正致力于开发一套能实时识别道路上不规则障碍物（如散落货物、施工路障）的 3D 视觉系统。\n\n### 没有 pointnet.pytorch 时\n- **数据预处理繁琐**：团队需手动编写复杂的体素化代码将激光雷达点云转换为规则网格，导致原始几何细节大量丢失，难以识别细小物体。\n- **模型复现成本高**：直接复现论文中的 PointNet 架构需从零搭建 PyTorch 算子，特征变换（Feature Transform）等关键模块调试困难，耗时数周仍难收敛。\n- **分割精度不足**：采用传统方法对非刚性物体进行部件分割时，无法有效捕捉全局上下文信息，导致对“摩托车”或“滑板”等复杂结构的识别米 IoU 低于 60%。\n\n### 使用 pointnet.pytorch 后\n- **原生点云处理**：直接利用 pointnet.pytorch 输入无序点集，保留了完整的 3D 空间几何特征，显著提升了对不规则障碍物的敏感度。\n- **快速落地验证**：调用库中预置的 `train_classification.py` 和 `train_segmentation.py` 脚本，结合内置的特征变换选项，仅需数天即可完成模型在 ModelNet40 数据集上的训练与调优。\n- **细粒度识别突破**：借助成熟的分割架构，团队在 ShapeNet 子集上的关键部件分割性能大幅改善，复杂物体的平均米 IoU 提升至 80% 以上，满足了车规级安全需求。\n\npointnet.pytorch 通过提供高效、可靠的 PyTorch 原生实现，将团队从底层架构构建中解放出来，使其能专注于解决自动驾驶场景中复杂的 3D 感知难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffxia22_pointnet.pytorch_30e241cb.png","fxia22","Fei Xia","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffxia22_a754bf9f.jpg","Research Scientist @google-research, previously Ph.D. @StanfordVL @cvgl \r\nComputer Vision and Robotics","Google, Inc.","Mountain View, CA",null,"xf1280","https:\u002F\u002Ffxia22.github.io","https:\u002F\u002Fgithub.com\u002Ffxia22",[87,91,95],{"name":88,"color":89,"percentage":90},"Python","#3572A5",94.8,{"name":92,"color":93,"percentage":94},"C++","#f34b7d",3.8,{"name":96,"color":97,"percentage":98},"Shell","#89e051",1.4,2345,636,"2026-04-15T01:12:16","MIT",4,"Linux, macOS","未说明（基于 PyTorch 实现，通常支持 CPU 或 NVIDIA GPU，具体取决于本地 PyTorch 安装配置）","未说明",{"notes":108,"python":109,"dependencies":110},"该项目在 PyTorch 1.0 环境下测试通过。运行前需执行 scripts\u002Fbuild.sh 编译用于可视化的 C++ 代码，并运行 scripts\u002Fdownload.sh 下载数据集。训练分类和分割任务时需指定数据集路径和轮数。","未说明（兼容 PyTorch 1.0 的 Python 版本，通常为 Python 3.6+）",[111,112],"pytorch==1.0","C++ compiler (用于构建可视化脚本)",[18],"2026-03-27T02:49:30.150509","2026-04-16T16:03:28.501153",[117,122,127,132,137,142,147,152],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},36198,"为什么在代码中混合使用了 nn.Conv1d 和 nn.Linear？它们有什么区别？","对于点卷积（kernel_size=1），nn.Conv1d 和 nn.Linear 在数学结果上没有区别，主要差异在于初始化方式和速度（Linear 通常更快）。选择 Conv1d 的前几层是因为 BatchNorm1d 期望输入形状为 (N, C, L)，使用 Conv1d 可以避免在每一层前后频繁重塑（reshape）张量。如果全部使用 Linear，则需要在每次通过 BatchNorm1d 前调整维度。此外，由于后面紧跟 BatchNorm1d，建议将所有 Conv1d 和 Linear 层的 bias 设置为 False。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F39",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},36199,"训练过程中 Loss 变为 NaN 怎么办？","Loss 变为 NaN 通常是因为输入数据中包含 NaN 值，而非梯度爆炸。这往往发生在数据预处理阶段（如去均值和归一化步骤）产生了异常值。解决方法是检查数据集，找出并移除包含 NaN 点的特定模型文件。可以使用 torch.autograd.detect_anomaly() 来定位产生 NaN 的具体位置。确认原始点云文件无问题后，重点排查预处理脚本中的计算逻辑。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F58",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},36200,"运行时报错 FileNotFoundError: No such file or directory: 'trainval.txt' 如何解决？","该错误是因为缺少数据集的划分文件（如 trainval.txt 或 test.txt）。这些文件通常不包含在代码库中，需要用户自行下载 ModelNet40 数据集并按照项目要求生成或放置对应的索引文件。请检查 dataset 目录下是否已正确存放了包含文件列表的 txt 文件，确保路径配置与代码中的读取路径一致。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F50",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},36201,"训练分类模型时准确率始终为 0 且 Loss 维持在 2.0 左右是什么原因？","如果训练初期出现这种情况是正常的，但如果训练多个 epoch（如 25 个）后仍无改善，可能是以下原因：1. 评估脚本（show_cls.py）的逻辑问题，确保没有误跑训练代码导致输出混淆；2. 批次大小（batch_size）设置不当，需确保分母与批次大小一致；3. 数据类型问题，例如标签 tensor 类型无法直接进行除法运算。尝试增加训练轮数（如 60 epochs），正常情况应能达到约 95% 的准确率。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F11",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},36202,"运行 train_classification.py 时报错 TypeError: __init__() got an unexpected keyword argument 'num_points' 怎么办？","该错误通常是因为代码版本不匹配或参数传递错误。如果在实例化 PointNetCls 时传递了 num_points 参数但构造函数未定义该参数，应检查 model.py 中的类定义。若注释掉该参数后出现 'ValueError: Expected more than 1 value per channel' 错误，这通常是因为 batch_size 设置为 1 且开启了 BatchNorm 的训练模式。请确保训练时的 batch_size 大于 1，或者在评估时将模型切换为 eval 模式（model.eval()）。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F24",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},36203,"该项目是否实现了论文中的特征变换网络（Feature Transform Net）？","该仓库主要实现了基础分类和分割功能。关于特征变换网（Feature Transform Net），原作者指出在某些基础分类实现（如 pointnet_cls_basic.py）中本身就不包含复杂的变换网络。虽然完整的 PointNet 架构包含输入变换（STN）和特征变换，但在简单的分类任务中，有时可以省略特征变换部分而不严重影响结果。如果需要严格复现论文所有细节，可能需要参考官方代码或自行添加相关模块。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F32",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},36204,"STN3D 网络中的恒等矩阵初始化是如何实现的？","在 STN3D 的实现中，输出矩阵是通过一个全连接层生成后，加上一个初始化为单位矩阵的偏置项来实现的。代码中通过 `iden = Variable(torch.from_numpy(np.array([1,0,0,0,1,0,0,0,1])...))` 创建了一个 3x3 的单位矩阵，并将其重复扩展到 batch_size 大小。最后将网络输出 `x` 与 `iden` 相加（`x = x + iden`），从而确保网络初始化时的变换效果接近恒等变换，有助于稳定训练。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F14",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},36205,"是否有计划移植 PointNet++ 到 PyTorch？","当前仓库仅包含 PointNet (v1) 的实现。关于 PointNet++，维护者曾指出有一个独立的空仓库用于此目的（https:\u002F\u002Fgithub.com\u002Fmanuel-delverme\u002Fpointnet2.pytorch\u002F），但请注意区分 PointNet 和 PointNet++ 的实现。如果需要 PointNet++ 代码，建议查找专门的第三方实现或关注相关独立仓库的更新。","https:\u002F\u002Fgithub.com\u002Ffxia22\u002Fpointnet.pytorch\u002Fissues\u002F9",[]]