深度学习常见框架:TensorFlow 与 PyTorch 简介与对比
🐇明明跟你说过:个人主页
🏅个人专栏:《深度探秘:AI界的007》 🏅
🔖行路有良友,便是天堂🔖
目录
一、引言
1、为什么需要深度学习框架?
2、框架的发展背景与主流选择
二、TensorFlow 简介
1、背景与维护团队(Google)
2、特点与核心理念
3、主要组件
4、应用场景与代表项目
三、PyTorch 简介
1、背景与维护团队(Meta / Facebook)
2、特点与核心理念
3、应用场景与代表项目
四、TensorFlow vs PyTorch 全面对比
1、两大巨头简介
2、核心机制对比
3、模型构建与训练
4、生态与部署能力
5、社区与使用趋势
6、如何选择?
一、引言
1、为什么需要深度学习框架?
🎯 1. 简化代码开发:省时省力
手写一个神经网络,从前向传播、反向传播、梯度计算到参数更新,全都自己写?太难太耗时了!
深度学习框架像是帮你搭好骨架的积木:你只需要组合层、设定参数、写 loss 函数,就能快速搭建神经网络。
比如:
import torch.nn as nn
model = nn.Sequential(nn.Linear(784, 256),nn.ReLU(),nn.Linear(256, 10)
)
🔧 这几行代码,在底层是几百行数学逻辑!
🔁 2. 自动微分机制:再也不用手写梯度了
训练模型的关键是“梯度下降”,而计算梯度非常复杂。
深度学习框架像 PyTorch / TensorFlow 会自动追踪每一步计算过程,然后自动求梯度、更新参数。
🧠 就像有人帮你算好导数,你只要负责喂数据、跑模型!
⚙️ 3. GPU 加速:深度学习快马加鞭的秘诀
深度学习训练通常需要海量数据、成千上万的矩阵运算。
框架帮你:
-
自动把数据和计算放到 GPU
-
调用高效底层库(如 CUDA、cuDNN)
-
大大提升训练速度(比 CPU 快几十倍)
📚 总结一句话:
深度学习框架是 AI 工程师的“瑞士军刀” —— 降低门槛、提高效率,让你专注于模型设计和创新,而不是重复造轮子。
2、框架的发展背景与主流选择
🎞️发展背景:为什么会出现深度学习框架?
🧠 1. 人工智能爆发前夕(2010 年前后)
-
深度学习早期(如 BP 网络、LeNet)都是纯手写数学代码(C、C++、Matlab 等),开发效率极低,容易出错。
-
神经网络模型复杂度逐步上升,手动写梯度太痛苦,训练过程也很慢。
🚀 2. 2012 年 ImageNet 大爆炸 💥
-
AlexNet 横空出世,引发深度学习浪潮。
-
研究者急需一种工具,能快速搭建复杂网络 + 利用 GPU 训练。
-
深度学习框架就这样应运而生!
🏗️ 主流框架的演进过程
时间 | 框架 | 特点 |
---|---|---|
2014 | Caffe | 静态图,配置式定义网络,图像处理强,但灵活性差 |
2015 | TensorFlow | Google 出品,强大工业级,静态计算图,后续加入动态图 |
2016 | Keras | 简洁易用的高层 API,适合入门,后被纳入 TensorFlow |
2016 | PyTorch | Facebook 出品,动态图灵活易调试,迅速成为主流 |
2019 | JAX | Google 推出,强调函数式编程,适合科研和加速 |
2020+ | MindSpore、PaddlePaddle、OneFlow 等国产框架 | 更加适配国产芯片、模型优化方向 |
🔍 当前主流框架对比(截至 2025)
框架 | 适用人群 | 优点 | 缺点 |
---|---|---|---|
PyTorch | 学术 + 工程 | 动态图、易调试、社区活跃、生态丰富 | 初期部署稍复杂,现已大幅改善 |
TensorFlow | 工程 + 生产环境 | 工业级部署强、性能好、工具链完整 | 静态图难调试、入门复杂 |
Keras(TF2.x 集成) | 初学者 | API 简洁、上手快 | 灵活性较低,底层封装较深 |
JAX | 科研前沿人员 | 自动微分、并行计算强、适合实验 | 生态不如 PyTorch 丰富 |
PaddlePaddle(飞桨) | 国内开发者 | 中文文档友好、政府/高校支持 | 社区影响力较弱 |
二、TensorFlow 简介
TensorFlow 是由 Google 开发和维护的一个开源机器学习和深度学习框架,主要用于构建、训练和部署各种神经网络模型。
它不仅能用于研究和实验,还特别适合大规模生产环境部署,被广泛应用于图像识别、语音识别、自然语言处理、推荐系统等领域。
1、背景与维护团队(Google)
🧬 背景故事
📆 出生时间:2015 年
TensorFlow 的前身叫做 DistBelief,是 Google 内部使用的一个分布式深度学习系统,主要服务于像 Google Search、Gmail、Google Photos 这样的核心产品。
但由于 DistBelief 的封闭性、难以扩展,Google 团队决定重新设计并开源一个更通用、灵活、高效的框架,这就是:
🔥 TensorFlow 1.0 —— 于 2015 年底正式发布。
🔁 大版本进化:
-
TensorFlow 1.x:基于静态图,效率高但调试不便。
-
TensorFlow 2.x(2019):全面升级,支持动态图(eager execution),默认整合 Keras,变得更易用、更 Pythonic。
🏢 维护团队:Google Brain & Google AI
TensorFlow 由 Google Brain 团队主导开发与维护,核心团队成员包括:
-
Jeff Dean(Google AI 大佬,深度学习布道者)
-
Rajat Monga(TensorFlow 联合创始人)
-
Martin Wicke(TensorFlow 2.0 关键推动者)
此外,Google Cloud AI 也深度参与了 TF 的部署和优化,使其成为 Google 云平台上的主要 AI 工具。
💡 Google 自己也在用 TensorFlow
TensorFlow 并不是只给外部用户用,Google 自家的产品也是它的“铁粉”:
产品 | 用途 |
---|---|
Google Translate | 神经机器翻译模型(NMT) |
Google Photos | 图像分类、人脸识别 |
Gmail | 智能回复、垃圾邮件识别 |
Google Ads | 广告推荐与投放优化 |
YouTube | 视频推荐系统 |
2、特点与核心理念
🎯 TensorFlow 的核心理念
TensorFlow 的名字就蕴含了它的哲学:
💡 Tensor + Flow(张量流动):
将数据抽象为多维数组(Tensor),模型的执行被表示为一张计算图(Graph)上的“数据流动”(Flow)。
这使得整个系统既可用于本地调试,也便于分布式部署和硬件加速,做到灵活而强大。
✨ TensorFlow 的主要特点
🔁 1. 动态图 + 静态图并存
-
TF 1.x:静态计算图(构建图 → 执行图)
-
优点:高性能、可部署、跨平台
-
缺点:不直观、调试困难
-
-
TF 2.x:默认使用动态图(Eager Execution)
-
代码更符合 Python 习惯,调试更方便
-
支持动态图与静态图互转(@tf.function 装饰器)
-
✅ 灵活与性能兼顾,是 TensorFlow 的进化关键。
📦 2. 一站式生态系统超强
TensorFlow 不只是一个框架,而是一个完整的 AI 工程平台,从开发到部署全覆盖:
模块名称 | 用途 |
---|---|
Keras | 高层 API,快速构建与训练模型 |
TensorBoard | 训练过程可视化 |
TF Lite | 模型轻量化,部署到手机/IoT |
TF Serving | 模型线上部署,做成 API |
TF Hub | 使用社区共享的预训练模型 |
TFX | 构建工业级机器学习流水线 |
🧠 3. 高度兼容 Keras,适合初学者
TensorFlow 2.x 完全整合了 Keras,你可以像搭积木一样搭网络结构:
from tensorflow import keras
model = keras.Sequential([keras.layers.Dense(128, activation='relu'),keras.layers.Dense(10, activation='softmax')
])
-
API 简洁、上手快
-
配合 TensorBoard 还能实时可视化训练过程
🚀 非常适合教学、入门和实验!
🚀 4. 多平台、多硬件支持
TensorFlow 天生为大规模计算而生,支持:
-
✅ CPU、GPU、TPU(谷歌自研芯片)
-
✅ Windows、Linux、macOS、Android、iOS
-
✅ 云平台(Google Cloud、AWS、Azure 等)
而且还有 JAX / XLA 编译器,进一步提升执行效率。
🌐 5. 广泛应用于生产环境
TensorFlow 是 Google 内部大量产品的支撑底座,稳定性与可靠性超强。
此外,它也被许多大公司采纳:
-
Twitter:文本分类
-
Airbnb:价格预测
-
NASA:卫星图像分析
-
京东、字节跳动、阿里巴巴 等国内企业
✅ 总结一句话:
TensorFlow 的核心理念是:用统一的张量计算框架支持端到端 AI 生命周期,从模型开发 → 训练 → 可视化 → 优化 → 部署。
3、主要组件
1️⃣ Keras:高级神经网络 API 💡
🔧 功能:快速、易用地构建神经网络
✅ 特点:模块化、可拓展、可调试
TensorFlow 2.x 中,Keras 被集成为官方高级接口(tf.keras
):
from tensorflow import keras
model = keras.Sequential([keras.layers.Dense(128, activation='relu'),keras.layers.Dense(10, activation='softmax')
])
📌 常用于:
-
初学者建模
-
快速原型开发
-
高级用户也可自定义模型、训练流程(使用 Functional / Subclass API)
2️⃣ 高阶 API:Model Fit / Compile / Evaluate 🤖
Keras 的 API 模型采用类似 sklearn 的风格,方便易懂:
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(train_x, train_y, epochs=10, validation_data=(val_x, val_y))
✅ 不管你是小白还是老手,都能快速训练模型,还支持回调函数、早停机制、学习率调度等高级功能。
3️⃣ TensorBoard:训练过程可视化 📊
🔍 用于实时监控训练状态、模型结构、损失曲线等
只需几行代码即可集成:
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir='./logs')
model.fit(..., callbacks=[tensorboard_callback])
然后用命令打开:
tensorboard --logdir=./logs
🎯 非常适合调试、分享实验过程,团队协作更高效。
4️⃣ TF Serving:在线部署模型 🚀
📦 TensorFlow Serving 是专为生产环境部署模型设计的系统。
✅ 特点:
-
快速加载 SavedModel 格式
-
支持 REST API / gRPC 接口调用
-
自动版本管理
📦 简单流程:
tensorflow_model_server --rest_api_port=8501 --model_name=my_model --model_base_path=/models/my_model
🌐 应用场景:
-
构建在线问答系统
-
模型微服务化部署
-
云端自动扩容
4、应用场景与代表项目
🧠 1. 图像识别 & 计算机视觉
应用方向:
-
人脸识别 👤
-
医学图像诊断 🩻
-
工业缺陷检测 🏭
-
图像风格迁移 🎨
代表案例:
-
Google Photos 使用 TensorFlow 做照片分类与人脸聚类
-
农作物病害识别系统:通过图像识别检测作物健康状态
-
NASA 使用 TensorFlow 分析卫星图像识别地表变化
🗣️ 2. 自然语言处理(NLP)
应用方向:
-
机器翻译 🌍
-
文本情感分析 😄😠
-
问答系统 🤖
-
自动摘要 📝
代表案例:
-
Google Translate:TensorFlow 支撑其神经网络翻译系统
-
BERT 模型训练与优化:在 TensorFlow 上开源并广泛使用
-
智能客服机器人:银行、保险等行业的问答系统
🚗 3. 自动驾驶 & 智能交通
应用方向:
-
路况识别 🚦
-
目标检测 🚗
-
路线规划 🗺️
代表案例:
-
Waymo(谷歌自动驾驶):使用 TensorFlow 处理感知与控制任务
-
交通摄像头分析系统:识别车辆类型、车牌、违法行为等
三、PyTorch 简介
PyTorch 是一个基于 Python 的深度学习框架,主打灵活性、易用性和动态图计算。
📌 它的 slogan 就很直接:
“An open source machine learning framework that accelerates the path from research prototyping to production deployment.”
通俗来说:既适合搞科研,又能上生产。
1、背景与维护团队(Meta / Facebook)
🧠 背景故事
🏢 由谁开发?
PyTorch 最初由 Meta AI(原 Facebook AI Research,简称 FAIR) 在 2016 年发布。
-
目的:打造一个更灵活好用的替代品,特别是比当时流行的 TensorFlow 更适合科研人员用。
-
主打亮点:动态图机制(Dynamic Computation Graph),也叫 Eager Execution。
📆 演变过程
时间 | 发展节点 |
---|---|
2016 | PyTorch 发布,第一个稳定版本问世 |
2017 | 广泛被学术界采纳,成为研究新模型的首选 |
2019 | 支持生产部署(JIT 编译、TorchScript 等) |
2020 | 成为 Facebook、微软等公司生产环境主力框架 |
2022 | PyTorch 正式迁移至 Linux 基金会托管(PyTorch Foundation),但核心团队仍由 Meta 主导 |
2、特点与核心理念
1️⃣ 动态计算图(Dynamic Computation Graph)
🧠 核心理念:代码即模型,模型即代码
-
每次前向传播都会实时构建计算图(不像 TensorFlow 1.x 需要提前“搭好图”再运行)
-
好处是:
-
✅ 更易调试(直接用 Python 的
print()
或调试器) -
✅ 灵活实现复杂模型结构(如递归神经网络、条件分支)
-
🗣 通俗点讲:写 PyTorch 就像写普通 Python 函数一样流畅自然!
2️⃣ 以 Python 为中心,贴近科研使用习惯
🐍 全部用 Python 编写,API 简洁直观,符合科研人员的思维方式:
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = x**2
y.backward() # 自动求导,计算梯度
print(x.grad)
💬 很多研究者喜欢 PyTorch,因为它“像 NumPy + 自动求导”,简单直接、不绕弯子。
3️⃣ 强大的自动求导机制(Autograd)
🔁 PyTorch 内置 自动微分引擎:
-
只要你在张量上设置了
requires_grad=True
,系统就能自动追踪梯度传播路径并反向传播。 -
自动处理链式法则、Jacobian、Hessian 等高阶导数计算。
✨ 这让训练神经网络变得几乎“无感”操作。
🧭 总结一张图:PyTorch 的核心理念
核心理念 | 描述 |
---|---|
动态图机制 | 灵活、高效,像 Python 一样写神经网络 |
简洁 API | 像 NumPy 一样的张量操作 |
自动求导 | 内置自动微分系统 |
模块化设计 | 模型搭建清晰,复用性强 |
无缝部署 | 从研究原型到工业部署都能搞定 |
3、应用场景与代表项目
🧠 1. 自然语言处理(NLP)
-
情感分析、文本分类、命名实体识别、翻译、问答系统、对话机器人…
-
🔧 常用库:🤗 Hugging Face Transformers(基于 PyTorch)
✅ 代表应用:
-
ChatGPT(早期 OpenAI 训练时用过 PyTorch)
-
微软小冰、讯飞星火等中文大模型
👁️🗨️ 2. 计算机视觉(CV)
-
图像识别、物体检测、图像分割、风格迁移、图像生成…
-
🔧 常用库:
torchvision
、YOLO 系列等
✅ 代表项目:
-
Facebook 的图像内容审查系统
-
Tesla 自动驾驶图像处理模块
-
Stable Diffusion(图像生成模型)
🎮 3. 强化学习(RL)
-
机器人控制、游戏 AI、自动交易系统…
-
🔧 常用库:
torchrl
、OpenAI Gym + PyTorch
✅ 代表项目:
-
Meta AI 在《星际争霸》和《Minecraft》上的 RL 研究
-
DeepMind 模型在 Atari 游戏中的应用(PyTorch 重写版)
🌟 PyTorch 代表项目合集
项目 | 简介 | 所属方向 |
---|---|---|
Hugging Face Transformers | 大模型(BERT, GPT等)开源库,基于 PyTorch | NLP |
YOLOv5 | 实时目标检测模型,极高性能 | CV |
Stable Diffusion | 文本生成图像的火爆模型 | AIGC |
TorchRL / RLlib | 强化学习框架 | 强化学习 |
PyG (PyTorch Geometric) | 图神经网络工具集 | GNN |
Segment Anything (SAM) | 图像分割大模型,Meta 出品 | CV |
FastAI | 高阶封装库,便于入门和原型开发 | 通用 |
四、TensorFlow vs PyTorch 全面对比
1、两大巨头简介
🎯 总览:两大巨头简介
框架 | TensorFlow 🟦 | PyTorch 🔶 |
---|---|---|
出品方 | Google / Google Brain | Meta(Facebook AI) |
初始发布时间 | 2015 年 | 2016 年 |
编程语言 | 多语言支持(Python/C++/JS) | 以 Python 为主 |
框架定位 | 工程部署 + 跨平台 | 科研友好 + 工程渐强 |
主流用途 | 生产部署、大型系统 | 快速原型、模型开发 |
2、核心机制对比
⚙️ 核心机制对比
对比维度 | TensorFlow 🟦 | PyTorch 🔶 |
---|---|---|
计算图类型 | 静态计算图(TensorFlow 1.x) 动态图支持(TF 2.x 引入 Eager Execution ) | 动态计算图为主(定义即执行) |
调试方式 | 靠日志 / TensorBoard 等 | 直接用 Python 调试工具,友好易上手 |
可读性 | 初学者较陡峭,结构较重 | Pythonic 风格,代码简洁清晰 |
开发体验 | 工程化强,适合大团队协作 | 快速迭代,适合个人/研究开发 |
API 风格 | 面向图的声明式 API + Keras 高阶封装 | 面向对象,Module、Tensor 为核心 |
3、模型构建与训练
🧠 模型构建与训练
对比维度 | TensorFlow 🟦 | PyTorch 🔶 |
---|---|---|
构建模型方式 | Keras Sequential / Functional / Subclass | nn.Module 子类定义模型 |
自动求导 | tf.GradientTape | autograd 内置自动求导 |
训练方式 | model.fit() (Keras) or 手写训练循环 | 多为手写训练循环,自由度高 |
数据加载工具 | tf.data.Dataset | torch.utils.data.DataLoader |
4、生态与部署能力
📦 生态与部署能力
对比维度 | TensorFlow 🟦 | PyTorch 🔶 |
---|---|---|
部署工具链 | TensorFlow Serving、TFLite、TF.js、Edge TPU | TorchServe、ONNX、TorchScript |
跨平台 | 支持移动端、浏览器、小设备、云原生部署 | 部署支持较晚,但已逐步完善 |
可视化支持 | TensorBoard 🧠 | 支持 TensorBoard,但原生支持较弱 |
模型导出格式 | SavedModel、HDF5 | TorchScript、ONNX |
第三方集成 | Hugging Face / KerasNLP / TF Agents | Hugging Face / torchvision / torchaudio |
5、社区与使用趋势
🌍 社区与使用趋势
对比维度 | TensorFlow 🟦 | PyTorch 🔶 |
---|---|---|
社区支持 | Google 提供强力支持,文档全面 | 社区活跃,开源项目丰富 |
学术界使用率 | 较少(因早期静态图开发不便) | 高(论文和开源实现多用 PyTorch) |
工业界使用率 | 高,Google 内部几乎全栈 TensorFlow | 上升迅速,Meta / 微软等用 PyTorch |
教学推荐度 | Keras 提供入门好材料 | PyTorch 更适合教学与实战体验 |
6、如何选择?
✅ 总结:如何选择?
你的目标是... | 推荐框架 |
---|---|
快速原型 / 学术研究 / 自由调试 | ✅ PyTorch |
商业部署 / 移动端部署 / 云集成 | ✅ TensorFlow |
简洁入门 / 小项目教学 | ✅ PyTorch(或 Keras) |
跨语言调用 / 高性能生产部署 | ✅ TensorFlow |
📌 一句话总结:
PyTorch 更灵活好用,适合搞研究与快速迭代;TensorFlow 工程化更强,适合部署到各种平台。
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!
相关文章:
深度学习常见框架:TensorFlow 与 PyTorch 简介与对比
🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、为什么需要深度学习框架? 2、框架的发展背…...
iOS 类与对象底层原理
iOS 类与对象底层原理 文章目录 iOS 类与对象底层原理探索对象本质objc_setProperty 源码cls与类的关联原理联合体isa的类型isa_t 原理探索initIsa方法通过setClass方法中的shiftcls来验证绑定的一个流程通过 isa & ISA_MSAK通过object_getClass通过位运算 类&类的结构…...
Babel、core-js、Loader之间的关系和作用全解析
在现代前端开发中,Babel、polyfill(如 core-js)和 Loader 是非常常见又容易混淆的几个概念。为了彻底搞明白它们的作用、关系和使用方法,下面一篇文章详细梳理。 一、Babel的作用 Babel 是一个 JavaScript 的编译器,主…...
总线位宽不变,有效数据位宽变化的缓存方案
总线位宽不变,有效数据位宽变化的缓存方案 譬如总线位宽为64bit,但是有时候只有高32bit有效,有时只有低32bit有效,有时64bit都有效。总线上收到的数据要先缓存到FIFO中,那么这个FIFO的宽度和深度如何设置呢࿱…...
若依脱敏功能升级:接口返回想脱就脱,想不脱就不脱(实现灵活可控制的数据脱敏)
若依原生框架中的脱敏功能不够灵活(默认超级管理员不脱敏,其他则脱敏)。 有时候,我们有些接口想要脱敏,但是有些接口又不想脱敏。(例如列表查询的时候脱敏。修改的时候,不想数据脱敏࿰…...
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
问题描述 在Azure Redis服务中,如何实现只允许Azure App Service访问呢? 问题解答 Azure Redis 开启 防火墙的功能,并在防火墙中添加上App Service的出口IP地址即可。两步即可实现此目的! 1)查询 App Service 的出口IP…...
如何解决无训练数据问题:一种更为智能化的解决方案
手动标注数据真的很费时间,而且买数据集又贵得要命,还不一定能完全符合你的需求。但这里有个令人兴奋的好消息,为啥不用 AI 来解决这个问题呢? 别再依赖传统方法了,你可以用像 LLM(大型语言模型)和图像生成器这样的 AI 工具,为你的特定目标创建合成训练数据。如今有那…...
AI 应用同质化:一场看不见的资源 “吞噬战”
大家好,我是涛涛,今天聊聊令人担心的事情。 一、同质化的“繁荣”背后 当ChatGPT在2022年掀起全球AI热潮时,中国互联网行业迅速进入“All in AI”模式。根据艾瑞咨询数据,2023年国内AI应用市场新增注册企业超2.3万家,…...
Java + Spring Boot + MyBatis获取以及持久化sql语句的方法
在Java的Spring Boot项目中结合MyBatis获取实际执行的SQL语句,可以通过以下几种方法实现: 方法一:配置MyBatis日志级别 通过调整日志级别,MyBatis会输出执行的SQL语句及参数,适用于快速调试。 修改application.prope…...
「浏览器即OS」:WebVM技术栈如何用Wasm字节码重构冯·诺依曼体系?
一、冯诺依曼架构的维度坍塌 1. 传统计算模型的能量耗散 浏览器执行效率瓶颈分析: 操作x86指令周期Wasm指令周期能效比提升矩阵乘法3894.2x内存访问1234x系统调用120012100x 二、WebVM的量子纠缠架构 1. 浏览器内核的重构 // 基于WASI的系统调用处理 #[no_mangl…...
Vue3项目目录结构规范建议
以下是一个推荐的 Vue 3 项目目录结构规范,适用于中大型项目并遵循最佳实践: 基础目录结构 bash src/ ├─ assets/ # 静态资源 │ ├─ images/ # 图片文件 │ ├─ fonts/ # 字体文件 │ └─ styles/ …...
【计算机视觉】CV实战项目- Four-Flower:基于TensorFlow的花朵分类实战指南
深度解析Four-Flower:基于TensorFlow的花朵分类实战指南 项目概述与技术背景技术栈组成 完整实战流程环境配置1. 基础环境安装2. 项目环境搭建3. 环境验证 数据准备模型架构解析训练过程优化1. 训练配置2. 关键参数建议3. 训练监控 常见问题与解决方案1. 内存不足错…...
4.27 JavaScript核心语法+事件监听
JavaScript负责网页的行为(交互行为) JS基本语法: 引用方式 变量&常量&数据类型: alert()标签输出弹出框,如以上代码会输出true。 函数: 自定义对象: 属性方法行为 JS中的全局变量是window。 js…...
于键值(KV)的表
基于键值(KV)的表 将行编码为键值(KVs) 索引查询:点查询和范围查询 在关系型数据库中,数据被建模为由行和列组成的二维表。用户通过SQL表达他们的意图,而数据库则神奇地提供结果。不那么神奇的…...
Matlab算例运行
1. 使用终端命令运行算例: 2. 如果点击Run 按钮就是会一直报错,所以直接改成终端运行算例...
package.json script 中的 prepare 脚本的作用是什么
在 package.json 的 scripts 中,prepare 脚本是一个特殊的生命周期脚本,主要作用和执行时机如下: prepare 脚本的作用和执行时机 执行时机: 在执行 npm publish 命令之前运行。在执行不带参数的 npm install 命令时运行ÿ…...
图论---最大流(Dinic)
最大流一定是阻塞流,阻塞流不一定是最大流。 阻塞流---从起点到终点的管道已经阻塞了。 时间复杂度: 一般情况:O(n2m)O(n2m)(但实际运行效率较高,尤其在稀疏图上)。 使用当前弧优化后,效率接近…...
FastAPI系列06:FastAPI响应(Response)
FastAPI响应(Response) 1、Response入门2、Response基本操作设置响应体(返回数据)设置状态码设置响应头设置 Cookies 3、响应模型 response_model4、响应类型 response_classResponse派生类自定义response_class 在“FastAPI系列0…...
双目RealSense系统配置rs_camera.launch----实现D435i自制rosbag数据集到离线场景的slam建图
引言 Intel RealSense系列相机因其出色的深度感知能力和灵活的配置选项,在机器视觉与应用中得到广泛应用。大家在后期的slam学习中,无论是对算法本身的性能要求还是实验的泛化性都有一定的要求,那么公开的数据集如kitti、tum、Eourc不能满足…...
【MCP-2】MCP是什么,利用智普大模型在MaxKB中调用自己开发的MCP服务
在上一篇【MCP-1】MCP是什么,从DEMO入手文章中我们介绍了MCP是什么、他能干啥,以及简单的Demo示例等,这篇文章我们使用MaxKB这个工具,利用智普大模型,看看MCP到底怎么用。 创建SSE协议的MCP服务 在上篇文章中的Demo是…...
Allegro23.1新功能之如何单独关闭铜皮显示效果操作指导
Allegro23.1新功能之如何单独关闭铜皮显示效果操作指导 Allegro升级到了23.1的时候,支持单独关闭铜皮显示 ,如下图 如何仅关闭shape的显示,单独显示线,具体操作如下 点击setup...
《从分遗产说起:JS 原型与继承详解》
“天天开心就好” 先来讲讲概念: 原型(Prototype) 什么是原型? 原型是 JavaScript 中实现对象间共享属性和方法的机制。每个 JavaScript 对象(除了 null)都有一个内部链接指向另一个对象,这…...
【Part 2安卓原生360°VR播放器开发实战】第二节|基于等距圆柱投影方式实现全景视频渲染
《VR 360全景视频开发》专栏 将带你深入探索从全景视频制作到Unity眼镜端应用开发的全流程技术。专栏内容涵盖安卓原生VR播放器开发、Unity VR视频渲染与手势交互、360全景视频制作与优化,以及高分辨率视频性能优化等实战技巧。 📝 希望通过这个专栏&am…...
Android——RecyclerView
RecyclerView的使用 依赖 implementation("androidx.recyclerview:recyclerview:1.4.0")activity_recyclerview.xml <androidx.recyclerview.widget.RecyclerViewandroid:id"id/rv"android:layout_width"match_parent"android:layout_height…...
跨域问题(Cross-Origin Problem)
跨域问题(Cross-Origin Problem)是浏览器出于安全考虑,对不同源(协议、域名、端口)之间的资源访问进行限制而引发的限制。以下是详细解释: 1. 核心定义 跨域:当一个网页(源A&#x…...
阿里云直接对系统云盘扩容
阿里云直接对系统云盘扩容 登录阿里云控制台,进入ECS实例管理页面,检查目标磁盘的容量是否已更新为扩容后的数值。通过SSH远程连接服务器,使用命令 lsblk 或 fdisk -l 查看当前磁盘分区和容量,确认扩容后的物理磁盘已被系统识别。…...
Java大厂面试突击:从Spring Boot自动配置到Kafka分区策略实战解析
第一轮核心知识 面试官:请解释Spring Boot中自动配置的工作原理并演示如何自定义一个ConfigurationProperties组件? xbhog:自动配置通过EnableAutoConfiguration注解触发,结合当前环境判断(如是否检测到MyBatis依赖&…...
【python】lambda用法(结合例子理解)
目录 lambda 是什么? 为什么叫 lambda? 语法 举例 1. 最简单的 lambda:单个数字处理 2. 用 lambda 排序一组字符串(按照长度排序) 3. 在列表里找出绝对值最小的数字 4. 给 map() 用 lambda 5. 组合使用:筛选出偶数 lambda 和 def 的对比 lambda 适合用在什么地…...
前端Ui设计工具
PS 稿、蓝湖、Sketch 和 Figma 前端 UI 设计工具的对比分析 PS 稿(Adobe Photoshop) 提供精准设计细节:PS 稿能让前端更精准地理解页面布局、元素尺寸、颜色等,通过精确测量和查看信息面板,把握设计元素的空间关系、…...
深入探索Python Pandas:解锁数据分析的无限可能
放在前头 深入探索Python Pandas:解锁数据分析的无限可能 深入探索Python Pandas:解锁数据分析的无限可能 在当今数据驱动的时代,高效且准确地处理和分析数据成为了各个领域的关键需求。而Python作为一门强大且灵活的编程语言,…...
django admin 设置字段不可编辑
在Django中,如果你想让管理员在后台管理界面中无法编辑某个字段,你可以通过在模型的Meta类中设置editable属性为False,或者在admin.py文件中使用readonly_fields属性来实现。 方法1:在模型中使用Meta类设置 你可以在模型的Meta类…...
AI在医疗领域的10大应用:从疾病预测到手术机器人
AI在医疗领域的10大应用:从疾病预测到手术机器人 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 AI在医疗领域的10大应用:从疾病预测到手术机器人摘要引言1. 医学影像诊断:从静态…...
深入理解 Java 单例模式:从基础到最佳实践
单例(Singleton)模式是 Java 中最基本、最常用的设计模式之一。它确保一个类在任何情况下都只有一个实例,并提供一个全局访问点来获取这个唯一的实例。 一、为什么需要单例模式?(使用场景) 单例模式主要适…...
Rust:安全与性能兼得的现代系统编程语言
一、起源与设计理念 Rust 是由 Mozilla 研究院 Graydon Hoare 于 2006 年发起设计的系统级编程语言,其诞生源于传统系统语言(如 C/C)在内存安全与并发编程方面的缺陷。经过近十年的迭代,Rust 1.0 稳定版于 2015 年正式发布&#…...
AI赋能智慧医疗新范式:小天互连即时通讯打造高效、安全的医疗通讯平台
在医疗行业,高效的信息协作与严格的数据安全不仅直接关系患者诊疗效率,更是医院现代化管理的核心命题。小天互连即时通讯系统通过将智能化功能与医疗场景深度结合,打造出全链路数字化协作平台,有效破解了传统沟通模式的效率瓶颈&a…...
图像生成新势力:GPT-Image-1 与 GPT-4o 在智创聚合 API 的较量
在人工智能领域,图像生成技术正迅速发展,OpenAI 推出的 GPT-Image-1 和 GPT-4o 在图像生成方面展现出了强大的能力。智创聚合 API 平台已支持这两个模型,并且其图片生成 / 编辑工作台支持图片的循环编辑等功能,为用户提供了更便捷…...
如何避免爬虫因Cookie过期导致登录失效
1. Cookie的作用及其过期机制 1.1 什么是Cookie? Cookie是服务器发送到用户浏览器并保存在本地的一小段数据,用于维持用户会话状态。爬虫在模拟登录后,通常需要携带Cookie访问后续页面。 1.2 Cookie为什么会过期? 会话Cookie&…...
集成方案 | Docusign + 甄零科技,赋能企业海外业务高效增长!
本文将详细介绍 Docusign 与甄零科技的集成步骤及其效果,并通过实际应用场景来展示 Docusign 的强大集成能力,以证明 Docusign 集成功能的高效性和实用性。 甄零科技是一家专注于数字化合同管理系统的 SaaS 解决方案提供商,致力于为企业打造“…...
【Arxiv 2025】Single Image Iterative Subject-driven Generation and Editing
文章目录 文章标题作者及研究团队介绍01 在论文所属的研究领域,有哪些待解决的问题或者现有的研究工作仍有哪些不足?02 这篇论文主要解决了什么问题?03 这篇论文解决问题采用的关键解决方案是什么?04 这篇论文的主要贡献是什么&am…...
CoOAG:首个捕捉学术研究兴趣动态演变的数据集
2025-04-24,由西安交通大学基于学术合作网络构建一种新的动态图数据集CoOAG,用于研究动态图中的节点分类问题。该数据集通过捕捉作者研究兴趣的动态变化,为动态图学习领域提供了新的研究方向和测试平台,特别是在标签受限的动态节点…...
决策树随机深林
决策树和随机森林是机器学习中常用的两种模型,以下是对它们的简单介绍: 决策树 - 原理:通过一系列的条件判断对样本进行分类或预测。它由节点(内部节点是属性上的测试,叶节点是类别或值)和边组成࿰…...
Unity 和 Unreal Engine(UE) 两大主流游戏引擎的核心使用方法
以下是 Unity 和 Unreal Engine(UE) 两大主流游戏引擎的核心使用方法和对比分析,帮助开发者快速上手并根据项目需求选择合适工具: 一、Unity 使用指南 1. 安装与配置 安装:从 Unity Hub 下载,选择长期支持…...
Maven 依赖范围(Scope)详解
Maven 依赖范围(Scope)详解 Maven 是一个强大的项目管理工具,广泛用于 Java 开发中构建、管理和部署应用程序。在使用 Maven 构建项目时,我们经常需要引入各种第三方库或框架作为项目的依赖项。通过在 pom.xml 文件中的 <depe…...
博物馆除湿控湿保卫战:M-5J1R 电解除湿科技如何重塑文物守护的未来
在卢浮宫幽深的长廊里,达芬奇的《蒙娜丽莎》正经历着一场看不见的战争——不是来自时间的侵蚀,而是空气中无形的水分子。每一件文物都在与湿度进行着无声的抗争,这场抗争关乎人类文明的延续。湿度,这个看不见的文物杀手࿰…...
消防应急物资智能调用立库:豪越科技助力消防“速战速决”
在消防救援的战场上,时间就是生命,每一秒都关乎着人民群众的生命财产安全。然而,在过去的紧急救援中,应急物资无法及时到位的情况时有发生,成为制约救援效率的关键难题,给救援工作带来了巨大的困境。 想象一…...
机器学习基础理论 - 分类问题评估指标
几个定义:混淆矩阵 TP: True Positives, 表示实际为正例且被分类器判定为正例的样本数FP: False Positives, 表示实际为负例且被分类器判定为正例的样本数FN: False Negatives, 表示实际为正例但被分类器判定为负例的样本数TN: True Negatives, 表示实际为负例且被分类…...
深度学习4.1 多层感知机
基本概念 多层感知机(Multilayer Perceptron, MLP)是一种前馈人工神经网络,由输入层、至少一个隐藏层和输出层组成。 核心特点: 采用全连接结构(相邻层神经元全部相连; 通过非线性激活函数…...
解决两个技术问题后小有感触-QZ Tray使用经验小总结
老朋友都知道,我现在是一家软件公司销售部门的项目经理和全栈开发工程师,就是这么“奇怪”的岗位,大概我是公司销售团队里比较少有技术背景、销售业绩又不那么理想的销售。 近期在某个票务系统项目上驻场,原来我是这个项目的项目…...
非计算机专业如何利用AI开展跨学科和交叉研究
对于非计算机专业的研究者,利用AI开展跨学科研究既充满机遇也面临挑战。以下是一份系统化的指南,帮助您高效入门并找到交叉研究的突破口: 一、认知重塑:理解AI的本质与局限 AI不是“黑箱”:现代AI以数据驱动为核心&a…...
Python 数据可视化进阶:精准插入图表到指定 Excel 工作表
Python 数据可视化进阶:精准插入图表到指定 Excel 工作表 在处理数据的过程中,我们常常需要将生成的图表精准地插入到已存在数据的 Excel 文件的指定工作表中。借助 Python 的强大库组合,这一操作得以高效实现。以下是经过优化和注释补充的代…...