[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lululxvi--deeponet":3,"tool-lululxvi--deeponet":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 将是理想的起点。",85267,2,"2026-04-18T11:00:28",[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 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75872,"2026-04-18T10:54:57",[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":81,"owner_website":83,"owner_url":84,"languages":85,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":98,"env_os":99,"env_gpu":100,"env_ram":101,"env_deps":102,"category_tags":110,"github_topics":81,"view_count":10,"oss_zip_url":81,"oss_zip_packed_at":81,"status":22,"created_at":111,"updated_at":112,"faqs":113,"releases":144},9092,"lululxvi\u002Fdeeponet","deeponet","Learning nonlinear operators via DeepONet based on the universal approximation theorem of operators","DeepONet 是一款基于深度学习的前沿开源框架，专为学习非线性算子而设计。它核心解决了传统神经网络难以直接映射“函数到函数”复杂关系的难题，能够高效处理如微分方程求解、随机过程模拟及分数阶导数计算等科学计算任务。\n\n该工具的独特之处在于其架构严格遵循“算子通用逼近定理”，通过将输入函数与输出位置解耦为分支网（Branch net）和主干网（Trunk net），实现了对无限维空间算子的精确近似。这种设计使其在少样本情况下也能保持极高的泛化能力，显著优于传统的序列模型或卷积网络。\n\nDeepONet 主要面向科研人员、计算数学学者及 AI 开发者。如果你正在从事物理信息神经网络（PINNs）、流体力学模拟或复杂系统建模研究，DeepONet 提供了经过《自然 - 机器智能》论文验证的可靠代码实现。项目基于 Python 和 DeepXDE 构建，部分模块支持 MATLAB，虽需一定的编程基础进行环境配置，但其清晰的案例演示（如反导数、随机微分方程等）能帮助用户快速上手，是探索科学机器学习领域的有力工具。","# DeepONet: Learning nonlinear operators\n\n[![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F260069304.svg)](https:\u002F\u002Fzenodo.org\u002Fbadge\u002Flatestdoi\u002F260069304)\n\nThe source code for the paper [L. Lu, P. Jin, G. Pang, Z. Zhang, & G. E. Karniadakis. Learning nonlinear operators via DeepONet based on the universal approximation theorem of operators. *Nature Machine Intelligence*, 3, 218-229, 2021](https:\u002F\u002Fdoi.org\u002F10.1038\u002Fs42256-021-00302-5).\n\n## System requirements\n\nMost code is written in Python 3, and depends on the deep learning package [DeepXDE](https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeepxde). Some code is written in Matlab (version R2019a).\n\n## Installation guide\n\n1. Install Python 3\n2. Install DeepXDE v0.11.2 (https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeepxde). If you use DeepXDE>0.11.2, you need to rename `OpNN` to `DeepONet` and `OpDataSet` to `Triple` with other modifications. For DeepONet code using a more recent version of DeepXDE, please see https:\u002F\u002Fgithub.com\u002Flu-group\u002Fdeeponet-fno.\n3. Optional: For CNN, install Matlab and TensorFlow 1; for Seq2Seq, install PyTorch\n\nThe installation may take between 10 minutes and one hour.\n\n## Demo\n\n### Case `Antiderivative`\n\n1. Open deeponet_pde.py, and choose the parameters\u002Fsetup in the functions `main()` and `ode_system()` based on the comments;\n2. Run deeponet_pde.py, which will first generate the two datasets (training and test) and then train a DeepONet. The training and test MSE errors will be displayed in the screen.\n\nA standard output is\n\n```\nBuilding operator neural network...\n'build' took 0.104784 s\n\nGenerating operator data...\n'gen_operator_data' took 20.495655 s\n\nGenerating operator data...\n'gen_operator_data' took 168.944620 s\n\nCompiling model...\n'compile' took 0.265885 s\n\nInitializing variables...\nTraining model...\n\nStep      Train loss    Test loss     Test metric\n0         [1.09e+00]    [1.11e+00]    [1.06e+00]\n1000      [2.57e-04]    [2.87e-04]    [2.76e-04]\n2000      [8.37e-05]    [9.99e-05]    [9.62e-05]\n...\n50000     [9.98e-07]    [1.39e-06]    [1.09e-06]\n\nBest model at step 46000:\n  train loss: 6.30e-07\n  test loss: 9.79e-07\n  test metric: [7.01e-07]\n\n'train' took 324.343075 s\n\nSaving loss history to loss.dat ...\nSaving training data to train.dat ...\nSaving test data to test.dat ...\nRestoring model from model\u002Fmodel.ckpt-46000 ...\n\nPredicting...\n'predict' took 0.056257 s\n\nPredicting...\n'predict' took 0.012670 s\n\nTest MSE: 9.269857471315847e-07\nTest MSE w\u002Fo outliers: 6.972881784590493e-07\n```\n\nYou can get the training and test errors in the end of the output.\n\nThe run time could be between several minutes to several hours depending on the parameters you choose, e.g., the dataset size and the number of iterations for training.\n\n### Case `Stochastic ODE\u002FPDE`\n\n1. Open sde.py, and choose the parameters\u002Fsetup in the functions `main()`;\n2. Run sde.py, which will generate traning and test datasets;\n3. Open deeponet_dataset.py, and choose the parameters\u002Fsetup in the functions `main()`;\n4. Run deeponet_dataset.py to train a DeepONet. The training and test MSE errors will be displayed in the screen.\n\n### Case `1D Caputo fractional derivative`\n\n1. Go to the folder `fractional`;\n2. Run Caputo1D.m to generate training and test datasets. One can specify the orthongonal polynomial to be Legendre polynomial or poly-fractonomial in Orthogonal_polynomials.m. Expected run time: 20 mins.\n3. Run datasets.py to pack and compress the genrated datasets. Expected outputs: compressed .npz files. Expected run time: 5 mins.\n4. Run DeepONet_float32_batch.py to train and test DeepONets. Expected outputs: a figure of training and test losses. Expected run time: 1 hour.\n\n### Case `2D fractional Laplacian`\n\n#### Learning a 2D fractional Laplacian using DeepONets\n\n1. Run Fractional_Lap_2D.m to generate training and test datasets. Expected outputs: text files that store the training and test data. Expected run time: 40 mins.\n2. Run datasets.py to pack and compress the genrated datasets. Expected outputs: compressed .npz files. Expected run time: 15 mins.\n3. Run DeepONet_float32_batch.py to train and test DeepONets. Expected run time: 3 hours.\n\n#### Learning a 2D fractional Laplacian using CNNs\n\n1. Suppose that the text files containing all training and test sets have been generated in the previous step.\n2. Run CNN_operator_alpha.py to train and test CNNs. Expected outputs: a figure of training and test losses. Expected run time: 30 mins.\n\n### Seq2Seq\n\n1. Open seq2seq_main.py, choose the problem in the function main(), and change the parameters\u002Fsetup in the corresponding function (antiderivative()\u002Fpendulum()) if needed.\n2. Run seq2seq_main.py, which will first generate the dataset and then train the Seq2Seq model on the dataset. The training and test MSE errors will be displayed in the screen. Moreover, the loss history, generated data and trained best model will be saved in the direction ('.\u002Foutputs\u002F').\n\nA standard output is\n\n```\nTraining...\n0             Train loss: 0.21926558017730713         Test loss: 0.22550159692764282\n1000       Train loss: 0.0022761737927794456     Test loss: 0.0024939212016761303\n2000       Train loss: 0.0004760705924127251     Test loss: 0.0005566366016864777\n...\n49000     Train loss: 1.2885914202342974e-06    Test loss: 1.999963387788739e-06\n50000     Train loss: 1.1382834372852813e-06    Test loss: 1.8525416862757993e-06\nDone!\n'run' took 747.5421471595764 s\nBest model at iteration 50000:\nTrain loss: 1.1382834372852813e-06 Test loss: 1.8525416862757993e-06\n```\n\nYou can get the training and test errors in the end of the output.\n\nThe run time could be between several minutes to several hours depending on the parameters you choose, e.g., the dataset size and the number of iterations for training.\n\n## Instructions for use\n\nThe instructions for running each case are as follows.\n\n- Legendre transform: The same as `Antiderivative` in Demo. You need to modify the function `main()` in deeponet_pde.py.\n- Antiderivative: In Demo.\n- Fractional (1D): In Demo.\n- Fractional (2D): In Demo.\n- Nonlinear ODE: The same as `Antiderivative` in Demo. You need to modify the functions `main()` and `ode_system()` in deeponet_pde.py.\n- Gravity pendulum: The same as `Antiderivative` in Demo. You need to modify the functions `main()` and `ode_system()` in deeponet_pde.py.\n- Diffusion-reaction: The same as `Antiderivative` in Demo. You need to modify the function `main()` in deeponet_pde.py.\n- Advection: The same as `Antiderivative` in Demo. You need to modify the functions `main()` in deeponet_pde.py, `run()` in deeponet_pde.py, `CVCSystem()` in system.py, and `solve_CVC()` in CVC_solver.py to run each case.\n- Advection-diffusion: The same as `Antiderivative` in Demo. You need to modify the function `main()` in deeponet_pde.py.\n- Stochastic ODE\u002FPDE: In Demo.\n\n## Cite this work\n\nIf you use this code for academic research, you are encouraged to cite the following paper:\n\n```\n@article{lu2021learning,\n  title   = {Learning nonlinear operators via {DeepONet} based on the universal approximation theorem of operators},\n  author  = {Lu, Lu and Jin, Pengzhan and Pang, Guofei and Zhang, Zhongqiang and Karniadakis, George Em},\n  journal = {Nature Machine Intelligence},\n  volume  = {3},\n  number  = {3},\n  pages   = {218--229},\n  year    = {2021}\n}\n```\n\n## Questions\n\nTo get help on how to use the data or code, simply open an issue in the GitHub \"Issues\" section.\n\n## License\n\n\u003Ca rel=\"license\" href=\"http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-nc-sa\u002F4.0\u002F\">\u003Cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flululxvi_deeponet_readme_6809fa69949c.png\" \u002F>\u003C\u002Fa>\u003Cbr \u002F>This work is licensed under a \u003Ca rel=\"license\" href=\"http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-nc-sa\u002F4.0\u002F\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License\u003C\u002Fa>.\n","# DeepONet：学习非线性算子\n\n[![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F260069304.svg)](https:\u002F\u002Fzenodo.org\u002Fbadge\u002Flatestdoi\u002F260069304)\n\n本文的源代码来自论文 [L. Lu, P. Jin, G. Pang, Z. Zhang, & G. E. Karniadakis. 通过基于算子通用逼近定理的DeepONet学习非线性算子。《自然·机器智能》，3, 218-229, 2021](https:\u002F\u002Fdoi.org\u002F10.1038\u002Fs42256-021-00302-5)。\n\n## 系统要求\n\n大部分代码使用 Python 3 编写，并依赖深度学习库 [DeepXDE](https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeepxde)。部分代码使用 Matlab（版本 R2019a）编写。\n\n## 安装指南\n\n1. 安装 Python 3\n2. 安装 DeepXDE v0.11.2（https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeepxde）。如果您使用的是 DeepXDE > 0.11.2 版本，需要将 `OpNN` 重命名为 `DeepONet`，`OpDataSet` 重命名为 `Triple`，并进行其他相应修改。对于使用较新版本 DeepXDE 的 DeepONet 代码，请参阅 https:\u002F\u002Fgithub.com\u002Flu-group\u002Fdeeponet-fno。\n3. 可选：对于 CNN 模型，需安装 Matlab 和 TensorFlow 1；对于 Seq2Seq 模型，需安装 PyTorch。\n\n安装过程可能需要 10 分钟到 1 小时不等。\n\n## 示例演示\n\n### 案例 `反导数`\n\n1. 打开 `deeponet_pde.py`，根据注释在函数 `main()` 和 `ode_system()` 中选择合适的参数和设置；\n2. 运行 `deeponet_pde.py`，程序将首先生成训练集和测试集，然后训练一个 DeepONet 模型。训练和测试的 MSE 误差将显示在屏幕上。\n\n标准输出如下：\n\n```\n构建算子神经网络...\n'build' 耗时 0.104784 秒\n\n生成算子数据...\n'gen_operator_data' 耗时 20.495655 秒\n\n生成算子数据...\n'gen_operator_data' 耗时 168.944620 秒\n\n编译模型...\n'compile' 耗时 0.265885 秒\n\n初始化变量...\n开始训练模型...\n\n步数      训练损失    测试损失     测试指标\n0         [1.09e+00]    [1.11e+00]    [1.06e+00]\n1000      [2.57e-04]    [2.87e-04]    [2.76e-04]\n2000      [8.37e-05]    [9.99e-05]    [9.62e-05]\n...\n50000     [9.98e-07]    [1.39e-06]    [1.09e-06]\n\n最佳模型出现在第 46000 步：\n  训练损失：6.30e-07\n  测试损失：9.79e-07\n  测试指标：[7.01e-07]\n\n'train' 耗时 324.343075 秒\n\n保存损失历史到 loss.dat ...\n保存训练数据到 train.dat ...\n保存测试数据到 test.dat ...\n从 model\u002Fmodel.ckpt-46000 中恢复模型 ...\n\n预测...\n'predict' 耗时 0.056257 秒\n\n预测...\n'predict' 耗时 0.012670 秒\n\n测试 MSE：9.269857471315847e-07\n剔除异常值后的测试 MSE：6.972881784590493e-07\n```\n\n您可以在输出的末尾获取训练和测试误差。\n\n运行时间会因您选择的参数而异，例如数据集大小和训练迭代次数，通常在几分钟到几小时之间。\n\n### 案例 `随机常微分方程\u002F偏微分方程`\n\n1. 打开 `sde.py`，在函数 `main()` 中选择合适的参数和设置；\n2. 运行 `sde.py`，程序将生成训练集和测试集；\n3. 打开 `deeponet_dataset.py`，在函数 `main()` 中选择合适的参数和设置；\n4. 运行 `deeponet_dataset.py` 来训练一个 DeepONet 模型。训练和测试的 MSE 误差将显示在屏幕上。\n\n### 案例 `一维 Caputo 分数阶导数`\n\n1. 进入 `fractional` 文件夹；\n2. 运行 `Caputo1D.m` 生成训练集和测试集。您可以在 `Orthogonal_polynomials.m` 中指定正交多项式为勒让德多项式或分数阶多项式。预计运行时间为 20 分钟。\n3. 运行 `datasets.py` 对生成的数据集进行打包和压缩。预期输出为压缩后的 `.npz` 文件。预计运行时间为 5 分钟。\n4. 运行 `DeepONet_float32_batch.py` 来训练和测试 DeepONets。预期输出为训练和测试损失曲线图。预计运行时间为 1 小时。\n\n### 案例 `二维分数阶拉普拉斯算子`\n\n#### 使用 DeepONets 学习二维分数阶拉普拉斯算子\n\n1. 运行 `Fractional_Lap_2D.m` 生成训练集和测试集。预期输出为存储训练和测试数据的文本文件。预计运行时间为 40 分钟。\n2. 运行 `datasets.py` 对生成的数据集进行打包和压缩。预期输出为压缩后的 `.npz` 文件。预计运行时间为 15 分钟。\n3. 运行 `DeepONet_float32_batch.py` 来训练和测试 DeepONets。预计运行时间为 3 小时。\n\n#### 使用 CNN 学习二维分数阶拉普拉斯算子\n\n1. 假设上一步已经生成了包含所有训练和测试数据的文本文件。\n2. 运行 `CNN_operator_alpha.py` 来训练和测试 CNN 模型。预期输出为训练和测试损失曲线图。预计运行时间为 30 分钟。\n\n### Seq2Seq\n\n1. 打开 `seq2seq_main.py`，在 `main()` 函数中选择具体问题，必要时修改对应函数中的参数和设置（如 `antiderivative()` 或 `pendulum()`）；\n2. 运行 `seq2seq_main.py`，程序将首先生成数据集，然后基于该数据集训练 Seq2Seq 模型。训练和测试的 MSE 误差将显示在屏幕上。此外，损失历史、生成的数据以及训练得到的最佳模型都将保存到指定目录（`.\u002Foutputs\u002F`）。\n\n标准输出如下：\n\n```\n训练...\n0             训练损失：0.21926558017730713         测试损失：0.22550159692764282\n1000       训练损失：0.0022761737927794456     测试损失：0.0024939212016761303\n2000       训练损失：0.0004760705924127251     测试损失：0.0005566366016864777\n...\n49000     训练损失：1.2885914202342974e-06    测试损失：1.999963387788739e-06\n50000     训练损失：1.1382834372852813e-06    测试损失：1.8525416862757993e-06\n完成！\n'run' 耗时 747.5421471595764 秒\n最佳模型出现在第 50000 次迭代：\n训练损失：1.1382834372852813e-06 测试损失：1.8525416862757993e-06\n```\n\n您可以在输出的末尾获取训练和测试误差。\n\n运行时间会因您选择的参数而异，例如数据集大小和训练迭代次数，通常在几分钟到几小时之间。\n\n## 使用说明\n\n各案例的运行说明如下：\n\n- 勒让德变换：与示例中的“反导数”相同。您需要修改 `deeponet_pde.py` 中的 `main()` 函数。\n- 反导数：见示例。\n- 分数阶（一维）：见示例。\n- 分数阶（二维）：见示例。\n- 非线性常微分方程：与示例中的“反导数”相同。您需要修改 `deeponet_pde.py` 中的 `main()` 和 `ode_system()` 函数。\n- 重力摆：与示例中的“反导数”相同。您需要修改 `deeponet_pde.py` 中的 `main()` 和 `ode_system()` 函数。\n- 扩散-反应：与示例中的“反导数”相同。您需要修改 `deeponet_pde.py` 中的 `main()` 函数。\n- 对流：与示例中的“反导数”相同。您需要修改 `deeponet_pde.py` 中的 `main()` 函数、`run()` 函数、`system.py` 中的 `CVCSystem()` 函数以及 `CVC_solver.py` 中的 `solve_CVC()` 函数，以运行每个案例。\n- 对流-扩散：与示例中的“反导数”相同。您需要修改 `deeponet_pde.py` 中的 `main()` 函数。\n- 随机常微分方程\u002F偏微分方程：见示例。\n\n## 引用本工作\n\n如果您将此代码用于学术研究，建议引用以下论文：\n\n```\n@article{lu2021learning,\n  title   = {Learning nonlinear operators via {DeepONet} based on the universal approximation theorem of operators},\n  author  = {Lu, Lu and Jin, Pengzhan and Pang, Guofei and Zhang, Zhongqiang and Karniadakis, George Em},\n  journal = {Nature Machine Intelligence},\n  volume  = {3},\n  number  = {3},\n  pages   = {218--229},\n  year    = {2021}\n}\n```\n\n## 问题\n\n如需获取有关如何使用数据或代码的帮助，请在 GitHub 的“Issues”版块中提交一个问题。\n\n## 许可证\n\n\u003Ca rel=\"license\" href=\"http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-nc-sa\u002F4.0\u002F\">\u003Cimg alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flululxvi_deeponet_readme_6809fa69949c.png\" \u002F>\u003C\u002Fa>\u003Cbr \u002F>本作品采用\u003Ca rel=\"license\" href=\"http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby-nc-sa\u002F4.0\u002F\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议\u003C\u002Fa>授权。","# DeepONet 快速上手指南\n\nDeepONet 是一个基于算子通用逼近定理的深度学习框架，用于学习非线性算子。本指南将帮助你快速配置环境并运行首个示例。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python**：Python 3.x\n*   **核心依赖**：[DeepXDE](https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeepxde) (深度科学计算库)\n*   **可选依赖**：\n    *   若需运行 CNN 相关案例：需安装 Matlab (R2019a+) 和 TensorFlow 1.x\n    *   若需运行 Seq2Seq 相关案例：需安装 PyTorch\n\n> **注意**：本仓库代码主要基于 **DeepXDE v0.11.2** 开发。若使用更高版本的 DeepXDE，需手动修改类名（如将 `OpNN` 改为 `DeepONet`，`OpDataSet` 改为 `Triple`），建议初学者直接安装指定版本以避免兼容性问题。\n\n## 安装步骤\n\n### 1. 安装 Python 环境\n确保已安装 Python 3。推荐使用 `conda` 创建独立环境：\n\n```bash\nconda create -n deeponet python=3.8\nconda activate deeponet\n```\n\n### 2. 安装 DeepXDE (指定版本)\n为了与源码完全兼容，请安装 v0.11.2 版本。\n\n**方案 A：使用 pip 安装（推荐）**\n```bash\npip install deepxde==0.11.2\n```\n*国内用户加速：*\n```bash\npip install deepxde==0.11.2 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n**方案 B：从源码安装（如需特定修改）**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeepxde.git\ncd deepxde\ngit checkout v0.11.2  # 切换到对应版本标签\npip install .\n```\n\n### 3. 获取 DeepONet 源码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Flu-group\u002Fdeeponet.git\ncd deeponet\n```\n\n### 4. 安装其他可选依赖\n根据你需要运行的案例类型安装额外库：\n\n*   **Seq2Seq 案例**:\n    ```bash\n    pip install torch torchvision torchaudio\n    # 国内加速\n    # pip install torch torchvision torchaudio -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n*   **CNN 案例**: 需自行安装 Matlab 和 TensorFlow 1.x (此部分较复杂，初学建议先跳过)。\n\n## 基本使用\n\n以下以 **反导数 (Antiderivative)** 案例为例，演示如何训练一个基础的 DeepONet 模型。\n\n### 1. 配置参数\n打开 `deeponet_pde.py` 文件。根据文件内的注释，在 `main()` 和 `ode_system()` 函数中确认或调整参数设置。对于首次运行，通常无需修改即可使用默认配置。\n\n### 2. 运行训练脚本\n在项目根目录下执行以下命令：\n\n```bash\npython deeponet_pde.py\n```\n\n### 3. 查看结果\n脚本将自动执行以下流程：\n1.  生成训练集和测试集数据。\n2.  构建并编译 DeepONet 模型。\n3.  开始训练并实时打印损失值。\n\n**预期输出示例：**\n```text\nBuilding operator neural network...\n'build' took 0.104784 s\n\nGenerating operator data...\n'gen_operator_data' took 20.495655 s\n\n... (数据生成与编译过程) ...\n\nStep      Train loss    Test loss     Test metric\n0         [1.09e+00]    [1.11e+00]    [1.06e+00]\n1000      [2.57e-04]    [2.87e-04]    [2.76e-04]\n...\n50000     [9.98e-07]    [1.39e-06]    [1.09e-06]\n\nBest model at step 46000:\n  train loss: 6.30e-07\n  test loss: 9.79e-07\n  \nTest MSE: 9.269857471315847e-07\n```\n\n运行结束后，当前目录下将生成 `loss.dat` (损失历史), `train.dat`, `test.dat` 以及保存的最佳模型文件。\n\n> **提示**：运行时间取决于数据集大小和迭代次数，通常在几分钟到几小时不等。如需尝试其他案例（如随机微分方程、分数阶导数等），请参考 README 中对应的 `Case` 章节运行相应的 `.py` 或 `.m` 脚本。","某航空航天研究院的工程师团队正在开发高超音速飞行器的热防护系统，需要快速预测不同气流条件下机身表面的非线性温度分布。\n\n### 没有 deeponet 时\n- **计算成本极高**：每次改变气流输入参数，都必须重新运行耗时的传统数值模拟（如有限元分析），单次仿真需数小时，无法支持实时决策。\n- **泛化能力受限**：针对特定工况训练的普通神经网络无法直接迁移到新类型的边界条件或几何形状，遇到新场景必须重新采集数据并从头训练。\n- **算子映射困难**：难以直接建立从“连续函数空间”（如变化的热流密度分布）到“解函数空间”（温度场）的直接映射，只能依赖离散点拟合，丢失了物理场的连续性特征。\n- **迭代效率低下**：在设计优化循环中，成千上万次的参数调整导致总计算周期长达数周，严重拖慢研发进度。\n\n### 使用 deeponet 后\n- **推理速度飞跃**：deeponet 学习的是非线性算子本身，一旦训练完成，对新输入函数的预测仅需毫秒级时间，实现了近乎实时的物理场推演。\n- **零样本泛化强**：基于算子通用逼近定理，模型能直接处理训练集中未出现过的全新输入函数（如从未测试过的气流波形），无需重新训练即可输出高精度结果。\n- **保留物理连续性**：直接建模函数到函数的映射，完美保留了温度场在空间上的连续性和平滑性，避免了传统离散方法带来的截断误差。\n- **研发周期缩短**：将原本数周的仿真优化流程压缩至几小时内完成，工程师可快速验证数千种设计方案，显著加速了热防护系统的迭代定型。\n\ndeeponet 通过将昂贵的物理仿真转化为毫秒级的神经算子推理，彻底解决了复杂非线性系统实时预测与泛化应用的难题。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flululxvi_deeponet_49433805.png","lululxvi","Lu Lu","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flululxvi_8013a7d1.jpg","Assistant Professor of Statistics and Data Science, Yale University","Yale University",null,"lululxvi@gmail.com","https:\u002F\u002Flugroup.yale.edu","https:\u002F\u002Fgithub.com\u002Flululxvi",[86,90],{"name":87,"color":88,"percentage":89},"Python","#3572A5",86.8,{"name":91,"color":92,"percentage":93},"MATLAB","#e16737",13.2,792,198,"2026-04-17T07:01:54","NOASSERTION",4,"","未说明（部分案例可选安装 TensorFlow 1 或 PyTorch，暗示可能需要 GPU 加速，但无具体型号或显存要求）","未说明",{"notes":103,"python":104,"dependencies":105},"核心依赖为 DeepXDE v0.11.2，若使用更高版本需修改代码类名。部分功能（如 CNN 和分数阶导数案例）需要 Matlab R2019a。不同案例运行时间从几分钟到几小时不等，取决于数据集大小和训练迭代次数。","Python 3",[106,107,108,109],"DeepXDE==0.11.2","TensorFlow 1 (可选，用于 CNN)","PyTorch (可选，用于 Seq2Seq)","Matlab R2019a (部分代码)",[18],"2026-03-27T02:49:30.150509","2026-04-18T22:33:48.743467",[114,119,124,129,134,139],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},40803,"DeepONet 如何处理多个输入函数？数据形状应该如何排列？","对于多个输入函数，只需将它们连接（concatenate）起来作为分支网络（branch net）的输入。如果有两个输入函数 u1 和 u2，且在 m 个点上采样，数据形状应为 [u1(x1), ..., u1(xm), u2(x1), ..., u2(xm)]，即先排列第一个函数的所有采样点，再排列第二个函数的所有采样点，而不是交替排列。","https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeeponet\u002Fissues\u002F9",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},40804,"DeepONet 能否处理多输出问题？如何实现？","标准的 DeepONet 输出是标量（通过分支网络和主干网络的点积得到）。如果需要多维输出（例如 d 维），主要有两种方法：1. 训练 d 个独立的 DeepONet，每个网络负责一个输出维度；2. 参考相关论文（如 DOI: 10.1016\u002Fj.cma.2022.114778）中关于多输出的扩展架构（如 MIONet 或其他变体），不要试图直接修改单个网络的输出形状为矩阵来强行实现点积。","https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeeponet\u002Fissues\u002F49",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},40805,"在求解常微分方程组（ODE System）时，如何获取除第一个变量以外的其他变量预测值（如 s2, s3）？","默认代码可能只返回第一个变量。最简单有效的方法是分别为每个需要预测的变量训练一个独立的 DeepONet（例如一个网络预测 s1，另一个预测 s2）。如果必须修改源码，可以尝试修改 `src\u002Fsystem.py` 第 98 行附近的返回语句，将 `return sol.y[0, -1:]` 改为 `return sol.y[1, -1:]` 以获取第二个变量，但官方推荐做法是使用多个网络分别处理。","https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeeponet\u002Fissues\u002F1",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},40806,"分支网络（Branch Net）的输入必须是经过 KL 展开或傅里叶展开的系数吗？可以直接使用函数值吗？","不一定需要展开。虽然在学习随机算子时常用 KL 展开，但如果你的输入函数 u(x) 是直接采样的（例如来自 Lp 空间，p=2 的确定性函数），你可以直接将函数 u 在离散点上的值作为分支网络的输入，无需进行傅里叶 - 贝塞尔展开或其他基函数展开。","https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeeponet\u002Fissues\u002F19",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},40807,"运行测试或训练时遇到 TensorFlow 类型不匹配错误（TypeError）或内存溢出（OOM），如何解决？","这类问题通常由数据类型不一致引起。尝试以下方案：1. 降级到稳定版本（如 deepxde 0.11.2）；2. 显式声明变量类型，例如在 `deepxde\u002Fnn\u002Ftensorflow\u002Fdeeponet.py` 中将偏置项初始化为 `tf.Variable(tf.zeros(1, dtype=tf.dtypes.float32))` 以确保使用 float32；3. 注意如果强制使用 float64 可能会导致显存不足（OOM），建议优先检查并统一为 float32。","https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeeponet\u002Fissues\u002F11",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},40808,"对于既有多个输入又有多个输出的复杂物理场问题（如高超声速流动），应该使用单个 DeepONet 还是多个？","对于多输入多输出（MIMO）问题，通常不建议简单地将所有输入和输出函数连接后放入单个标准 DeepONet。推荐做法是：1. 输入端：将多个输入函数连接后作为分支网输入；2. 输出端：针对每个输出物理量训练独立的 DeepONet（例如分别训练 G_U 和 G_T），或者使用专门设计的多输出架构（如 DeepM&Mnet 中的策略），以避免不同量纲的输出相互干扰影响训练收敛。","https:\u002F\u002Fgithub.com\u002Flululxvi\u002Fdeeponet\u002Fissues\u002F27",[145],{"id":146,"version":147,"summary_zh":148,"released_at":149},324369,"v1.0.0","这是第一个版本。","2020-12-13T04:29:10"]