[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-CuriousAI--ladder":3,"tool-CuriousAI--ladder":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 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[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},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":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74939,"2026-04-05T23:16:38",[19,13,20,18],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[20,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},2234,"scikit-learn","scikit-learn\u002Fscikit-learn","scikit-learn 是一个基于 Python 构建的开源机器学习库，依托于 SciPy、NumPy 等科学计算生态，旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口，涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具，内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。\n\n对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言，scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点，让用户无需重复造轮子，只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。\n\n其核心技术亮点在于高度一致的 API 设计风格，所有估算器（Estimator）均遵循相同的调用逻辑，极大地降低了学习成本并提升了代码的可读性与可维护性。此外，它还提供了强大的模型选择与评估工具，如交叉验证和网格搜索，帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目，scikit-learn 以其稳定性、详尽的文档和活跃的社区支持，成为连接理论学习与工业级应用的最",65628,"2026-04-05T10:10:46",[20,18,14],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":10,"last_commit_at":63,"category_tags":64,"status":22},3364,"keras","keras-team\u002Fkeras","Keras 是一个专为人类设计的深度学习框架，旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。\n\n无论是刚入门的学生、专注算法的研究人员，还是需要快速落地产品的工程师，都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。\n\nKeras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码，即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性，还允许开发者根据需求自由选择：利用 JAX 或 PyTorch 的即时执行模式进行高效调试，或切换至速度最快的后端以获得最高 350% 的性能提升。此外，Keras 具备强大的扩展能力，能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群，是连接原型开发与生产部署的理想桥梁。",63927,"2026-04-04T15:24:37",[20,14,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":71,"readme_en":72,"readme_zh":73,"quickstart_zh":74,"use_case_zh":75,"hero_image_url":76,"owner_login":77,"owner_name":78,"owner_avatar_url":79,"owner_bio":80,"owner_company":81,"owner_location":81,"owner_email":82,"owner_twitter":81,"owner_website":81,"owner_url":83,"languages":84,"stars":33,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":92,"env_os":93,"env_gpu":94,"env_ram":95,"env_deps":96,"category_tags":105,"github_topics":81,"view_count":10,"oss_zip_url":81,"oss_zip_packed_at":81,"status":22,"created_at":106,"updated_at":107,"faqs":108,"releases":136},2535,"CuriousAI\u002Fladder","ladder","Ladder network is a deep learning algorithm that combines supervised and unsupervised learning","Ladder 是一个基于深度学习的开源项目，核心实现了“梯子网络”（Ladder Networks）算法。这是一种创新的半监督学习模型，巧妙地将监督学习与无监督学习相结合，旨在提升模型在数据标注不足情况下的表现。\n\n在实际应用中，获取大量高质量的标注数据往往成本高昂且耗时费力，而 Ladder 正是为了解决这一痛点而生。它能够在仅使用少量标注样本和大量未标注样本的情况下，依然训练出高精度的分类器。通过引入横向连接和去噪自编码器机制，Ladder 不仅利用了标签信息进行预测，还利用未标注数据的分布特征来优化内部表示，从而显著提高了模型的泛化能力和鲁棒性。\n\n从技术亮点来看，Ladder 网络独特的架构允许信息在编码器和解码器之间横向流动，并在每一层进行去噪重建。这种设计使得模型能够从原始数据中提取更本质、更稳定的特征表示，即使在噪声干扰下也能保持优异性能。代码库中提供了在 MNIST 和 CIFAR-10 等经典数据集上的完整实验复现脚本，支持多种配置变体。\n\nLadder 主要面向人工智能领域的研究人员、算法工程师以及深度学习开发者。如果你正在探索半监督学习的前沿技术，或者需要在标注数","Ladder 是一个基于深度学习的开源项目，核心实现了“梯子网络”（Ladder Networks）算法。这是一种创新的半监督学习模型，巧妙地将监督学习与无监督学习相结合，旨在提升模型在数据标注不足情况下的表现。\n\n在实际应用中，获取大量高质量的标注数据往往成本高昂且耗时费力，而 Ladder 正是为了解决这一痛点而生。它能够在仅使用少量标注样本和大量未标注样本的情况下，依然训练出高精度的分类器。通过引入横向连接和去噪自编码器机制，Ladder 不仅利用了标签信息进行预测，还利用未标注数据的分布特征来优化内部表示，从而显著提高了模型的泛化能力和鲁棒性。\n\n从技术亮点来看，Ladder 网络独特的架构允许信息在编码器和解码器之间横向流动，并在每一层进行去噪重建。这种设计使得模型能够从原始数据中提取更本质、更稳定的特征表示，即使在噪声干扰下也能保持优异性能。代码库中提供了在 MNIST 和 CIFAR-10 等经典数据集上的完整实验复现脚本，支持多种配置变体。\n\nLadder 主要面向人工智能领域的研究人员、算法工程师以及深度学习开发者。如果你正在探索半监督学习的前沿技术，或者需要在标注数据稀缺的场景下构建高性能视觉识别模型，Ladder 提供了宝贵的参考实现和理论基础。需要注意的是，该项目依赖 Theano 等较早期的深度学习框架，适合希望深入理解算法原理或进行学术对比实验的专业人士使用，而非面向普通终端用户的一键式应用工具。","This repository contains source code for the experiments in a paper titled\n[_Semi-Supervised Learning with Ladder Networks_](http:\u002F\u002Farxiv.org\u002Fabs\u002F1507.02672) by A Rasmus, H Valpola, M Honkala,\nM Berglund, and T Raiko.\n\n#### Required libraries\n##### Install Theano, Blocks Stable 0.2, Fuel Stable 0.2\nRefer to the [Blocks installation instructions](http:\u002F\u002Fblocks.readthedocs.org\u002Fen\u002Flatest\u002Fsetup.html) for\ndetails but use tag v0.2 instead. Something along:\n```\npip install git+git:\u002F\u002Fgithub.com\u002Fmila-udem\u002Fblocks.git@v0.2\npip install git+git:\u002F\u002Fgithub.com\u002Fmila-udem\u002Ffuel.git@v0.2.0\n```\nFuel comes with Blocks, but you need to download and convert the datasets.\nRefer to the Fuel documentation. One might need to rename the converted files.\n```\nfuel-download mnist\nfuel-convert mnist --dtype float32\nfuel-download cifar10\nfuel-convert cifar10\n```\n##### Alternatively, one can use the environment.yml file that is provided in this repo to create an conda environment.\n1. First install anaconda from https:\u002F\u002Fwww.continuum.io\u002Fdownloads. Then,\n2. `conda env create -f environment.yml`\n3. `source activate ladder`\n4. The environment should be good to go!\n\n#### Models in the paper\n\nThe following commands train the models with seed 1. The reported numbers in the paper are averages over\nseveral random seeds. These commands use all the training samples for training (`--unlabeled-samples 60000`)\nand none are used for validation. This results in a lot of NaNs being printed during the trainining, since\nthe validation statistics are not available. If you want to observe the validation error and costs during the\ntraining, use `--unlabeled-samples 50000`.\n\n\n##### MNIST all labels\n```\n# Full\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 1000,1,0.01,0.01,0.01,0.01,0.01 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_full\n# Bottom\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,0,0,0,0,0,0 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_bottom\n# Gamma model\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,2 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_gamma\n# Supervised baseline\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0 --labeled-samples 60000 --unlabeled-samples 60000 --f-local-noise-std 0.5 --seed 1 -- mnist_all_baseline\n```\n\n##### MNIST 100 labels\n```\n# Full\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 1000,10,0.1,0.1,0.1,0.1,0.1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_full\n# Bottom-only\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 5000,0,0,0,0,0,0 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_bottom\n# Gamma\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,0.5 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_gamma\n# Supervised baseline\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0 --labeled-samples 100 --unlabeled-samples 60000 --f-local-noise-std 0.5 --seed 1 -- mnist_100_baseline\n```\n\n##### MNIST 1000 labels\n```\n# Full\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,20,0.1,0.1,0.1,0.1,0.1 --f-local-noise-std 0.2 --labeled-samples 1000 --unlabeled-samples 60000 --seed 1 -- mnist_1000_full\n# Bottom-only\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,0,0,0,0,0,0 --labeled-samples 1000 --unlabeled-samples 60000 --seed 1 -- mnist_1000_bottom\n# Gamma model\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,10 --labeled-samples 1000 --unlabeled-samples 60000 --seed 1 -- mnist_1000_gamma\n# Supervised baseline\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0 --labeled-samples 1000 --unlabeled-samples 60000 --f-local-noise-std 0.5 --seed 1 -- mnist_1000_baseline\n```\n\n##### MNIST 50 labels\n```\n# Full model\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,20,0.1,0.1,0.1,0.1,0.1 --labeled-samples 50 --unlabeled-samples 60000 --seed 1 -- mnist_50_full\n```\n\n##### MNIST convolutional models\n```\n# Conv-FC\nrun.py train --encoder-layers convv:1000:26:1:1-convv:500:1:1:1-convv:250:1:1:1-convv:250:1:1:1-convv:250:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec gauss --denoising-cost-x 1000,10,0.1,0.1,0.1,0.1,0.1,0.1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_conv_fc\n# Conv-Small, Gamma\nrun.py train --encoder-layers convf:32:5:1:1-maxpool:2:2-convv:64:3:1:1-convf:64:3:1:1-maxpool:2:2-convv:128:3:1:1-convv:10:1:1:1-globalmeanpool:6:6-fc:10 --decoder-spec 0-0-0-0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,0,0,0,1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1  -- mnist_100_conv_gamma\n# Conv-Small, supervised baseline. Overfits easily, so keep training short.\nrun.py train --encoder-layers convf:32:5:1:1-maxpool:2:2-convv:64:3:1:1-convf:64:3:1:1-maxpool:2:2-convv:128:3:1:1-convv:10:1:1:1-globalmeanpool:6:6-fc:10 --decoder-spec 0-0-0-0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0,0,0,0 --num-epochs 20 --lrate-decay 0.5 --f-local-noise-std 0.45 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_conv_baseline\n```\n\n##### CIFAR models\n```\n# Conv-Large, Gamma\n.\u002Frun.py train --encoder-layers convv:96:3:1:1-convf:96:3:1:1-convf:96:3:1:1-maxpool:2:2-convv:192:3:1:1-convf:192:3:1:1-convv:192:3:1:1-maxpool:2:2-convv:192:3:1:1-convv:192:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec 0-0-0-0-0-0-0-0-0-0-0-0-gauss --dataset cifar10 --act leakyrelu --denoising-cost-x 0,0,0,0,0,0,0,0,0,0,0,0,4.0 --num-epochs 70 --lrate-decay 0.86 --seed 1 --whiten-zca 3072 --contrast-norm 55 --top-c False --labeled-samples 4000 --unlabeled-samples 50000 -- cifar_4k_gamma\n# Conv-Large, supervised baseline. Overfits easily, so keep training short.\n.\u002Frun.py train --encoder-layers convv:96:3:1:1-convf:96:3:1:1-convf:96:3:1:1-maxpool:2:2-convv:192:3:1:1-convf:192:3:1:1-convv:192:3:1:1-maxpool:2:2-convv:192:3:1:1-convv:192:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec 0-0-0-0-0-0-0-0-0-0-0-0-0 --dataset cifar10 --act leakyrelu --denoising-cost-x 0,0,0,0,0,0,0,0,0,0,0,0,0 --num-epochs 20 --lrate-decay 0.5 --seed 1 --whiten-zca 3072 --contrast-norm 55 --top-c False --labeled-samples 4000 --unlabeled-samples 50000 -- cifar_4k_baseline\n```\n\n##### Evaluating models with testset\nAfter training a model, you can infer the results on a test set by performing the `evaluate` command.\nAn example use after training a model:\n```\n.\u002Frun.py evaluate results\u002Fmnist_all_bottom0\n```\n","此仓库包含一篇题为\n[_梯形网络的半监督学习_](http:\u002F\u002Farxiv.org\u002Fabs\u002F1507.02672) 的论文中的实验源代码，该论文由 A Rasmus、H Valpola、M Honkala、M Berglund 和 T Raiko 共同撰写。\n\n#### 必需库\n##### 安装 Theano、Blocks 稳定版 0.2、Fuel 稳定版 0.2\n请参考 [Blocks 安装说明](http:\u002F\u002Fblocks.readthedocs.org\u002Fen\u002Flatest\u002Fsetup.html) 获取详细信息，但请使用 v0.2 标签。命令示例如下：\n```\npip install git+git:\u002F\u002Fgithub.com\u002Fmila-udem\u002Fblocks.git@v0.2\npip install git+git:\u002F\u002Fgithub.com\u002Fmila-udem\u002Ffuel.git@v0.2.0\n```\nFuel 附带 Blocks，但您需要下载并转换数据集。请参阅 Fuel 文档。有时可能需要重命名转换后的文件。\n```\nfuel-download mnist\nfuel-convert mnist --dtype float32\nfuel-download cifar10\nfuel-convert cifar10\n```\n\n##### 或者，可以使用本仓库提供的 environment.yml 文件来创建一个 conda 环境。\n1. 首先从 https:\u002F\u002Fwww.continuum.io\u002Fdownloads 下载并安装 Anaconda。然后，\n2. `conda env create -f environment.yml`\n3. `source activate ladder`\n4. 环境即可正常使用！\n\n#### 论文中的模型\n\n以下命令以种子 1 训练模型。论文中报告的数值是多个随机种子的平均值。这些命令使用所有训练样本进行训练（`--unlabeled-samples 60000`），且不使用任何样本进行验证。这会导致训练过程中打印大量 NaN，因为无法计算验证指标。如果您希望在训练过程中观察验证误差和损失，请使用 `--unlabeled-samples 50000`。\n\n\n##### MNIST 所有标签\n```\n# 完整模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 1000,1,0.01,0.01,0.01,0.01,0.01 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_full\n# 底部模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,0,0,0,0,0,0 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_bottom\n# Gamma 模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,2 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_gamma\n# 监督基线\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0 --labeled-samples 60000 --unlabeled-samples 60000 --f-local-noise-std 0.5 --seed 1 -- mnist_all_baseline\n```\n\n##### MNIST 100 个标签\n```\n# 完整模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 1000,10,0.1,0.1,0.1,0.1,0.1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_full\n# 仅底部模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 5000,0,0,0,0,0,0 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_bottom\n# Gamma 模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,0.5 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_gamma\n# 监督基线\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0 --labeled-samples 100 --unlabeled-samples 60000 --f-local-noise-std 0.5 --seed 1 -- mnist_100_baseline\n```\n\n##### MNIST 1000 个标签\n```\n# 完整模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,20,0.1,0.1,0.1,0.1,0.1 --f-local-noise-std 0.2 --labeled-samples 1000 --unlabeled-samples 60000 --seed 1 -- mnist_1000_full\n# 仅底部模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,0,0,0,0,0,0 --labeled-samples 1000 --unlabeled-samples 60000 --seed 1 -- mnist_1000_bottom\n# Gamma 模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,10 --labeled-samples 1000 --unlabeled-samples 60000 --seed 1 -- mnist_1000_gamma\n# 监督基线\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec 0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0 --labeled-samples 1000 --unlabeled-samples 60000 --f-local-noise-std 0.5 --seed 1 -- mnist_1000_baseline\n```\n\n##### MNIST 50 个标签\n```\n# 完整模型\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 2000,20,0.1,0.1,0.1,0.1,0.1 --labeled-samples 50 --unlabeled-samples 60000 --seed 1 -- mnist_50_full\n```\n\n##### MNIST 卷积模型\n```\n# 卷积-全连接\nrun.py train --encoder-layers convv:1000:26:1:1-convv:500:1:1:1-convv:250:1:1:1-convv:250:1:1:1-convv:250:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec gauss --denoising-cost-x 1000,10,0.1,0.1,0.1,0.1,0.1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_conv_fc\n# 小型卷积，Gamma 模型\nrun.py train --encoder-layers convf:32:5:1:1-maxpool:2:2-convv:64:3:1:1-convf:64:3:1:1-maxpool:2:2-convv:128:3:1:1-convv:10:1:1:1-globalmeanpool:6:6-fc:10 --decoder-spec 0-0-0-0-0-0-0-0-0-gauss --denoising-cost-x 0,0,0,0,0,0,0,0,0,1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_conv_gamma\n# 小型卷积，监督基线。容易过拟合，因此应缩短训练时间。\nrun.py train --encoder-layers convf:32:5:1:1-maxpool:2:2-convv:64:3:1:1-convf:64:3:1:1-maxpool:2:2-convv:128:3:1:1-convv:10:1:1:1-globalmeanpool:6:6-fc:10 --decoder-spec 0-0-0-0-0-0-0-0-0-0 --denoising-cost-x 0,0,0,0,0,0,0,0,0,0 --num-epochs 20 --lrate-decay 0.5 --f-local-noise-std 0.45 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_conv_baseline\n```\n\n##### CIFAR 模型\n```\n# 大型卷积，Gamma 模型\n.\u002Frun.py train --encoder-layers convv:96:3:1:1-convf:96:3:1:1-convf:96:3:1:1-maxpool:2:2-convv:192:3:1:1-convf:192:3:1:1-convv:192:3:1:1-maxpool:2:2-convv:192:3:1:1-convv:192:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec 0-0-0-0-0-0-0-0-0-0-0-0-gauss --dataset cifar10 --act leakyrelu --denoising-cost-x 0,0,0,0,0,0,0,0,0,0,0,0,4.0 --num-epochs 70 --lrate-decay 0.86 --seed 1 --whiten-zca 3072 --contrast-norm 55 --top-c False --labeled-samples 4000 --unlabeled-samples 50000 -- cifar_4k_gamma\n\n# Conv-Large，有监督基线。容易过拟合，因此训练时长应较短。\n.\u002Frun.py train --encoder-layers convv:96:3:1:1-convf:96:3:1:1-convf:96:3:1:1-maxpool:2:2-convv:192:3:1:1-convf:192:3:1:1-convv:192:3:1:1-maxpool:2:2-convv:192:3:1:1-convv:192:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec 0-0-0-0-0-0-0-0-0-0-0-0-0 --dataset cifar10 --act leakyrelu --denoising-cost-x 0,0,0,0,0,0,0,0,0,0,0,0,0 --num-epochs 20 --lrate-decay 0.5 --seed 1 --whiten-zca 3072 --contrast-norm 55 --top-c False --labeled-samples 4000 --unlabeled-samples 50000 -- cifar_4k_baseline\n```\n\n##### 使用测试集评估模型\n训练完模型后，可以通过执行 `evaluate` 命令来在测试集上进行推理并获取结果。\n训练模型后的示例用法如下：\n```\n.\u002Frun.py evaluate results\u002Fmnist_all_bottom0\n```","# Ladder Networks 快速上手指南\n\nLadder Networks 是一种用于半监督学习的深度学习模型。本指南基于论文《Semi-Supervised Learning with Ladder Networks》的开源实现，帮助开发者快速配置环境并运行实验。\n\n## 环境准备\n\n### 系统要求\n- Python 环境（推荐通过 Anaconda\u002FMiniconda 管理）\n- 支持 Theano 后端的环境\n\n### 前置依赖\n核心依赖库包括：\n- **Theano**: 深度学习框架\n- **Blocks (v0.2)**: 构建神经网络的框架\n- **Fuel (v0.2)**: 数据集处理工具\n\n## 安装步骤\n\n推荐使用 Conda 环境进行隔离安装，这是最简便且不易出错的方式。\n\n### 方法一：使用 Conda 环境（推荐）\n\n1. **安装 Anaconda\u002FMiniconda**\n   如果尚未安装，请从 [Continuum官网](https:\u002F\u002Fwww.continuum.io\u002Fdownloads) 下载并安装。\n   *国内用户可使用清华大学镜像源加速下载。*\n\n2. **创建环境**\n   在项目根目录下执行以下命令，根据 `environment.yml` 自动安装所有依赖：\n   ```bash\n   conda env create -f environment.yml\n   ```\n\n3. **激活环境**\n   ```bash\n   source activate ladder\n   ```\n   *(Windows 用户使用 `activate ladder`)*\n\n### 方法二：手动安装 Pip 依赖\n\n如果不使用 Conda，需手动安装特定版本的 Blocks 和 Fuel，并配置数据集。\n\n1. **安装 Blocks 和 Fuel**\n   ```bash\n   pip install git+git:\u002F\u002Fgithub.com\u002Fmila-udem\u002Fblocks.git@v0.2\n   pip install git+git:\u002F\u002Fgithub.com\u002Fmila-udem\u002Ffuel.git@v0.2.0\n   ```\n\n2. **下载并转换数据集**\n   Fuel 需要单独下载和转换数据文件（以 MNIST 和 CIFAR-10 为例）：\n   ```bash\n   fuel-download mnist\n   fuel-convert mnist --dtype float32\n   fuel-download cifar10\n   fuel-convert cifar10\n   ```\n   *注意：可能需要根据文档重命名转换后的文件。*\n\n## 基本使用\n\n训练命令通过 `run.py` 执行。以下示例展示了不同标签数量下的 MNIST 模型训练。所有命令默认使用随机种子 `1`。\n\n### 1. MNIST 全标签训练 (60,000 labels)\n训练完整的 Ladder Network 模型：\n```bash\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 1000,1,0.01,0.01,0.01,0.01,0.01 --labeled-samples 60000 --unlabeled-samples 60000 --seed 1 -- mnist_all_full\n```\n\n### 2. MNIST 少样本训练 (100 labels)\n在仅有 100 个标注样本的情况下训练模型：\n```bash\nrun.py train --encoder-layers 1000-500-250-250-250-10 --decoder-spec gauss --denoising-cost-x 1000,10,0.1,0.1,0.1,0.1,0.1 --labeled-samples 100 --unlabeled-samples 60000 --seed 1 -- mnist_100_full\n```\n\n### 3. CIFAR-10 模型训练\n训练针对 CIFAR-10 数据集的大型卷积模型（Gamma 变体）：\n```bash\n.\u002Frun.py train --encoder-layers convv:96:3:1:1-convf:96:3:1:1-convf:96:3:1:1-maxpool:2:2-convv:192:3:1:1-convf:192:3:1:1-convv:192:3:1:1-maxpool:2:2-convv:192:3:1:1-convv:192:1:1:1-convv:10:1:1:1-globalmeanpool:0 --decoder-spec 0-0-0-0-0-0-0-0-0-0-0-0-gauss --dataset cifar10 --act leakyrelu --denoising-cost-x 0,0,0,0,0,0,0,0,0,0,0,0,4.0 --num-epochs 70 --lrate-decay 0.86 --seed 1 --whiten-zca 3072 --contrast-norm 55 --top-c False --labeled-samples 4000 --unlabeled-samples 50000 -- cifar_4k_gamma\n```\n\n### 4. 模型评估\n训练完成后，使用 `evaluate` 命令在测试集上推断结果。假设模型保存在 `results\u002Fmnist_all_bottom0` 目录：\n```bash\n.\u002Frun.py evaluate results\u002Fmnist_all_bottom0\n```\n\n**注意：**\n- 原文中提到，若设置 `--unlabeled-samples 60000`（即所有训练样本均用于训练，无验证集），训练过程中会打印大量 NaN，因为无法计算验证统计信息。\n- 若希望观察训练过程中的验证误差和成本，建议设置 `--unlabeled-samples 50000`，保留 10,000 个样本作为验证集。","某医疗影像初创公司的算法团队正致力于开发早期肺结节筛查系统，但面临高质量标注数据极度稀缺且获取成本高昂的困境。\n\n### 没有 ladder 时\n- **标注瓶颈严重**：放射科医生标注一张CT切片耗时极长，团队仅能凑齐1000张精准标注数据，导致模型训练“吃不饱”。\n- **大量数据浪费**：医院数据库中存有数万张未标注的CT影像，因传统监督学习无法利用无标签数据，这些宝贵资源只能闲置。\n- **模型泛化能力弱**：在少量标注数据上训练的纯监督模型极易过拟合，面对不同设备、不同患者群体的新数据时，识别准确率大幅下降。\n- **鲁棒性不足**：医学影像常伴有噪声或伪影，传统模型对输入数据的微小扰动非常敏感，容易产生误报或漏报。\n\n### 使用 ladder 后\n- **突破数据限制**：借助 ladder 的半监督学习机制，团队将1000张标注数据与5万张无标签数据混合训练，充分挖掘了未标注数据的分布特征。\n- **显著提升精度**：通过结合监督信号与无监督的重构任务，模型在测试集上的分类准确率较纯监督基线提升了近10%，达到了临床辅助诊断的门槛。\n- **增强抗噪能力**：ladder 网络特有的去噪编码器结构，使模型学会了从含噪输入中恢复干净特征，大幅降低了对影像质量的依赖，提升了在低剂量CT下的表现。\n- **优化开发成本**：无需等待漫长的全量数据标注周期，算法迭代速度加快，团队得以更早验证产品原型并投入试点医院运行。\n\n核心价值在于 ladder 能以极低的标注成本，通过高效融合海量无标签数据，显著提升深度学习模型在小样本场景下的精度与鲁棒性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCuriousAI_ladder_1fd6956f.png","CuriousAI","Curious AI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCuriousAI_12bca190.png","Deep good. Unsupervised better.",null,"valpola+githubcai@gmail.com","https:\u002F\u002Fgithub.com\u002FCuriousAI",[85],{"name":86,"color":87,"percentage":88},"Python","#3572A5",100,141,"2026-03-04T14:33:11","MIT",4,"Linux, macOS","未说明 (基于 Theano，通常支持 CPU 或 NVIDIA GPU，但 README 未明确指定 CUDA 版本或具体显卡要求)","未说明",{"notes":97,"python":98,"dependencies":99},"1. 该项目代码较旧，依赖 Blocks 和 Fuel 的特定稳定版 (v0.2)，建议严格使用提供的 environment.yml 创建 conda 环境以避免兼容性问题。\n2. 运行前需使用 fuel-download 和 fuel-convert 命令下载并转换 MNIST 和 CIFAR-10 数据集。\n3. 训练时若将所有样本设为无标签 (--unlabeled-samples 60000)，由于缺乏验证集统计信息，终端会打印大量 NaN，属正常现象；如需观察验证误差，请减少无标签样本数量。","未说明 (由 conda environment.yml 定义，通常为 Python 2.7 或 3.5\u002F3.6 时代的版本，因依赖库较老)",[100,101,102,103,104],"Theano","Blocks==0.2","Fuel==0.2","numpy","scipy",[18],"2026-03-27T02:49:30.150509","2026-04-06T08:17:49.232405",[109,114,119,124,128,132],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},11700,"运行代码时出现 'AttributeError: numpy.float32 object has no attribute owner' 错误，该如何解决？","这通常是由于依赖库版本不兼容导致的。建议按照项目中的 environment.yml 文件配置环境并激活该环境。这样可以确保使用与代码兼容的稳定版本库（如 Blocks 和 Fuel），而不是系统中全局安装的其他版本。","https:\u002F\u002Fgithub.com\u002FCuriousAI\u002Fladder\u002Fissues\u002F17",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},11701,"遇到 'fuel.config_parser.ConfigurationError: Configuration not set and no default provided: data_path' 错误怎么办？","这是因为 Fuel 库的数据路径未配置。请根据 Fuel 官方文档（http:\u002F\u002Ffuel.readthedocs.io\u002Fen\u002Flatest\u002Fbuilt_in_datasets.html）在运行代码前配置好 Fuel。此外，请确保更新代码到最新 master 分支，以支持 Blocks 和 Fuel 0.2 版本，并尝试运行 README 中的示例。","https:\u002F\u002Fgithub.com\u002FCuriousAI\u002Fladder\u002Fissues\u002F12",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},11702,"运行训练命令时报错 'ValueError: setting an array element with a sequence'，原因是什么？","这是由于 Blocks 和 Fuel 内部语法变更引起的版本冲突问题。维护者已修复此问题，请拉取最新的代码分支（特别是支持 blocks-fuel-0.2 的分支）。同时，建议将开发环境与项目中提供的 environment.yml 文件保持一致，以避免此类兼容性错误。","https:\u002F\u002Fgithub.com\u002FCuriousAI\u002Fladder\u002Fissues\u002F11",{"id":125,"question_zh":126,"answer_zh":127,"source_url":118},11703,"如何使用 Ladder Network 运行其他分类数据集（如 Caltech-256 或 CIFAR-100）？","可以通过 **Fuel** 数据包来加载和处理其他数据集。Fuel 0.2 版本支持更多数据集，配置好 Fuel 后，可以参照 README 中的示例代码进行测试和适配。",{"id":129,"question_zh":130,"answer_zh":131,"source_url":123},11704,"如何解决因 Blocks 和 Fuel 版本更新导致的内部语法错误？","请检查并使用项目中专门用于支持新版本依赖的分支（例如 blocks-fuel-0.2-support 分支）。如果问题仍然存在，请确保你的本地开发环境严格匹配项目根目录下的 environment.yml 文件中指定的依赖版本。",{"id":133,"question_zh":134,"answer_zh":135,"source_url":113},11705,"项目依赖的 Blocks 库应该使用哪个版本？","建议使用通过 environment.yml 安装的稳定版本。如果你之前安装了 Blocks 的开发版（bleeding edge version），可能会导致兼容性问题。切换到环境文件中指定的稳定版本通常能解决问题。",[]]