一文讲明白初学者怎么入门大语言模型(LLM)?(非常详细)零基础入门到精通, 收藏这一篇就够了

面向开发者的 LLM 入门课程 一个中文版的大模型入门教程,围绕吴恩达老师的大模型系列课程展开,主要包括:· 书写 Prompt 的原则;· 文本总结(如总结用户评论);· 文本推断(如情感分类、主题提取);· 文本转换(如翻译、自动纠错);· 扩展(如书写邮件);· 使用大语言模型的基本规范;· 通过分类与监督评估输入;· 通过思维链推理及链式提示处理输入;· 检查并评估系统输出;· 模型、提示和解析器;· 应用程序所需要用到的存储;· 搭建模型链;· 基于文档的问答系统;· 评估与代理;· 上下文学习; 阅读详情

关于如何入门LLM,大多数回答都提到了调用API、训练微调和应用。但是大模型更新迭代太快,这个月发布的大模型打榜成功,仅仅过了一个月就被其他模型超越。训练微调也已经不是难事,有大量开源的微调框架(llamafactory、firefly等),你只要懂部署,配置几个参数就能启动训练。甚至现在有大量云上项目,你根本不需要部署,直接上传数据,就能启动。

这我让想起来之前的算法工程师都被调侃成调参师,新出一个大模型,下载下来跑一遍,运行一遍AutoTokenizer.from_pretrained(model_path),对于自己理解和入门大模型没有任何意义。

对于初学者如何入门,我的建议是从一个开源大模型入手,全面了解它的运行原理以及如何应用。可以将大模型比作一辆车,我开车无需理解车是如何做的,但是车出问题了,了解原理能够帮我们快速找到其中的问题。

为了更好入门大模型,我建议按照以下顺序学习,分为编程基础准备、大模型原理理解和大模型应用三个部分。

一、编程基础准备

1.熟练Python编程语言

我一般使用numpy用于数据处理,matplotlib用于画图分析(比如分析位置编码、注意力矩阵),numpy很多函数与pytorch类似放后面讲,这里主要讲常用的matplotlib画图函数,学好matplotlib库有利于我们以可视化的角度去理解一些大模型原理。

  • plt.bar(x,y,width)

举个例子,画直方图分析llama3 8B中参数分布情况,可以发现有2个峰值,分别是embedding层和最后输出logits层,两者参数量一致。

  • plt.plot(x,y,width)

举个例子,画点图分析llama3 8B中的位置编码RoPE。在同一位置m下,可以发现向量中的元素,在i比较小的时候变化较快,i较大的时候变化较慢。

  • plt.colorbar(x,y)

举个例子,画热力图分析llama3 8B中的Attenion矩阵。我的intput为“The boy didn’t cross the street because he was too ”,要预测下一个词。观察第10行(分析注意力矩阵都是以行为单位)可以发现"he"这个toke与"boy"这个token关联度很高,而不是“street”这个token。

所以说画图很重要,深度学习本质上都是矩阵运算,单看数字看不出什么结论,需要结合画图等可视化工具分析。

2.熟悉pytorch等深度学习框架

目前主流大模型基本上都是用pytorch写的,pytorch语法太多了,下面介绍在LLM中常用的pytorch语法(排序不分先后)

(1).torch.nn.Embedding(num_embeddings, embedding_dim...)

其中num_embeddings代表词表的大小,embedding_dim代表词向量的维度。embedding.weight的size为[num_embeddings,embedding_dim]。举个例子,输入索引i,输出embedding.weight 的第 i 行。

(2).torch.matmul(x,y) 、 x*y 、 torch.dot(x,y) 与 torch.mul(x,y)之间的区别

其中torch.matmul(x,y)代表矩阵相乘,torch.mul(x,y)与x*y均代表矩阵对应元素相乘, torch.dot(x,y)代表向量之间的点积。

(3).torch.full(size, fill_value)

torch.full([2,3],2.0)   #tensor([[2,2,2],            [2,2,2]])   

(4).torch.triu(x)

import torch   a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])   b = torch.triu(a)   print(b)      # tensor([[1, 2, 3],              [0, 5, 6],              [0, 0, 9]])   

用于注意力机制中的mask计算

(5). torch.outer(x,y)

x = torch.arange(1,5)   y = torch.arange(1,4)   print(torch.outer(x,y))   # tensor([[ 1,  2,  3],           [ 2,  4,  6],           [ 3,  6,  9],           [ 4,  8, 12]])   

一般用于大模型位置编码计算中,比如正弦余弦位置编码、相对位置编码、 旋转位置编码等。

(6). torch.view_as_complex(x)

x=torch.randn(4, 2)   # tensor([[ 0.0024,  1.5686],             [-1.2883,  1.0111],             [ 0.8764,  0.1839],             [ 0.8543, -0.0061]])   torch.view_as_complex(x)   # tensor([0.0024+1.5686j, -1.2883+1.0111j,  0.8764+0.1839j,  0.8543-0.0061j])   

大模型位置编码有两种计算方法,一种是在实数域计算、一种是复数域计算。该函数一般用于复数域计算。

(7). torch.view_as``_real(x)

x= torch.tensor([ 0.0024+1.5686j, -1.2883+1.0111j,  0.8764+0.1839j,  0.8543-0.0061j])   torch.view_as_real(x)   # tensor([[ 0.0024,  1.5686],           [-1.2883,  1.0111],           [ 0.8764,  0.1839],           [ 0.8543, -0.0061]])   

同上

(8). 弄清楚torch.reshape(input,shape) 和torch.view(input,shape)

我建议从内存分配的角度来理解reshape。无论一个张量 shape 怎么改变,它的分量在内存中的存储顺序也是不变的。

import numpy as np   a = np.arange(6)      # 其中order="C"、"F"、"A"分别代表不同读取顺序,   print(np.reshape(a, (2, 3), order='C'))   #[[0 1 2]    [3 4 5]]   print(np.reshape(a, (2, 3), order='F'))   #[[0 2 4]    [1 3 5]]   print(np.reshape(a, (2, 3), order='A'))   #[[0 1 2]    [3 4 5]]   

(9). 弄清楚torch.transpose(tensor,dim0,dim1)和torch.permute(dim0, dim1, dim2, dim3)

两者均代表矩阵的转置,在二维的时候很容易想明白转置之后的情况,但是高维度的时候就糊涂了。举个例子:

arr = torch.arange(16)   arr = arr.reshape(2,2,4)   # tensor([[[ 0,  1,  2,  3],            [ 4,  5,  6,  7]],           [[ 8,  9, 10, 11],            [12, 13, 14, 15]]])   arr = arr.transpose(1,2)   # tensor([[[ 0,  4],            [ 1,  5],            [ 2,  6],            [ 3,  7]],              [[ 8, 12],            [ 9, 13],            [10, 14],            [11, 15]]])   

上面这个三维数组例子,我定义为(batch,H,W),transpose(1,2)等效于长和宽转置。类似这样的例子我们已经练习过很多次了。

不过如何理解arr.transpose(0,1)?,batch和H维度转置没有物理含义。这需要借用矩阵stride概念来理解。

详解见:https://www.bilibili.com/video/BV1pN4y117rD

(10). torch.cat 和 torch.stack的区别

(11). 以及一些常用的数学计算公式torch.rsqrt、tensor.pow、torch.mean等等

二、大模型原理理解

整体要干什么?

简单来说通过基于Transformer架构预测下一个词出现的概率。就不放Attention is all you Need论文里的图了。我这里放一张llama3-8B的网络架构图。这个网络架构里的每一个模块,你都能手写出来,就算是大模型原理这一块入门了。

建议学习网络架构的时候带着问题去学习,不要局限于矩阵中的元素怎么乘,pytorch语法只是工具,真正需要做的是思考为什么这样做以及背后的数学含义。下面分享一下我亲身学习大模型原理中思考的一些问题,希望对大家有帮助。

1.自注意力机制的理解

  • 了解单头注意力机制,什么是K矩阵、V矩阵和Q矩阵,以及如下公式为什么要除

  • 分析为什么在注意力机制中要加入mask?

  • 分析attention is all you need这篇文章中的多头注意力机制(MHA),分析为什么要多头?单头注意力机制为什么不行?

  • 分析为什么要搞Grouped-query Attention(GQA),它相比MHA的好处在哪里?以及应用在哪些方面。

上面四点弄明白,对于注意力机制差不多算入门了。

2.位置编码的理解

  • Transformer架构为什么需要位置编码?它解决了常规NLP网络架构中的什么问题

  • 绝对位置编码和相对位置编码,他们各有什么优点和缺点

  • 为什么现在大模型都在用旋转位置编码RoPE?它在实数域和复数域的实现方式是怎样的?RoPE的缺点有哪些?顺带可以了解下最新的上下文位置编码CoPE。

  • 大模型为什么有Long-Context问题以及如何利用位置编码去解决长文本问题?

3.前馈网络(feed forwad)的理解

  • 为什么需要前馈网络?

  • 为什么llama3要使用SwiGLU?

4.归一化(normalization )

  • 为什么需要归一化?

  • batch normalization 、layer normalization有什么区别?为什么语言模型用layer normalization,不去用batch normalization?

  • 详细理解layer normalization中RMS Norm,分析其相比常规layer normalization的优势。

5.推理

  • 本质上每次推理都是一次吐一个字?如何加速推理?可以去了解KV Cache。

  • 句子长度参差不齐,batch推理如何补齐长度?

  • 如果最后大模型输出logits取最大值,那么大模型生成式能力从何体现?这就需要去了解_temperature_和_top p_参数

三、大模型应用

1.微调训练

  • 大模型训练分为预训练、指令微调和人类反馈强化学习。大模型训练对于硬件要求高,平民玩家没卡,建议去了解Lora、QLora等高效微调算法。

  • 了解llamfactory、Firefly等大模型微调框架,自己做个数据集,在大模型的基础上微调子任务。

  • 如果有卡,可以尝试多卡多机跑跑模型,因为我也没什么卡,所以没法给出建议。

2.RAG

  • 思考为什么要RAG?RAG和Long Context之间是什么关系?

  • RAG分为知识库构建、知识检索和智能问答,从零实现一个最简单的RAG。教程见https://zhuanlan.zhihu.com/p/696872562

  • 在最简单RAG的基础上,学一学Faiss、Milvus等向量数据库,优化RAG中涉及的检索、知识存储

  • 学一学成熟的RAG框架ragflow

3.Agent

  • 从零手写一个Agent框架,见

    https://github.com/KMnO4-zx/TinyAgent

  • 学一学成熟的Agent框架langchain、dify等

最后,我也在持续学习中,如果文章有错误欢迎评论区各位大佬指出!

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版优快云大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

LLM三阶段训练代码汇总 在进行大模型的阶段训练时,从头编写代码有点浪费时间。为了更高效地实现这一目标,我们可以利用GitHub上已有的现成代码。下面对现成的代码库进行总结。 阅读详情

相关推荐

Llama-Factory简介 github介绍页

可选的额外依赖项:deepspeed、metrics、unsloth、galore、vllm、bitsandbytes、gptq、awq、aqlm、qwen、modelscope、quality。[23/09/23] 我们在项目中集成了 MMLU、C-Eval 和 CMMLU 评估集。如果您在 Hugging Face 模型和数据集的下载中遇到了问题,可以通过下述方法使用魔搭社区。部分数据集的使用需要确认,我们推荐使用下述命令登录您的 Hugging Face 账户。如果您感兴趣请关注我们的。

具身机器人和通用AI 1121

LLM如何入门?请看这篇综述!

Q:这些年,我们在做什么?A:自从图灵测试在1950年代提出以来,人类一直在探索如何让机器掌握语言智能。为了理解和掌握语言,开发能力强的人工智能算法面临着重大挑战。语言模型LM在过去的二十年中被广泛研究,用于语言理解和生成,从统计语言模型发展到神经语言模型。Q:你说的这些都是比较老的事情了,现在在做什么?A:确实,那近几年的话,研究人员提出了预训练语言模型PLM,通过对大规模语料库进行Transformer模型的预训练,展现了解决各种NLP任务的强大能力。并且,由于研究人员发现模型缩放可以导致。

2401_85373691的博客 1124

nnDetection实战:手把手教你用Python在自家电脑上跑通第一个肺结节检测模型

本文详细介绍了如何使用nnDetection框架在普通电脑上实现肺结节检测模型的搭建与运行。从环境配置、数据预处理到模型训练与推理,手把手教你完成医学图像检测的全流程,特别适合初学者入门医学AI领域。

weixin_32377497的博客 330

一文搞懂LLM大模型!LLM从入门到精通万字长文(2024.12月最新)

LLM大模型从入门到精通

qq_45591302的博客 3万+

三. zemax光学设计流程+案例

文章目录zemax 基本操作:1. 建立光学基本模型2. 像质评价3. 优化(重点)4. 公差分析简单镜头设计 zemax 基本操作: 1. 建立光学基本模型 2. 像质评价 3. 优化(重点) 对系统设定的约束条件或目标值 统称为操作数。 操作数: 光学特性参数(焦距EFFL,近轴放大率PMAG,入瞳位置EMPP) 像差参数(球差SPHA,彗差COMA,像散ASTI) 边界条件(中心厚度值CTVA,边缘厚度值ETAV) 优化的主要步骤: 设置评价函数和优化操作数 一般小像差系统采用波像差 构建

Taiiiii的博客 8054

基于Codex平台构建AI技能:抖音爆款分析与带货视频生成实战

这次我们来看一个基于 Codex 平台构建 AI 技能(Skill)的实战项目。核心目标很直接:利用 AI 能力,自动化分析抖音平台的爆款内容,并生成可用于带货的视频。这听起来像是内容创作领域的“自动化流水线”,它解决的核心痛点是:人工分析爆款、撰写脚本、制作视频的效率瓶颈。 对于技术开发者和内容创作者而言,这个项目的价值在于将“内容策略分析”和“视频内容生成”两个环节通过 Codex 的 Skill 机制串联起来,形成一个可定制、可批量执行的自动化工作流。我们最关心的几个问题包括:这个方案的技术门槛高不高

weixin_29054399的博客 485

一文讲明白初学者怎么入门大语言模型(LLM)?从零基础入门到精通,收藏这一篇就够了!

文章提出大模型入门应从开源模型入手,全面理解原理和应用,而非仅调用API或微调。作者推荐按编程基础、大模型原理理解和应用三阶段学习,强调通过可视化和实践深入理解大模型工作机制,避免成为"调参师",真正掌握大模型技术。关于如何入门LLM,大多数回答都提到了调用API、训练微调和应用。但是大模型更新迭代太快,这个月发布的大模型打榜成功,仅仅过了一个月就被其他模型超越。训练微调也已经不是难事,有大量开源的微调框架(llamafactory、firefly等),你只要懂部署,配置几个参数就能启动训练。

2401_85773741的博客 986

验证码破解2.0:Python+CV大模型搞定滑块/点选验证

核心创新:基于YOLOv8+SAM CV大模型的端到端验证码破解方案,无需人工设计特征,适配多种验证码类型;核心价值高成功率:滑块验证≥95%,点选验证≥90%,远超传统CV方案;低延迟:单验证码破解≤2秒,满足高并发采集需求;行为模拟:生成符合人类操作的轨迹,绕过行为检测;易扩展:统一架构支持新增验证码类型,仅需少量标注数据微调;技术要点采用YOLOv8实现快速目标检测,SAM实现像素级分割;生成物理规律的人类轨迹,模拟真实操作行为;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1261

一文讲明白初学者怎么入门大语言模型(LLM)?

关于如何入门LLM,大多数回答都提到了调用API、训练微调和应用。但是大模型更新迭代太快,这个月发布的大模型打榜成功,仅仅过了一个月就被其他模型超越。训练微调也已经不是难事,有大量开源的微调框架(llamafactory、firefly等),你只要懂部署,配置几个参数就能启动训练。甚至现在有大量云上项目,你根本不需要部署,直接上传数据,就能启动。这我让想起来之前的算法工程师都被调侃成调参师,新出一个大模型,下载下来跑一遍,运行一遍,对于自己理解和入门大模型没有任何意义。

2401_85373691的博客 2198

WPS文档中心和文档中台 operate 未授权访问漏洞(CVE-2025-0717)

WPS文档中心和文档中台的/open/v6/api/etcd/operate?key=/config/storage&method=get接口存在未授权访问漏洞,攻击者可通过该漏洞获取AK/SK密钥等信息,这些密钥通常用于系统内部认证和权限控制,泄露后可能导致攻击者进一步修改K8s配置、部署恶意容器或执行远程命令,最终实现对系统的完全控制。

李同學AI安全 903

Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving

通过多回合对话与人类互动是大型语言模型(LLM)的一个基本特征。然而,由于需要重复计算历史token的密钥值(KV)缓存,用于执行多回合会话的现有LLM服务引擎效率低下,从而导致高服务成本。为了解决这个问题,本文提出了AttentionStore,这是一种新的注意力机制,可以在多回合对话中重用KV缓存(即注意力重用),显著降低重复计算开销。AttentionStore维护一个分层的KV缓存系统,该系统利用经济高效的内存/存储介质为所有请求保存KV缓存。

c_cpp_csharp的专栏 394

一文讲明白初学者怎么入门大语言模型(LLM)?零基础入门到精通,收藏这一篇就够了

关于如何入门LLM,大多数回答都提到了调用API、训练微调和应用。但是大模型更新迭代太快,这个月发布的大模型打榜成功,仅仅过了一个月就被其他模型超越。训练微调也已经不是难事,有大量开源的微调框架(llamafactory、firefly等),你只要懂部署,配置几个参数就能启动训练。甚至现在有大量云上项目,你根本不需要部署,直接上传数据,就能启动。这我让想起来之前的算法工程师都被调侃成调参师,新出一个大模型,下载下来跑一遍,运行一遍,对于自己理解和入门大模型没有任何意义。

leah126的博客 1334

一文讲明白初学者怎么入门大语言模型(LLM)?零基础入门到精通,收藏这篇就够了

关于如何入门LLM,大多数回答都提到了调用API、训练微调和应用。但是大模型更新迭代太快,这个月发布的大模型打榜成功,仅仅过了一个月就被其他模型超越。训练微调也已经不是难事,有大量开源的微调框架(llamafactory、firefly等),你只要懂部署,配置几个参数就能启动训练。甚至现在有大量云上项目,你根本不需要部署,直接上传数据,就能启动。这我让想起来之前的算法工程师都被调侃成调参师,新出一个大模型,下载下来跑一遍,运行一遍,对于自己理解和入门大模型没有任何意义。

Python_paipai的博客 860

全国区块链职业技能大赛国赛考题前端功能开发

全国区块链职业技能大赛国赛考题区块链应用前端功能开发

本郡主是喵 1334

深度学习工具包 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")

一文讲明白初学者怎么入门大语言模型(LLM)?建议收藏!

大模型很多技术干货,都可以共享给你们,如果你肯花时间沉下心去学习,它们一定能帮到你!

2401_85325726的博客 769

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 50+k8s常用命令,助你成为k8s大牛!
下一篇: 思维模型:看透本质的思维框架,和它组合个个是王炸(非常详细)零基础入门到精通, 收藏这一篇就够了
网络安全大白
博客等级 码龄5年 7305粉丝 698原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值