【实用工具教程专栏】GitHub Actions自动化工作流入门(基础篇)

news2026/4/1 15:16:39
引言在现代软件开发中持续集成与持续部署CI/CD已成为提升开发效率、保证代码质量的核心实践。GitHub Actions作为GitHub官方推出的自动化工作流平台以其原生集成、灵活配置、丰富生态等特点成为开发者构建自动化流水线的首选工具。本文面向零基础开发者系统讲解GitHub Actions的核心概念、文件结构、实战案例与最佳实践帮助你快速上手并构建第一个自动化测试流水线。无论你是学生、初级开发者还是希望将团队流程自动化的技术负责人本文都将提供清晰的路径指导。一、GitHub Actions核心概念在深入技术细节前我们先理解GitHub Actions的几个核心概念这些概念构成了整个自动化体系的基础。1.1 工作流Workflow工作流是GitHub Actions中最顶层的概念指代一次完整的自动化执行过程。每个工作流对应一个独立的YAML配置文件存储在仓库的.github/workflows/目录中。触发方式工作流可以通过多种事件触发如代码推送push、拉取请求pull_request、定时任务schedule等独立性每个工作流独立运行可以并行执行多个工作流配置驱动完全通过YAML文件定义执行逻辑无需额外服务器配置1.2 作业Job作业是工作流中的主要执行单元一个工作流可以包含一个或多个作业。默认情况下作业按顺序执行但也可以通过配置实现并行执行。运行环境每个作业在独立的虚拟环境中运行环境可以是GitHub托管的运行器Runner或自托管运行器依赖关系作业之间可以定义依赖关系确保执行顺序失败处理单个作业失败不会自动终止整个工作流可以通过配置控制后续行为1.3 步骤Step步骤是作业内的具体操作单元一个作业由多个步骤组成步骤按顺序执行。每个步骤可以是Shell命令直接执行操作系统命令Action调用使用预定义或自定义的Action复合步骤组合多个命令或Actions步骤之间共享文件系统前一个步骤的修改会影响后续步骤。1.4 运行器Runner运行器是执行工作流的服务器环境GitHub提供托管运行器也支持用户自建运行器。托管运行器GitHub提供的标准环境包括Ubuntu、Windows、macOS等操作系统自托管运行器用户在自有基础设施上部署的运行器适合有特殊环境需求或安全要求的场景并发限制根据仓库类型和订阅计划有相应的并发作业限制1.5 ActionAction是可重用的代码单元封装了特定功能可以在工作流中直接调用。GitHub Marketplace提供了数千个官方和社区开发的Actions覆盖了从代码检查到部署的完整链条。官方Action由GitHub维护如actions/checkout、actions/setup-python等社区Action开发者贡献的第三方Actions自定义Action用户可以为特定需求创建私有Action注Action是GitHub Actions生态的核心优势通过组合现有Action可以快速构建复杂工作流避免重复造轮子。二、工作流文件结构解析理解了核心概念后我们来看工作流的具体实现方式——YAML配置文件。所有GitHub Actions工作流都通过YAML文件定义存储在.github/workflows/目录中。2.1 目录结构规范GitHub Actions要求工作流文件遵循特定的目录结构项目根目录/ ├── .github/ │ ├── workflows/ │ │ ├── ci.yml # 持续集成工作流 │ │ ├── deploy.yml # 部署工作流 │ │ └── ... # 其他工作流文件 │ ├── ISSUE_TEMPLATE/ # Issue模板可选 │ └── PULL_REQUEST_TEMPLATE/ # PR模板可选 ├── src/ # 源代码目录 ├── tests/ # 测试目录 └── ... # 其他项目文件注.github/workflows/目录可以包含多个YAML文件每个文件对应一个独立工作流。GitHub会自动检测并执行所有有效的工作流文件。2.2 YAML文件基本结构一个典型的GitHub Actions工作流文件包含以下核心部分name:CI Pipeline# 工作流名称on:[push,pull_request]# 触发事件jobs:# 作业定义开始test:# 作业标识符runs-on:ubuntu-latest# 运行环境steps:# 步骤定义开始-name:Checkout code# 步骤名称uses:actions/checkoutv4# 使用的Action-name:Setup Pythonuses:actions/setup-pythonv5with:python-version:3.10# 更多步骤...下面我们逐一解析每个关键字段。2.2.1name工作流名称name字段定义工作流的显示名称会在GitHub仓库的Actions标签页中展示。名称应简洁描述工作流用途。name:Python CI Pipeline2.2.2on触发事件on字段定义触发工作流执行的事件支持多种事件类型和细粒度配置。简单语法多个事件on:[push,pull_request]详细语法分支/路径过滤on:push:branches:[main,develop]paths-ignore:[**/*.md,docs/**]pull_request:branches:[main]schedule:-cron:0 2 * * *# 每天凌晨2点执行常见触发事件包括push代码推送到指定分支pull_request创建或更新拉取请求workflow_dispatch手动触发schedule定时执行release发布新版本注YAML缩进必须使用空格不能使用Tab。每级缩进通常为2个空格这是GitHub Actions配置文件的常见约定。2.2.3jobs作业定义jobs是工作流的核心定义了具体的执行任务。每个作业需要唯一标识符如test、build、deploy。基本作业结构jobs:test:# 作业标识符runs-on:ubuntu-latest# 运行环境steps:# 步骤列表开始# 步骤定义...作业依赖顺序执行jobs:test:runs-on:ubuntu-lateststeps:[...]deploy:runs-on:ubuntu-latestneeds:test# 依赖test作业if:success()# 仅在test成功时执行steps:[...]2.2.4runs-on运行环境runs-on指定作业运行的虚拟环境GitHub提供多种托管运行器runs-on:ubuntu-latest# Ubuntu最新版推荐runs-on:ubuntu-22.04# Ubuntu 22.04 LTSruns-on:windows-latest# Windows最新版runs-on:macos-latest# macOS最新版注不同运行器的计费标准不同其中Ubuntu运行器性价比最高适合大多数CI/CD场景。2.2.5steps步骤序列steps是作业的具体操作序列每个步骤可以执行命令或调用Action。步骤类型Shell命令步骤-name:List filesrun:ls-laAction调用步骤-name:Checkout repositoryuses:actions/checkoutv4带参数的Action调用-name:Setup Pythonuses:actions/setup-pythonv5with:python-version:3.10cache:pip步骤上下文每个步骤可以访问工作流上下文信息如github.sha提交哈希、github.ref分支引用等。2.3 工作流执行流程为了更好地理解上述概念如何协同工作我们来看一个典型的工作流执行流程如图所示事件触发开发者推送代码或创建PR触发工作流作业准备GitHub分配运行器准备执行环境步骤执行按顺序执行每个步骤结果反馈执行结果反馈到GitHub界面这个流程完全自动化无需人工干预。三、实战案例自动化测试流水线理论知识需要实践检验。现在我们构建一个完整的Python项目自动化测试流水线覆盖代码检查、测试运行、结果报告等核心环节。3.1 项目结构与需求假设我们有一个Python项目结构如下python-project/ ├── .github/workflows/ci.yml # 我们将创建的工作流文件 ├── src/ # 源代码 │ ├── __init__.py │ └── calculator.py ├── tests/ # 测试代码 │ ├── __init__.py │ └── test_calculator.py ├── requirements.txt # 项目依赖 ├── requirements-dev.txt # 开发依赖含测试框架 └── README.md项目需求代码推送到main或develop分支时自动运行测试PR创建或更新时运行测试支持Python 3.8、3.9、3.10三个版本自动安装依赖利用缓存加速测试失败时提供详细日志3.2 完整工作流配置创建.github/workflows/ci.yml文件内容如下name:Python CI Pipelineon:push:branches:[main,develop]paths-ignore:[**/*.md,docs/**]pull_request:branches:[main,develop]jobs:test:runs-on:ubuntu-lateststrategy:matrix:python-version:[3.8,3.9,3.10]steps:-name:Checkout codeuses:actions/checkoutv4-name:Set up Python ${{matrix.python-version}}uses:actions/setup-pythonv5with:python-version:${{matrix.python-version}}cache:pip-name:Install dependenciesrun:|python -m pip install --upgrade pip pip install -r requirements.txt pip install -r requirements-dev.txt-name:Lint with flake8run:|pip install flake8 flake8 src --count --selectE9,F63,F7,F82 --show-source --statistics flake8 src --count --exit-zero --max-complexity10 --max-line-length127 --statistics-name:Test with pytestrun:|pytest tests/ -v --covsrc --cov-reportxml-name:Upload coverage reportsuses:codecov/codecov-actionv4with:file:./coverage.xmlfail_ci_if_error:false让我们逐段解析这个配置。3.3 配置详解3.3.1 触发条件on:push:branches:[main,develop]paths-ignore:[**/*.md,docs/**]pull_request:branches:[main,develop]推送触发仅当代码推送到main或develop分支时触发路径忽略忽略Markdown文件和docs目录的更改避免无关修改触发流水线PR触发针对main和develop分支的PR都会触发测试注paths-ignore使用glob模式匹配**表示任意层级目录。合理使用路径过滤可以减少不必要的CI执行节省资源。3.3.2 矩阵策略strategy:matrix:python-version:[3.8,3.9,3.10]矩阵策略允许并行运行多个作业实例每个实例使用不同的参数。这里我们创建三个并行的测试作业分别针对Python 3.8、3.9、3.10版本。并行执行三个Python版本同时测试加快反馈速度环境隔离每个版本在独立环境中运行互不影响灵活扩展添加新版本只需扩展数组即可3.3.3 核心步骤解析步骤1代码检出-name:Checkout codeuses:actions/checkoutv4使用官方checkoutAction将仓库代码下载到运行器工作目录。步骤2Python环境设置-name:Set up Python ${{matrix.python-version}}uses:actions/setup-pythonv5with:python-version:${{matrix.python-version}}cache:pip根据矩阵变量动态选择Python版本启用pip缓存加速后续依赖安装步骤3依赖安装-name:Install dependenciesrun:|python -m pip install --upgrade pip pip install -r requirements.txt pip install -r requirements-dev.txt使用管道符|定义多行命令依次升级pip到最新版安装项目运行时依赖安装开发依赖含测试框架步骤4代码检查-name:Lint with flake8run:|pip install flake8 flake8 src --count --selectE9,F63,F7,F82 --show-source --statistics flake8 src --count --exit-zero --max-complexity10 --max-line-length127 --statistics安装flake8代码检查工具第一行检查致命错误E9,F63,F7,F82第二行进行完整代码风格检查但非致命--exit-zero步骤5运行测试-name:Test with pytestrun:|pytest tests/ -v --covsrc --cov-reportxml使用pytest运行测试-v详细输出--covsrc计算src目录的代码覆盖率--cov-reportxml生成XML格式的覆盖率报告步骤6上传覆盖率-name:Upload coverage reportsuses:codecov/codecov-actionv4with:file:./coverage.xmlfail_ci_if_error:false将覆盖率报告上传到Codecov服务即使上传失败也不标记CI为失败。3.4 工作流文件目录结构为了更直观地理解工作流文件的存储位置我们来看一下完整的目录结构这个结构展示了从项目根目录到具体工作流文件的层级关系帮助你准确定位配置文件位置。3.5 执行效果与输出当代码推送或PR创建时GitHub Actions会自动执行配置的工作流。你可以在仓库的Actions标签页查看作业列表显示所有作业及其状态成功/失败/进行中步骤日志点击作业可查看每个步骤的详细输出持续时间显示每个作业的执行时间工作流文件显示使用的配置文件内容测试失败时pytest会输出详细的错误信息帮助你快速定位问题。注首次执行工作流可能需要较长时间因为需要下载运行器镜像和安装依赖。后续执行会利用缓存显著加速。四、常用操作与最佳实践掌握了基础配置后我们来看一些常用操作和最佳实践帮助你构建更高效、可靠的工作流。4.1 常用Actions介绍GitHub Marketplace提供了丰富的Actions以下是一些最常用的官方Action4.1.1actions/checkout检出仓库代码到运行器工作目录几乎所有工作流都需要的第一步。-uses:actions/checkoutv4with:fetch-depth:0# 获取完整历史用于版本对比submodules:recursive# 递归检出子模块4.1.2actions/setup-python设置Python环境支持多个版本和缓存。-uses:actions/setup-pythonv5with:python-version:3.10cache:pip# 启用pip缓存architecture:x64# 指定架构4.1.3actions/cache缓存依赖和构建产物大幅加速后续执行。-uses:actions/cachev4with:path:|~/.cache/pip node_moduleskey:${{runner.os}}-deps-${{hashFiles(**/requirements*.txt)}}缓存策略选择依赖缓存基于依赖文件哈希生成key依赖变更时缓存失效时间缓存为临时文件设置较短的有效期分层缓存将大型缓存分解为多个部分4.1.4actions/upload-artifact与actions/download-artifact在作业间传递文件适合构建产物传递。# 上传构建产物-uses:actions/upload-artifactv4with:name:dist-packagepath:dist/# 后续作业下载产物-uses:actions/download-artifactv4with:name:dist-package4.2 环境变量与机密管理4.2.1 环境变量设置工作流中可以定义环境变量作用域可以是整个工作流、作业或步骤。env:CI:truePYTHONPATH:./srcjobs:test:env:TEST_ENV:test-valuesteps:-name:Show envrun:echo $TEST_ENV4.2.2 机密Secrets管理敏感信息如API密钥、密码等应存储在GitHub Secrets中通过secrets上下文访问。steps:-name:Deploy to productionrun:./deploy.shenv:API_KEY:${{secrets.PRODUCTION_API_KEY}}最佳实践永远不要在代码中硬编码敏感信息为不同环境开发、测试、生产设置不同的secrets定期轮换机密信息4.3 工作流优化技巧4.3.1 利用缓存加速缓存是提升CI/CD效率的最有效手段。对于Python项目-uses:actions/cachev4with:path:~/.cache/pipkey:${{runner.os}}-pip-${{hashFiles(**/requirements*.txt)}}restore-keys:|${{ runner.os }}-pip-4.3.2 作业依赖与条件执行通过needs和if实现复杂的执行逻辑jobs:lint:runs-on:ubuntu-lateststeps:[...]test:runs-on:ubuntu-latestneeds:lint# 依赖lint作业if:always()# 无论lint成功与否都执行deploy:runs-on:ubuntu-latestneeds:testif:github.ref refs/heads/mainsuccess()# 仅main分支且测试成功4.3.3 矩阵策略的灵活应用矩阵不仅可用于版本测试还可用于多平台、多配置测试strategy:matrix:os:[ubuntu-latest,windows-latest,macos-latest]python-version:[3.8,3.9,3.10]exclude:# 排除特定组合-os:windows-latestpython-version:3.84.4 错误排查指南工作流执行失败时可按以下步骤排查检查触发条件确认事件是否符合on配置查看作业日志GitHub提供详细的步骤输出错误信息通常有明确提示验证环境配置确认runs-on和依赖版本正确本地复现问题在相似环境中手动执行失败步骤简化配置调试创建最小化工作流文件逐步添加步骤定位问题常见错误YAML语法错误缩进、冒号等格式问题权限不足访问受保护资源或分支资源限制超出运行时间或存储空间网络问题依赖下载失败或API调用超时4.5 安全最佳实践最小权限原则使用permissions字段限制工作流权限permissions:contents:readpackages:write依赖安全扫描集成Dependabot或Snyk进行漏洞检查代码审查禁止直接推送到受保护分支审计日志定期审查工作流执行历史五、进阶方向与资源推荐掌握了GitHub Actions基础后你可以向以下方向深入探索构建更强大的自动化体系。5.1 进阶应用场景5.1.1 多环境部署流水线构建开发→测试→预发布→生产的完整部署流水线实现自动化发布。jobs:deploy-dev:environment:developmentsteps:[...]deploy-staging:environment:stagingneeds:deploy-devsteps:[...]deploy-prod:environment:productionneeds:deploy-stagingif:github.ref refs/heads/mainsteps:[...]5.1.2 Docker镜像构建与推送集成Docker构建自动化生成并推送镜像到容器仓库。-name:Build and push Docker imageuses:docker/build-push-actionv5with:push:truetags:user/app:${{github.sha}}5.1.3 自动化文档生成代码变更后自动生成API文档、更新项目网站。-name:Generate documentationrun:|pip install pdoc pdoc src --output-dir docs/-name:Deploy to GitHub Pagesuses:peaceiris/actions-gh-pagesv35.1.4 多仓库协同工作流实现跨仓库的自动化协作如主仓库变更自动触发子仓库更新。-name:Trigger downstream workflowuses:peter-evans/repository-dispatchv2with:token:${{secrets.PAT}}repository:owner/repoevent-type:update-deps5.2 性能优化策略作业并行化利用矩阵策略和依赖关系优化执行时间依赖缓存合理设置缓存key和恢复策略作业超时设置避免长时间占用运行器资源自托管运行器对大型项目或特殊需求考虑自建运行器5.3 学习资源推荐5.3.1 官方文档GitHub Actions 文档工作流语法参考预定义环境变量5.3.2 社区资源GitHub Marketplace探索现成的ActionsAwesome Actions精选Actions列表GitHub Actions官方示例5.3.3 实战课程GitHub Actions官方学习路径CI/CD with GitHub Actions (Udemy)Automating Workflows with GitHub Actions (Coursera)5.4 持续学习建议从简单开始先构建基础测试流水线逐步添加复杂功能参考优秀项目学习开源项目的工作流配置关注更新GitHub Actions功能持续演进关注官方公告参与社区在GitHub Discussions和Stack Overflow交流经验总结本文系统介绍了GitHub Actions的核心概念、配置方法、实战案例与最佳实践。通过构建Python项目自动化测试流水线我们展示了如何配置工作流文件定义触发事件、作业、步骤利用矩阵策略并行测试多个Python版本集成常用Actions代码检查、测试运行、结果报告实践优化技巧缓存加速、条件执行、错误排查GitHub Actions不仅是一个CI/CD工具更是一个完整的自动化平台。掌握它你就能为个人项目和团队工作流注入自动化力量提升开发效率与代码质量。下一步行动在你的项目中创建.github/workflows/ci.yml文件根据项目技术栈调整配置推送代码触发第一次工作流执行根据执行结果优化配置延伸阅读GitHub Actions 安全加固指南大型项目的GitHub Actions优化实践GitHub Actions与Kubernetes集成

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…