GraphRAG 技术详解:如何将知识图谱集成到 RAG 系统中?

【GraphRAG】本地部署全流程!超详细介绍! graphrag本地部署 阅读详情

当我们说“大模型健忘”,其实说的是它的“知识储存能力有限”,尤其是面对企业内部专业文档、复杂背景知识时,一问三不知的现象比比皆是。

为了解决这个问题,RAG(Retrieval-Augmented Generation) 应运而生,它通过检索外部知识增强生成回答的准确性,成了AI工程的“标准套路”。

但经典RAG也有短板:它只会“关键字匹配”,不会“理解知识结构”,检索和生成之间始终隔着一层“信息语义的墙”。

这时,GraphRAG来了。

它像一位擅长思维导图的“图谱师”,把文档中的知识关系“连线、归类、层次化”,让AI不仅能“查”,还能“懂” —— 这,是RAG的一次关键进化。

在这里插入图片描述

🧠RAG的局限 + GraphRAG的进化

先来复习一下RAG架构的核心逻辑:

用户提问 → 文本向量化 → 相似文档检索 → 与问题拼接 → 喂给语言模型生成答案

这种方式虽然实用,但存在两个问题:

  1. 知识是碎片化的:检索结果是几个独立段落,不成体系
  2. 模型“不会关系”:无法理解A和B之间是什么关系

而GraphRAG的出现,就是为了解决这两点。

🚀什么是GraphRAG?

GraphRAG(Graph-enhanced Retrieval-Augmented Generation)是在RAG架构中引入知识图谱结构的增强版本,其核心理念是:

将原始文档中的实体、概念和关系抽取出来,构建成图谱结构,再参与RAG流程。

简单说,它让AI“有图可依”,不再“只看文本”。

Graph RAG Has Awesome Potential, But Currently Has Serious Flaws | by  Troyusrex | Generative AI

📌GraphRAG架构拆解

GraphRAG = 三层增强:

  1. 图谱构建层
    • 文本解析 → 实体识别 + 关系抽取 → 生成知识图谱(KG)
  2. 图谱检索层
    • 用户问题向量化后,不只查文档,还查图谱上的相关节点和路径(更精确)
  3. 语义生成层
    • 将图谱知识 + 文本片段 + 用户query 一起送进LLM,生成更准确的回答

一句话总结:

RAG:查段落拼一拼;GraphRAG:查图谱理逻辑,回答更有“章法”。

🌍哪些领域用GraphRAG更合适?

如果你的场景涉及“知识密集 + 概念关联多”,那GraphRAG就是如虎添翼的选择!

🏥 医疗健康问答

构建药物-症状-适应症-副作用的医学图谱,模型可回答:“这两种药能一起吃吗?”

📚 法律合规解析

从合同或法规中抽取“条款-行为-责任”的图谱,支持合规审查和法律问答

🏢 企业知识管理

搭建“岗位-制度-流程”的组织图谱,HR助手能精准回答“试用期员工能请年假吗?”

🧬 生物科研与文献挖掘

解析论文中的“基因-疾病-药物”结构,辅助科研人员快速理解科研图谱

📦 产品知识图谱客服

电商平台构建“产品-属性-FAQ-问题场景”的知识图谱,客服机器人变得更“专业”

🛠️GraphRAG 技术方案+实战框架

1.技术栈核心:

模块推荐工具
实体/关系抽取SpaCy、LlamaIndex、OpenIE、LLM(GPT类)
图谱存储与查询Neo4j、NetworkX、Knowledge-Graph-Toolkit
检索器FAISS / LlamaIndex Graph Retriever
生成模型Qwen、Mistral、ChatGLM、GPT系列等
框架整合LangChain、LlamaIndex、Haystack

2.示例代码(基于LlamaIndex)

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, SummaryGraphfrom llama_index.core.graph_stores import SimpleGraphStorefrom llama_index.core.indices.composability import ComposableGraphfrom llama_index.llms import OpenAI# 加载文档documents = SimpleDirectoryReader("docs/medical_qa").load_data()# 创建图谱graph_store = SimpleGraphStore()graph = SummaryGraph.from_documents(documents, graph_store=graph_store)# 创建索引index = VectorStoreIndex.from_documents(documents)# 合并成GraphRAG管道graph_rag_chain = ComposableGraph([graph, index])# 用户查询response = graph_rag_chain.query("治疗高血压的药物有哪些?")print(response)

3.部署方式建议:

  • 图谱服务:使用 Neo4j + REST API 提供图谱查询接口
  • LLM服务:部署 LLM 本地模型(如 Qwen1.5-1.8B)接入 LangChain 调用
  • 整合链路:通过 LangChain Agent or GraphAgent 进行全流程协作调用

✅优缺点分析 & 未来趋势

🌟GraphRAG优势

优点说明
✅ 更强语义结构图谱提供逻辑关系支持,不仅仅是文字匹配
✅ 上下文更精准提供更聚焦的知识路径,避免无关段落干扰
✅ 支持可解释性查询可追溯回答依据,如:“该结论来自图中某个路径链条”
✅ 易与业务规则结合可接入行业知识库、规则系统,实现半结构化知识融合

⚠️GraphRAG局限

缺点说明
❌ 构建门槛高图谱构建初期需要花时间标注、抽取和清洗
❌ 抽取错误影响较大错误的关系图会误导模型回答
❌ 实时性相对不足图谱更新速度较慢,不如全文检索动态

🔮未来趋势

  • 自动图谱构建工具链成熟(结合LLM的AutoKG技术)
  • 图谱+Agent结合形成“思考路径”式问答
  • 支持图谱编辑和多模态融合(如图+文本+音频)
  • 行业专属图谱模板标准化,如金融、法律、医药

🎯从“搜索+拼贴”到“结构+理解”,GraphRAG让AI更“有脑子”

传统RAG让AI变成了“开卷答题王”;GraphRAG则让它具备了“逻辑推理和结构理解”的能力。

在 AI 的能力演化中,结构化知识注入是下一步关键。而GraphRAG,就是这个阶段的重要标志。

📌如果你的数据本身是结构复杂、概念层次清晰的,那么不要犹豫——GraphRAG一定是更优选项。

最后

如果你真的想学习大模型,请不要去网上找那些零零碎碎的教程,真的很难学懂!

你可以根据我这个学习路线和系统资料,制定一套学习计划,只要你肯花时间沉下心去学习,它们一定能帮到你!

点击领取:2025最新最全AI大模型资料包:学习路线+书籍+视频+实战+案例…

微软开源的GraphRAG解读 GraphRAG的核心就是围绕全局搜索跟局部搜索两个应用场景做的优化,但串联了实体识别、实体关系抽取、社区聚类等算法,会存在误差传播,为了做这种图谱可能需要花费很大精力,也不一定会奏效。不过其通过文档内部,文档外部做图谱的思路,以及基于此做的嵌入作为补充也是值得借鉴的方法。论文题目:From Local to Global: A Graph RAG Approach to Query-Focused Summarization论文链接:https://arxiv.org/pdf/2404.16130。 阅读详情

相关推荐

本地 Graph-RAG(图 + RAG) 部署与使用落地方案

本文提出了一种Graph-RAG方法,通过结合向量检索和图数据库增强检索能力。系统架构包括:1)使用gte-large-zh模型生成文本切片嵌入并存入Milvus;2)将切片作为节点存入Neo4j图数据库并建立多种关系;3)查询时先进行向量检索获取初始节点,再通过图遍历扩展上下文;4)最终将检索结果拼接提示送入本地生成模型完成回答。 文章详细介绍了部署方案(Docker Compose)、数据建模、入库流程和检索算法,提供了完整的Python实现示例。关键优化策略包括:建立多种节点关系、设计融合排序算法、控

lrj41781196的博客 1507

Project Graph RAG 深度解析:与原生 RAG 的差异、原理与实战

想要了解更多前沿科技和深度解读,敬请关注我们的公众号!

许泽宇的技术分享 3451

RAGFlow+GraphRAG+QwQ32B:企业级知识图谱增强RAG系统实战搭建

检索增强生成(RAG)是缓解大模型幻觉、实现企业知识库落地的核心技术,但其效果高度依赖文档解析、向量召回与上下文组织。传统RAG在处理跨文档关联、多跳推理和结构化关系查询时常常力不从心,而知识图谱与图检索的引入则能将点状知识连接为网状结构,为复杂问题提供关系证据链。GraphRAG通过实体抽取、社区检测实现全局语义理解,RAGFlow以专业解析和引用溯源确保检索质量,本地推理模型QwQ32B则兼顾部署成本与中文指令跟随能力。本文从RAG基本概念出发,详解如何使用RAGFlow、GraphRAG、Neo4j与

weixin_29054399的博客 241

GraphRAG揭秘:构建层次化知识图谱的终极指南

GraphRAG是微软推出的结构化检索增强生成方法,通过知识图谱和社区层次结构提高模型推理问答性能。

我码玄黄的博客 2186

GraphRAG:一种新型的RAG技术

微软前几天发布的 GraphRAG 架构非常厉害,但是具体的原理和内容可能不太好理解。Neo4j 的 CTO 写了一篇详细的文章《GraphRAG 宣言:为 GenAI 增加知识》,通俗易懂的介绍了 GraphRAG 的原理、与传统 RAG 的区别、GraphRAG的优势、知识图谱的创建和利用知识图谱工作。

产品老A,8年互联网大厂AIPM,专注探索新型人机交互 7050

GraphRAG详解

DRIFT Search是GraphRAG最新的改进版本,也是GraphRAG正在探索的几项重大优化中的第一个。它既取了Globall Search的优点也补足了Local Search的缺点,但在实际工程里大家还是要结合业务场景选择最适合的方案。无论哪种搜索模式开发者都需要考虑搜索效率和LLM Tokens的资源消耗,都需要衡量召回精度、计算成本和时间成本的优先级,特别是在当前大模型应用开发领域,一定没有最优的解决方案只有最适合场景的解决方案。

qq_25893567的博客 2091

基于图谱的 RAG(GraphRAG):实体抽取与社区摘要实操

全量海量非结构化文档库 (Unstructured Documents) ]v 阶段一: 实体与关系大模型深度抽取 (LLM Graph Extraction)+------------------------- 全局知识网络图 (Global Knowledge Graph) -------------------------+| [ 实体 Nodes ]: 芯片制造商 A, 原材料供应商 B, 港口海运 C, 政策法案 D... |

2401_87746054的博客 1910

GraphRAG(知识图谱增强RAG)(⭐⭐)—— 将实体关系抽取为知识图谱,在检索时进行多跳推理。技术栈:Neo4j、LlamaIndex、SPARQL

GraphRAG并非简单的RAG变体,而是一次知识表示与检索范式的深刻变革。它将人类千百年来积累的“实体-关系”认知框架引入AI系统,使机器不再只是“语义匹配器”,而成为“知识导航员”。尽管当前GraphRAG在工程落地中仍面临抽取质量、性能、成本等挑战,但随着LLM推理能力的持续提升、图数据库技术的迭代以及云原生基础设施的完善,这些问题将在未来2-3年内得到系统性解决。对于企业和开发者而言,现在正是布局GraphRAG的黄金时期。

2201_76125393的博客 84

AI + 知识图谱 = GraphRAG:为企业构建更精准的聊天机器人

在本文中,我们了解了 GraphRAG 如何为企业提供客户支持聊天机器人。我已涵盖以下关键组件:构建知识图谱、为 Cypher 查询生成构建 LLM 驱动的管道,以及利用 FalkorDB 的功能创建高效、低延迟的 GraphRAG 系统。此方法展示了现代图数据库如何有效支持智能客户服务解决方案。我还比较了 RAG 系统中图数据库与向量数据库的优劣,并演示了如何根据业务需求选择更适合的解决方案。为了进一步探索,建议您尝试创建更详细的知识图谱,以表示复杂的数据关系。

2401_85375186的博客 1142

project-graph:简单的基于图的项目计划工具

project-graph:简单的基于图的项目计划工具

HDMI接口技术解析:从基础到应用

本文深入解析HDMI接口技术,从其发展历程、物理结构到传输原理,全面剖析HDMI如何成为影音传输的主流标准。通过对比不同版本的带宽升级和实际应用案例,展示HDMI在4K/8K视频传输中的卓越性能,并分享硬件设计中的实战经验与避坑指南。

weixin_30485379的博客 363

kotaemon GraphRAG集成:知识图谱赋能智能检索

通过kotaemon的GraphRAG技术,将文档转化为知识图谱,实现对实体关系的深度理解与关联推理,显著提升复杂查询的检索精度。支持多种图谱索引模式,结合可视化调试与参数调优,让问答系统具备可解释、结构化的语义检索能力。

weixin_35920379的博客 620

汽车工程师必看:从CAN到Ethernet,6种车载通信协议全解析(附应用场景对比)

本文全面解析了从CAN到Ethernet的6种车载通信协议,包括CAN、LIN、MOST、FlexRay等,并对比了它们的应用场景和技术特点。文章详细介绍了各协议的演进历程、技术优势及在现代汽车中的混合网络架构设计,为汽车工程师提供了实用的协议选型指南和未来通信技术发展趋势。

weixin_28683689的博客 478

开源RAG+GraphRAG知识库系统,20+大模型集成,企业AI客服成本省90%,支持私有部署零风险,企业政务教育首选!

一款面向企业、高校及政务部门的开源知识库AI问答系统,基于先进的大语言模型(LLM)技术架构,融合检索增强生成(RAG)与GraphRAG知识图谱构建技术,为组织机构提供开箱即用的智能化知识管理解决方案。

Y525698136的博客 855

射频电路设计——射频器件基础

本文仅供自己复习使用,请勿转载! 射频电路制作方法 MCM工艺 CMOS工艺 趋肤效应、深度 频率越高趋肤效应越明显 高频器件 高频电阻 绕线的比贴片的多一个电感,是因为绕线的因为是线绕制的,只有有线就会有电感,所以绕线电阻等效模型会比贴片的多一个电感 多晶硅电阻模型 深线性区MOS电阻 高频电阻的频率响应 记忆的话就后面的频率特性有点像电容的 高频电容 作用 单层贴片式电容 多层贴片式电容 MIM电容 MOM电容 由于是并联的,所以总的电容值是单个的直接相加 PN结电容 M.

输出每日所学,供大家学习使用 7135

ArcGIS数据处理必备技能:从地理坐标到UTM投影的面转栅格完整流程

本文详细介绍了在ArcGIS中从地理坐标到UTM投影的面转栅格完整流程,包括坐标系转换、像元大小设置及质量控制等关键步骤。通过实战案例和Python脚本示例,帮助用户解决常见问题并优化数据处理效率,特别适合需要精确GIS数据分析的专业人士。

weixin_42628688的博客 177

【GraphRAG+Neo4j +TRAE】零代码打造基于知识图谱的本地知识库,实现知识图谱可视化

项目名称**:GraphRAG+知识图谱可视化——以《红楼梦》为测试文本 **核心目标**:利用知识图谱中的结构化关系信息,辅助模型更精准地理解查询意图,并在海量数据中找到最相关的信息进行生成。

m0_59163425的博客 218

利用makehumancommunity导入人体模型到COMSOL里(需要solidwork)

#makehumancommunity #solidwork #COMSOL

qq_41227634的博客 2153

GraphRAG大模型学习指南:收藏这份秘籍,小白也能轻松掌握知识图谱+RAG技术

大型语言模型(LLMs)凭借信息处理和文本生成能力得到了广泛应用。然而,LLMs 在实际应用中面临两个老大难问题:输出准确性和"幻觉"。为了解决这两个问题,检索增强生成(RAG) 技术应运而生——它让大模型调用外部知识源(比如个人和公司保存的大量文档)来回答问题,效果比纯靠模型"自己编"靠谱得多。⚠️ RAG 的局限但是当回答针对整个文本语料库的全局性问题时(比如"数据集中的主要主题是什么?"),RAG 就有点力不从心了。

xxue345678的博客 265

【AI绘图进阶指南】Latent Diffusion Model核心组件解析——从理论到实践

本文深入解析Latent Diffusion Model(LDM)的核心组件,包括Autoencoder、Denoiser和Conditioning Encoder的工作原理及实践应用。通过理论结合代码示例,揭示LDM如何高效处理图像生成任务,并优化AI绘图流程,为开发者提供从理论到实践的进阶指南。

weixin_42628941的博客 379

如何在MacBook上安装部署原生openclaw

本文介绍了在MacBook上安装OpenClaw的详细步骤:首先通过curl或国内镜像源安装nvm和Node.js(版本≥22),然后使用nvm安装Node.js 24并验证安装。接着通过脚本快速安装OpenClaw,完成安装后选择Qwen作为AI模型并进行OAuth认证。配置过程中可跳过联网搜索和Agent技能设置,最后选择Web界面作为呈现方式。安装完成后,系统会启动openclaw-gateway进程并打开Web界面,用户可通过简单的"hello"指令开始与AI对话。目前基础功能已

木简熙的博客 804

突破协作壁垒:GraphRag知识图谱多人协同编辑系统设计指南

GraphRag是一个模块化的基于图的检索增强生成(RAG)系统,它通过知识图谱技术为多人协作编辑提供了强大的支持。在当今信息爆炸的时代,团队协作处理复杂知识已成为常态,而GraphRag正是为此打造的终极解决方案。 ## 知识图谱协作的核心挑战 在多人协作编辑知识图谱时,团队面临着诸多挑战。不同成员可能同时对同一实体或关系进行编辑,如何确保数据一致性和冲突解决是首要问题。此外,知识图谱的结构

gitblog_00940的博客 487

ProgLoss+STAL 技术详解:YOLO26 小目标检测增强方案

本文提出了一种基于ProgLoss渐进式损失函数和STAL小目标感知标签分配的YOLO26增强方案。针对小目标检测中特征信息少、正负样本不平衡等难题,STAL通过尺度感知的标签分配策略动态调整候选样本数量和IoU阈值,为小目标分配更多正样本;ProgLoss则根据训练阶段动态调整分类和回归损失的权重,早期侧重定位能力,后期加强分类精度。实验表明,该组合方案显著提升了小目标检测性能,在COCO数据集上小目标AP达到38.2%,比基线提升6.5个百分点。该方法为遥感、监控等场景的小目标检测提供了有效解决方案。

一键难忘的博客 1265

LLMs之KG-RAG:KG-RAG/GraphRAG(基于知识图谱的RAG系统)的简介(可以解决多跳问题/同时支持结构化和非结构化数据查询)、经验技巧、案例应用之详细攻略

​ LLMs之KG-RAG:KG-RAG/GraphRAG(基于知识图谱的RAG系统)的简介(可以解决多跳问题/同时支持结构化和非结构化数据查询)、经验技巧、案例应用之详细攻略 目录 KG-RAG的简介 KG-RAG的相关工具或框架 KG-RAG的案例应用 KG-RAG的简介 检索增强生成(RAG)应用在集成来自外部来源的数据到LLMs中,回答简单问题方面表现出色。但是,它们在回答涉及将相关信息连接起来的多部分问题时往

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 4735

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

GraphRag实战篇:RAG+知识图谱,提升模型推理能力的大杀器,值得收藏!

经典RAG应用的范式与架构已经非常流行,我们可以在很短的时间内借助成熟框架开发一个简单能用的RAG应用。但是传统的RAG系统有个非常大的局限,即不善于处理复杂关系推理、总结性问题和多跳问题。因为传统RAG需要对文本进行分块,然后进行向量化存储,这种处理模式就会天然导致RAG在全局查询或总结上的表现不会太好。比如面对这样的问题,“《跨越鸿沟》这本书整体上讲了什么?请撰写一份2000字的总结”,传统RAG大概率会表现不及格。

xx_nm98的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

一文讲清楚KG、RAG、KAG、GraphRAG...这些有什么区别?

一文讲清楚KG、RAG、KAG、GraphRAG...这些有什么区别?

weixin_59191169的博客 1662

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 【建议收藏】大模型三大优化技术深度对比:蒸馏 vs RAG vs 微调,到底怎么选?
下一篇: 从理论到落地:分层记忆架构在AI Agent中的应用实践
程序猿周小粥
博客等级 码龄3年 303粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值