树莓派系统文件解析

news2024/9/22 11:38:32

title: “树莓派系统文件分析”
date: 2023-10-25
permalink: /posts/2023/10/blog-post-5/
tags:

  • 树莓派

本篇blog来分析和总结下树莓派系统文件以及他们的作用。使用的系统是Raspberry Pi OS with desktop

  • System: 64-bit
  • Kernel version: 6.1
  • Debian version: 12 (bookworm)

先看一下顶级目录/root有如下的文件和文件夹

请添加图片描述

其中,

  1. LICENCE.broadcom: 这是 Broadcom 公司的许可证文件,包含了与 Broadcom 相关的许可信息。
  2. bcm2710-rpi-*.dtbbcm2711-rpi-*.dtb: 这些是设备树二进制文件,它们描述了 Raspberry Pi 板上的硬件组件信息,如处理器、外设等。不同的文件对应于不同型号的 Raspberry Pi。
  3. cmdline.txt: 这个文件包含了内核启动时的命令行参数,例如根文件系统的位置、启动选项等。
  4. config.txt: 这是 Raspberry Pi 的配置文件,用于配置系统启动时的参数,如分辨率、内存分配等。
  5. fixup*.dat: 这些是固件文件,包含了一些用于修复和初始化硬件的固件信息。
  6. initramfs*: 这些文件是初始内存文件系统(Initial RAM Filesystem)的镜像,用于在启动过程中提供临时的文件系统。
  7. overlays/: 这个目录包含了一系列的设备树覆盖文件,可以在不修改主设备树的情况下对硬件进行配置。
  8. start*.elf: 这是 Raspberry Pi 启动加载器(bootloader)的主要组件之一,负责加载内核和启动树。
  9. System Volume Information/: 这是一个 Windows 特定的隐藏系统目录,通常会出现在 FAT 文件系统中。
  10. bootcode.bin: 这是 Raspberry Pi 启动加载器的一个关键组件,负责初始化硬件并加载 start*.elf 文件。
  11. issue.txt: 这是一个文本文件,包含了一些有关系统的信息。

总的来说,这些文件组成了树莓派系统的启动和配置环境,它们协同工作以确保系统能够正确启动并运行。

我们再来细致的看一下cmdline.txt的内容。cmdline.txt 是树莓派操作系统中一个非常重要的配置文件,它包含了启动内核时传递给内核的参数。具体来说,cmdline.txt 文件包含了一个命令行参数字符串,这些参数会在树莓派启动时传递给 Linux 内核。这些参数可以控制内核的行为,例如设置根文件系统的位置、指定启动模式等。

在我使用的debian bookworm版本系统中,cmdline.txt的内容是这样的:

console=serial0,115200 console=tty1 root=PARTUUID=f6a7c4bd-02 rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot splash plymouth.ignore-serial-consoles

我们来解释一下其中的内容:

  1. console=serial0,115200:将串口0(也就是 UART 接口)设置为控制台,波特率为 115200。这意味着可以通过串口连接来进行通信和调试。
  2. console=tty1:在控制台 1(也就是图形用户界面)上显示系统信息。
  3. root=PARTUUID=f6a7c4bd-02:指定根文件系统的位置,这里是通过 PARTUUID(分区唯一标识符)来指定的。这确保了根文件系统会被正确地挂载。
  4. rootfstype=ext4:指定根文件系统的类型,这里是 ext4 文件系统。
  5. fsck.repair=yes:在启动时如果检测到文件系统错误,将自动尝试修复。
  6. rootwait:等待根文件系统准备好后再继续启动。
  7. quiet:禁止显示大量启动信息,使启动过程更为安静。
  8. init=/usr/lib/raspberrypi-sys-mods/firstboot:指定要运行的第一个初始化程序。这通常用于执行一些系统初始化的任务。
  9. splash:允许显示启动画面(如果系统配置了这个功能的话)。
  10. plymouth.ignore-serial-consoles:忽略串口控制台,以避免干扰启动画面的显示。

我们再来看一下config.txt文件。config.txt 是 Raspberry Pi 系统中的一个重要配置文件,用于控制硬件参数和设置。它位于启动分区中,由 bootloader 在启动时读取并应用。

以下是 config.txt 文件的一些常见用途:

  1. 分辨率和显示设置:可以通过修改 config.txt 来设置显示器的分辨率、刷新率和其他显示参数。
  2. 超频:可以在 config.txt 中配置 Raspberry Pi 的CPU、GPU和内存的超频参数,以提升性能。
  3. 内存分配:可以调整系统中内存的分配方式,例如将 GPU 内存大小调整为满足特定需求。
  4. 电源管理:可以通过 config.txt 控制供电管理的行为,例如禁用通过 USB 端口供电。
  5. 设备树配置:可以在 config.txt 中加载特定的设备树文件,以配置硬件或启用外部设备。
  6. 启动选项:可以设置启动时的一些选项,例如禁用 splash 屏幕、指定根文件系统等。
  7. Overlays:可以通过 config.txt 加载一些硬件特定的功能或功能模块,例如 GPIO 扩展板。
  8. 音频设置:可以配置音频参数,如选择音频输出设备或配置 I2S 音频等。

总的来说,config.txt 提供了一种在硬件级别上对 Raspberry Pi 进行配置和定制的方法,以满足特定应用或需求。然而,编辑此文件时应小心,因为错误的配置可能会导致系统启动问题或硬件损坏。

在我使用的debian bookworm版本系统中,config.txt文件的内容是这样的:

# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Additional overlays and parameters are documented
# /boot/firmware/overlays/README

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Automatically load initramfs files, if found
auto_initramfs=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

# Run as fast as firmware / board allows
arm_boost=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

我们来解释一下其中的内容:

  1. dtparam=audio=on: 启用音频功能,并加载 snd_bcm2835 驱动程序。

  2. camera_auto_detect=1: 当检测到摄像头时,自动加载相关的 overlay。

  3. display_auto_detect=1: 当检测到 DSI(显示接口)显示屏时,自动加载相关的 overlay。

  4. auto_initramfs=1: 如果发现 initramfs 文件,则自动加载。

  5. dtoverlay=vc4-kms-v3d: 启用 DRM VC4 V3D 驱动程序,用于图形渲染。

  6. max_framebuffers=2: 设置最大帧缓冲区数量为 2。

  7. disable_fw_kms_setup=1: 禁用固件在 cmdline.txt 中创建初始的 video 设置,使用内核的默认设置。

  8. arm_64bit=1: 启用 64 位模式。

  9. disable_overscan=1: 禁用对具有超扫描的显示器的补偿。

  10. arm_boost=1: 在固件/板子允许的情况下以最大速度运行。

  11. [cm4]: 标志着接下来的设置是专门为 Compute Module 4 设计的。

  12. otg_mode=1: 启用 2711 内置的 XHCI USB 控制器的主机模式。

  13. [all]: 标志着接下来的设置适用于所有 Raspberry Pi 设备。

我们再更进一步解释一下上面的几个名词:

  • overlay: 在 Raspberry Pi 上,“overlay” 指的是一种可以动态加载和卸载的硬件配置文件。这些配置文件包含了设备树片段和参数,可以用来配置和启用特定的硬件功能或接口,例如摄像头、显示屏、传感器等。通过使用 overlay,你可以在不需要重新编译内核的情况下,动态地调整硬件配置,从而增强 Raspberry Pi 的灵活性和可配置性。这使得在不同的项目或场景中,可以轻松地切换和配置不同的硬件组件。

  • initramfs文件:initramfs 是一个临时的根文件系统,用于在 Linux 内核引导时提供必要的文件和工具,以便在实际的根文件系统挂载之前执行一些初始化任务。具体来说,initramfs 可以包含一些必要的设备驱动、文件系统工具、网络配置等,以确保系统能够正常启动和挂载真正的根文件系统。在 Raspberry Pi 中,auto_initramfs=1 的配置表示如果在 /boot/firmware 目录下发现了 initramfs 文件,就会在启动时自动加载它。使用 initramfs 的一个常见情况是在引导过程中可能需要解密根文件系统,或者进行一些需要提前初始化的操作。通过在 initramfs 中提供必要的工具和配置,可以确保系统能够顺利启动。总的来说,initramfs 是一个用于引导时期的临时文件系统,允许在正式的根文件系统挂载之前进行一些初始化和准备工作。

  • dtoverlay=vc4-kms-v3d:dtoverlay 是 Raspberry Pi 系统中用于加载设备树覆盖(Device Tree Overlay)的一个配置参数。

    设备树覆盖是一种在运行时修改设备树的机制,它允许你动态地添加、修改或删除设备树中的设备节点或属性,而无需重新编译整个设备树。通过在 config.txt 文件中使用 dtoverlay 参数,你可以加载特定的设备树覆盖,以对硬件进行配置或启用特定的功能。vc4-kms-v3d表示启用DRM VC4 V3D 驱动程序,用于图形渲染。DRM 表示 Direct Rendering Manager,它是 Linux 内核的一个子系统,用于管理图形硬件设备并提供直接的渲染支持。vc4 是指 Broadcom 公司开发的一款用于树莓派的图形处理器芯片(Broadcom VideoCore 4),它集成了 3D 图形处理器和视频解码器。V3D 是 VideoCore 4 的 3D 图形引擎部分,它负责处理与三维图形相关的任务,包括渲染、变换、纹理映射等。“kms” 代表 “Kernel Mode Setting”,它是一种在 Linux 内核层面进行显示设置的技术。KMS 允许内核控制显卡的显示设置,包括分辨率、刷新率等,而不再依赖于 X 服务器或其他用户空间工具来进行显示设置。通过 dtoverlay=vc4-kms-v3d 这条配置,启用了 Raspberry Pi 上的 VC4 显卡以及DRM 驱动程序,并将其配置为使用 KMS 技术进行显示设置,以便使用 VideoCore 4 的 3D 图形引擎进行硬件加速的图形渲染。这样的设置可以提高图形性能,特别是对于需要处理复杂图形的应用程序和游戏而言。

  • otg_mode=1: 启用 2711 内置的 XHCI USB 控制器的主机模式。2711 指的是树莓派的芯片型号。具体来说,它指的是树莓派4(Raspberry Pi 4)使用的 Broadcom BCM2711 SoC(系统芯片)。XHCI 是一种 USB 控制器接口的标准。全称为 “eXtensible Host Controller Interface”,它支持超速传输和低功耗。这种接口通常用于主机设备,比如连接外部 USB 设备(如鼠标、键盘、硬盘等)的主板 USB 控制器。通过将 otg_mode=1 添加到 config.txt 中,启用了树莓派4上内置的 USB 3.0 控制器,将其配置为支持主机模式,使你可以连接其他 USB 设备到树莓派。

我们再来看一下overlays文件夹。这个目录包含了一系列的设备树覆盖文件,可以在不修改主设备树的情况下对硬件进行配置。设备树(Device Tree)是一种描述硬件平台信息的数据结构,它以一种结构化的方式描述了系统中各个硬件组件之间的关系和属性。设备树文件通常以.dts.dtb为扩展名。

在嵌入式系统中,特别是在一些复杂的系统-on-chip(SoC)中,存在着大量的硬件组件,如处理器、外设、总线等。这些组件之间的连接和属性关系可能非常复杂。设备树的目的是将这些硬件信息抽象出来,以便内核在启动时能够正确地识别和配置硬件。

设备树的作用包括:

  1. 硬件描述: 设备树文件描述了硬件平台的组件以及它们之间的连接关系。这包括了处理器、内存、外设等。
  2. 抽象层: 设备树提供了一个硬件描述的抽象层,使得相同的内核镜像可以在不同的硬件平台上运行。
  3. 热插拔和动态配置: 设备树允许系统在运行时检测和配置硬件组件,从而支持热插拔和动态配置。
  4. 系统移植和开发简化: 设备树允许在不修改内核源代码的情况下将内核移植到不同的硬件平台上,从而简化了开发和移植的工作。

设备树的工作方式如下:

  1. 编写设备树源文件(.dts): 这是一个类似于脚本的文件,描述了硬件的结构、属性和连接关系。
  2. 编译设备树源文件(.dts): 使用设备树编译器(dtc)将设备树源文件编译成二进制的设备树文件(.dtb)。
  3. 内核启动时加载设备树: 内核在启动时会加载设备树文件,以获取硬件配置信息。
  4. 内核根据设备树配置硬件: 内核使用设备树文件中描述的信息来配置硬件组件。

总的来说,设备树是一种在嵌入式系统中描述硬件配置的强大工具,它允许内核在不同的硬件平台上运行,从而提高了系统的可移植性和灵活性。

下面我们用一个具体的例子来看一下设备树文件。

假设我们有一个树莓派 3 Model B+,我们将使用设备树文件来描述它的GPIO引脚以及一个LED灯连接到了其中一个引脚上。

首先,我们编写一个设备树源文件(.dts):

/dts-v1/;
/plugin/;

/ {
    compatible = "brcm,bcm2835";

    fragment@0 {
        target = <&gpio>;
        __overlay__ {
            led_pin: led_pin {
                brcm,pins = <16>; // GPIO Pin Number
                brcm,function = <1>; // 1 is OUTPUT mode
            };
        };
    };
};

这个设备树源文件描述了以下信息:

  • 使用了 brcm,bcm2835 兼容性标识,表明这是适用于 BCM2835 SoC 的设备树文件。
  • 在设备树的第一个片段(fragment@0)中,我们将描述 GPIO 控制器(gpio)的属性。
  • __overlay__ 块内部,我们定义了一个名为 led_pin 的节点,该节点表示一个LED灯连接的GPIO引脚。
  • brcm,pins = <16>; 表示这个LED连接在 GPIO 16 引脚上。
  • brcm,function = <1>; 表示这个引脚将被配置为输出模式。

接下来,我们使用设备树编译器(dtc)将这个设备树源文件编译成二进制的设备树文件(.dtbo):

dtc -@ -I dts -O dtb -o led-overlay.dtbo led-overlay.dts

这将生成一个名为 led-overlay.dtbo 的二进制设备树文件。

最后,将生成的设备树文件加载到树莓派的 /boot/overlays 目录中,并在 config.txt 文件中添加一行来引用它:

dtoverlay=led-overlay

这样,在下一次启动时,设备树将会被内核加载,并配置相应的GPIO引脚以控制LED。

再来看一下/root/overlays文件夹里面的内容

请添加图片描述

overlays文件夹里面的内容相对多一些。/boot/overlays 文件夹中的文件是用于加载设备树覆盖(Device Tree Overlays)的配置文件。设备树覆盖允许在运行时动态地修改设备树,以便支持不同的硬件配置或功能。

以下是其中一些常见的设备树覆盖文件及其作用:

  1. ads1015.dtbo: 支持 ADS1015 类模数转换器。
  2. ads1115.dtbo: 支持 ADS1115 类模数转换器。
  3. gpio-fan.dtbo: 支持连接到 GPIO 的风扇。
  4. i2c-gpio.dtbo: 提供了通过 GPIO 模拟 I2C 总线的功能。
  5. spi0-0cs.dtbo, spi0-1cs.dtbo, spi0-2cs.dtbo: 针对 SPI0 总线的不同配置,例如启用/禁用片选线。
  6. spi1-1cs.dtbo, spi1-2cs.dtbo, spi1-3cs.dtbo: 针对 SPI1 总线的不同配置。
  7. spi2-1cs.dtbo, spi2-2cs.dtbo, spi2-3cs.dtbo: 针对 SPI2 总线的不同配置。
  8. spi3-1cs.dtbo, spi3-2cs.dtbo, spi3-2cs-pi5.dtbo: 针对 SPI3 总线的不同配置,包括针对特定硬件(如 Pi 5)的配置。
  9. spi4-1cs.dtbo, spi4-2cs.dtbo: 针对 SPI4 总线的不同配置。
  10. spi5-1cs.dtbo, spi5-1cs-pi5.dtbo, spi5-2cs.dtbo, spi5-2cs-pi5.dtbo: 针对 SPI5 总线的不同配置,包括针对特定硬件(如 Pi 5)的配置。
  11. uart0.dtbo, uart0-pi5.dtbo, uart1.dtbo, uart1-pi5.dtbo, uart2.dtbo, uart2-pi5.dtbo, uart3.dtbo, uart3-pi5.dtbo, uart4.dtbo, uart4-pi5.dtbo, uart5.dtbo: 针对不同 UART(串口)接口的配置。
  12. w1-gpio.dtbo, w1-gpio-pullup.dtbo: 支持 1-Wire 总线的 GPIO 配置。
  13. imx*.dtbo是树莓派支持的CMOS传感器型号的设备树覆盖文件。

这些文件允许用户根据实际需要动态地加载或卸载硬件模块,从而使树莓派适应各种不同的硬件配置。加载设备树覆盖时,可以通过修改 /boot/config.txt 文件,添加一行类似于 dtoverlay=<overlay-name> 的配置来指定使用哪个覆盖文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

09、Python 字典入门 及 高级用法

目录 字典创建字典通过key访问value添加key-value对删除key-value对替换key-value对 判断是否包含指定keydict与列表字典的常用方法演示&#xff1a; 用字典格式化字符串 创建字典 操作字典key-value对 理解dict与list的关系 字典常用方法 使用字典格式化字符串 字典 字典用于…

Spark_SQL函数定义(定义UDF函数、使用窗口函数)

一、UDF函数定义 &#xff08;1&#xff09;函数定义 &#xff08;2&#xff09;Spark支持定义函数 &#xff08;3&#xff09;定义UDF函数 &#xff08;4&#xff09;定义返回Array类型的UDF &#xff08;5&#xff09;定义返回字典类型的UDF 二、窗口函数 &#xff08;1&…

用VScode做PPT:marp插件

文章目录 初步认识指令设置图像设置布局设置 初步认识 marp是支持Markdown格式的PPT神器&#xff0c;有了这个就可以敲代码写PPT了。更绝的是&#xff0c;marp提供了VScode插件&#xff0c;故而可以愉快地在VScode中写PPT了。 在VScode扩展商店中搜索marp&#xff0c;安装Mar…

双向电平电压转换器TXS0102DCTR应用电路设计

1、TXS0102简介 TXS0102DCTR是一个2位双向电压电平转换器&#xff0c;主要用途是与数据I/O&#xff08;例如I2C或1-wire&#xff09;上的开漏驱动器连接&#xff08;其中数据是双向的且无可用的控制信号&#xff09;&#xff0c;在混合电压系统之间建立数字开关兼容性。它使用…

Linux系统编程07

线程 为什么有了进程还需要线程 进程切换的时候会花费很大的代价 &#xff08;1&#xff09;上下文切换&#xff0c;CPU寄存器需要切换 &#xff08;2&#xff09;虚拟地址和物理地址的映射需要切换 进程间通信麻烦 线程是轻量级的进程 &#xff08;1&#xff09;线程是一个正…

【设计模式】第4节:创建型模式之“单例模式”

一、介绍 采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得其对象实例的方法。 不使用单例模式的UML类图&#xff1a; 使用单例模式的UML类图&#xff1a; 使用场景&#xff1a; 需要频繁创建或销毁的对象…

【密评】商用密码应用安全性评估从业人员考核题库(十二)

商用密码应用安全性评估从业人员考核题库&#xff08;十二&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 2751 多项选择题 GM/T 0051《 密码设备管理 对称密钥管理技术规范…

倾斜摄影三维模型根节点合并效率提升的技术方法分析

倾斜摄影三维模型根节点合并效率提升的技术方法分析 提高倾斜摄影三维模型根节点合并效率是倾斜摄影领域的重要挑战之一。快速而准确地处理大量数据和复杂的场景需要使用高效的技术方法。本文将探讨几种可以提高倾斜摄影三维模型根节点合并效率的技术方法。 首先&#xff0c;使…

可视化工具Datart踩(避)坑指南(7)——下载的极限

作为目前国内开源版本最好用的可视化工具之一&#xff0c;Datart无疑是低成本高效率可供二开的可视化神兵利器。当然&#xff0c;免费的必然要付出一些踩坑的代价。 本篇我们来讲一讲可视化工具Datart踩&#xff08;避&#xff09;坑指南&#xff08;7&#xff09;之下载的极限…

大语言模型在天猫AI导购助理项目的实践!

本文主要介绍了Prompt设计、大语言模型SFT和LLM在手机天猫AI导购助理项目应用。 ChatGPT基本原理 “会说话的AI”&#xff0c;“智能体” 简单概括成以下几个步骤&#xff1a; 预处理文本&#xff1a;ChatGPT的输入文本需要进行预处理。 输入编码&#xff1a;ChatGPT将经过预…

Ubuntu22.04(非虚拟机)安装教程(2023最新最详细)

目录 简介 一.下载Ubuntu Server镜像&#xff0c;官方地址下载即可 ​二.安装Ubuntu镜像 简介 Linux是一种自由和开放源代码的操作系统内核&#xff0c;被广泛应用于各种计算机系统中。它以稳定性、安全性和灵活性而闻名&#xff0c;并成为服务器、嵌入式设备和个人计算机等…

国产手机性能再次飞升,H公司落后三代,但仍然比不过苹果

国产手机将采用全新的芯片&#xff0c;性能将进一步提升&#xff0c;这是国产手机的又一个重大进步&#xff0c;这次不再挤牙膏&#xff0c;真正为消费者带来性能跃升的手机&#xff0c;让消费者刷视频更流畅&#xff0c;玩游戏也更畅快。 据了解国产手机即将采用的新款芯片骁龙…

EMT4J—— Java 版本迁移检测工具

最近因为工作需要研究了emt4j&#xff0c;这里写一篇文章记录一下。 非专业Java er&#xff0c;有不同意见欢迎评论区分享。 目录 EMT4J是什么&#xff1f; 如何使用&#xff1f; Command-line Java Agent 简单的源码分析 目录分析 规则解析 参考资料 EMT4J是什么&am…

nginx只允许英文名的文件下载,中文名就是找不到文件

本文主要向大家介绍了Linux运维知识之linux下nginx不支持中文URL路径的解决方案&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习Linux运维知识有所帮助。 1、确定你的系统是UTF编码 [rootlocalhost ~]# echo $LAGN en_US.UTF-8 2、nginx配置文件里默认编码…

python爬虫之正则表达式实战----爬取图片

文章目录 1. 图片爬取流程分析2. 爬取家常菜图片 1. 图片爬取流程分析 先获取网址&#xff0c;URL&#xff1a;https://www.xiachufang.com/category/40076/ 定位想要爬取的内容使用正则表达式爬取导入模块指定URLUA伪装&#xff08;模拟浏览器&#xff09;发起请求&#xff0…

【springcloud-config】配置中心客户端导入依赖spring-cloud-config-server后,maven一直爆红问题解决

问题描述 配置中心客户端导入了 spring-cloud-config-server 后&#xff0c;导入依赖爆红&#xff1b; 解决办法&#xff1a; 参考官网中文文档&#xff1a;spring-cloud -config 配置中心 中文文档 补充导入 spring-config-starter-config 配置即可 <!--springcloud-c…

Transformer英语-法语机器翻译实例

依照Transformer结构来实例化编码器&#xff0d;解码器模型。在这里&#xff0c;指定Transformer编码器和解码器都是2层&#xff0c;都使用4头注意力。为了进行序列到序列的学习&#xff0c;我们在英语-法语机器翻译数据集上训练Transformer模型&#xff0c;如图11.2所示。 da…

【设计模式】第5节:创建型模式之“简单工厂、工厂方法和抽象工厂模式”

一、简单工厂模式 ProductFactory是创建商品的工厂&#xff0c;商品Product可以实现Product接口中的一些功能。 当需要根据入参的不同生成多种不同的产品时&#xff0c;可以将生成不同产品的逻辑剥离出来&#xff0c;使用产品工厂创建不同的产品。 二、工厂方法 ConcreteFact…

知识点滴 - Email地址不区分大小写

电子邮件地址本身对字符大小写不敏感。这意味着实际的电子邮件地址&#xff0c;如 "exampleemail.com"&#xff0c;并不区分字母的大小写。无论你输入的是大写字母还是小写字母&#xff0c;它仍然会到达同一个电子邮件账户。例如&#xff0c;如果您的电子邮件地址是 …

信创生态丨九州未来与超聚变完成兼容性互认证

近日&#xff0c;九州未来与超聚变积极开展了兼容性适配工作&#xff0c;并完成产品兼容性互认证。双方兼容性测试基于Intel64、鲲鹏架构完成&#xff0c;测试结果显示&#xff1a;九州未来Animbus IaaS V8可基于超聚变FusionOS 23服务器操作系统安全稳定运行&#xff0c;产品相…