论文阅读笔记AI篇 —— Transformer模型理论+实战 (四)

这篇具有很好参考价值的文章主要介绍了论文阅读笔记AI篇 —— Transformer模型理论+实战 (四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、理论

1.1 理论研读

参考文章或视频链接
[1] 《论文阅读笔记AI篇 —— Transformer模型理论+实战 (一)》- CSDN
[2] 《论文阅读笔记AI篇 —— Transformer模型理论+实战 (二)》- CSDN
[3] 《论文阅读笔记AI篇 —— Transformer模型理论+实战 (三)》- CSDN

1.2 什么是AI Agent?

如果说钢铁侠中的J.A.R.V.I.S.(贾维斯)是一个AGI通用人工智能的话,那么现阶段的AI Agent只是做到了感知任务、规划任务、执行任务。下面这张图的这个过程,看上去和强化学习是一模一样的。

论文阅读笔记AI篇 —— Transformer模型理论+实战 (四),ML&DL技术栈,Papers,人工智能,论文阅读,笔记

Agent结构图——参考视频[1]

参考文章或视频链接
[1]【动画科普AI Agent:大模型之后为何要卷它?】- bilibili
[2]【【卢菁老师说】Agent就是一场彻头彻尾的AI泡沫】- bilibili
[3] 《读懂AI Agent:基于大模型的人工智能代理》
[4] LLM之Agent(一):使用GPT-4开启AutoGPT Agent自动化任务完整指南

二、实战

2.1 先导知识

2.1.1 tensor的创建与使用

对于一维的tensor,它是没有形状而言的,你不能准确的称它为行向量row vector或列向量col vector,只有你明确的指定之后,它才有准确的形状。
但是,在数学中肯定是要有明确的意义的,要么n*1,要么1*n,总得有个说法,说法就是,认为是列向量n*1,见参考文章[2]

import torch
import torch.nn as nn

def test1_tensor():
    x = torch.tensor([1, 1, 1, 1])
    print("Before reshape:", x.shape)
    # x = x.reshape(4, 1)
    x = x.view(4, 1)  # 与reshape一样
    print(x)
    print("After reshape(4,1):", x.shape)
    # x = x.reshape(1, 4)
    x = x.view(1, 4)  # 与reshape一样
    print(x)
    print("After reshape(1,4):", x.shape)


if __name__ == '__main__':
    test1_tensor()

"""Console Output
Before reshape: torch.Size([4])

tensor([[1],
        [1],
        [1],
        [1]])
After reshape(4,1): torch.Size([4, 1])

tensor([[1, 1, 1, 1]])
After reshape(1,4): torch.Size([1, 4])
"""
参考文章或视频链接
[1] Introduction to PyTorch Tensors - PyTorch
[2] Is there any reason for using the word “column” in the context of one-dimensional tensor?

2.1.2 PyTorch的模块

2.1.2.1 torch.nn.Module类的继承与使用

强调一点,你自己实现的所有模块,应该都是继承了nn.Module这个Class的(这也是PyTorch官方文档所强调的),不要觉得可以去掉nn.Module的继承,继承了这个类,才会有一些便捷的方法可供调用,否则你都要自己实现一遍。

class Encoder(nn.Module): # (1)Encoder继承了nn.Module
    def __init__(self):
		# ...
    def forward(self, enc_inputs): # 你不需要显示调用该方法,因为在nn.Module.__call__里,已经默认实现了对该方法的调用
		# ...

class Decoder(nn.Module): # (2)Decoder继承了nn.Module
    def __init__(self):
		# ...
    def forward(self, dec_inputs, enc_inputs, enc_outputs): # 你不需要显示调用该方法,因为在nn.Module.__call__里,已经默认实现了对该方法的调用
		# ...
参考文章或视频链接
[1] Module — PyTorch 2.1 documentation
[2] Learning Day 22: What is nn.Module in Pytorch
[3] Why do we need to inherit from nn.Module in PyTorch? - stackoverflow
2.1.2.2 torch.nn.Linear类

关于Linear层有一点问题,就是它的权重矩阵,nn.Linear(4,3)中的4表示输入特征的维度,3表示输出特征的维度,按理来说是一个4 * 3的矩阵才对,但是输出结果偏不,这是因为常规的线性运算是写成这样的(假设维度已知), o u t = W 3 ∗ 4 i n 4 ∗ 1 + b 3 ∗ 1 out = W_{3*4}in_{4*1} + b_{3*1} out=W34in41+b31,但网络层以从左至右的视角看去, i n in in W W W矩阵的左边,写成这样的形式 o u t = ( i n 1 ∗ 4 W 3 ∗ 4 T ) T + b 3 ∗ 1 = ( i n 1 ∗ 4 W 4 ∗ 3 ) T + b 3 ∗ 1 out = (in_{1*4}W_{3*4}^T)^T + b_{3*1} = (in_{1*4}W_{4*3})^T + b_{3*1} out=(in14W34T)T+b31=(in14W43)T+b31就很自然的模拟了这个视角,这样就能解释为什么输出的shape是反过来的。

论文阅读笔记AI篇 —— Transformer模型理论+实战 (四),ML&DL技术栈,Papers,人工智能,论文阅读,笔记

请看参考文章[1]。

import torch
import torch.nn as nn

def test2_Linear_weight():
    linear_layer = nn.Linear(4,3)
    print(linear_layer.shape)  # torch.Size([3, 4])
if __name__ == '__main__':
    test2_Linear_weight()
参考文章或视频链接
[1] Why does PyTorch’s Linear layer store the weight in shape (out, in) and transpose it in the forward pass? - stackoverflow

2.2 Transformer代码实现

请看参考文章[1]与[4],我认为写的足够详细,也足够易懂,有些torch.transpose()的操作不太好从字面上读懂,就debug看看,无非就是高维矩阵的转置,和二维矩阵的转置也没本质区别。文章来源地址https://www.toymoban.com/news/detail-820360.html

参考文章或视频链接
本文代码来源:[1] 《Transformer 代码详解(Pytorch版)》- CSDN
[2] 【Transformer代码实现】- bilibili
重点观看此视频:[3] [重置版]从零实现transfomer模型 || 理解ChatGPT基石 || pytorch- bilibili
这篇写的也不错,可以重点阅读:[4] 《Transformer原理与代码实现》- CSDN

到了这里,关于论文阅读笔记AI篇 —— Transformer模型理论+实战 (四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文阅读笔记】Pre-trained Universal Medical Image Transformer

    Luo L, Chen X, Tang B, et al. Pre-trained Universal Medical Image Transformer[J]. arXiv preprint arXiv:2312.07630, 2023.【代码开源】 【论文概述】 本文介绍了一种名为“预训练通用医学图像变换器(Pre-trained Universal Medical Image Transformer,简称PUMIT)”的新型算法,该算法旨在解决标记医学图像数据稀缺

    2024年02月04日
    浏览(47)
  • 有可能代替Transformer吗?Image as Set of Points 论文阅读笔记

    写在前面   新的一周又开始了,冲冲冲~   这一篇文章提出了新的范式,不知道未来会不会成为主流的能并行 ResNet、Transformer 的网络。本文源于 B 站大佬的一个视频分享,遂找来这篇文章精读下。 论文地址:Image as Set of Points 代码地址:https://github.com/ma-xu/Context-Cluster 收

    2023年04月08日
    浏览(62)
  • AI股票崩盘预测模型(企业建模_论文科研)ML model for stock crash prediction

    对齐颗粒度,打通股票崩盘底层逻辑,形成一套组合拳,形成信用评级机制良性生态圈,重振股市信心!--中国股市新展望!By Toby!2024.1.3 综合介绍 股票崩盘,是指证券市场上由于某种原因,出现了证券大量抛出,导致证券市场价格无限度下跌,不知到什么程度才可以停止。

    2024年02月02日
    浏览(47)
  • 【AI理论学习】语言模型Performer:一种基于Transformer架构的通用注意力框架

    Performer是一种用于高效处理自注意力机制(Self-Attention)的神经网络架构 。自注意力机制在许多自然语言处理和计算机视觉任务中

    2024年02月09日
    浏览(48)
  • VL系列 Exchanging-based Multimodal Fusion with Transformer 论文阅读笔记

    写在前面   又是一个周末 教师节,祝老师们节日快乐呀。依惯例,论文读起来~   这是一篇多模态融合的文章,也算是这些年新出的一种方式了,具体还不知道啥情况,代码已开源,一试便知。 论文地址:Exchanging-based Multimodal Fusion with Transformer 代码地址:https://github.

    2024年02月05日
    浏览(60)
  • Cross-Drone Transformer Network for Robust Single Object Tracking论文阅读笔记

    无人机在各种应用中得到了广泛使用,例如航拍和军事安全,这得益于它们与固定摄像机相比的高机动性和广阔视野。多 无人机追踪系统可以通过从不同视角收集互补的视频片段 ,为目标提供丰富的信息,特别是当目标在某些视角中被遮挡或消失时。然而,在多无人机视觉

    2024年01月25日
    浏览(60)
  • Low-Light Image Enhancement via Stage-Transformer-Guided Network 论文阅读笔记

    这是TCSVT 2023年的一篇暗图增强的论文 文章的核心思想是,暗图有多种降质因素,单一stage的model难以实现多降质因素的去除,因此需要一个multi-stage的model,文章中设置了4个stage。同时提出了用预设query向量来代表不同的降质因素,对原图提取的key 和value进行注意力的方法。

    2024年02月16日
    浏览(49)
  • 【论文阅读笔记】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

    Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation Swin-Unet:用于医学图像分割的类Unet纯Transformer 2022年发表在 Computer Vision – ECCV 2022 Workshops Paper Code 在过去的几年里,卷积神经网络(CNN)在医学图像分析方面取得了里程碑式的成就。特别是基于U型结构和跳跃连接的深度神经

    2024年01月23日
    浏览(53)
  • 【模型压缩】 LPPN论文阅读笔记

    LPPN: A Lightweight Network for Fast Phase Picking  深度学习模型的问题在于计算复杂度较高,在实际数据处理中需要面临较高的处理代价,且需要专用的加速处理设备,如GPU。随着数据累积,迫切需要设计一种能够保证精度的轻量化高速震相拾取模型,以提高处理海量数据的效率,这

    2024年02月16日
    浏览(42)
  • 【论文阅读笔记】Mamba模型代码理解

    官方实现:state-spaces/mamba (github.com) 最简化实现:johnma2006/mamba-minimal: Simple, minimal implementation of the Mamba SSM in one file of PyTorch. (github.com) 直接实现:alxndrTL/mamba.py: A simple and efficient Mamba implementation in PyTorch and MLX. (github.com) 官方代码做了大量优化,目录层级较多,对于理解模型含

    2024年04月13日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包