基于Diffusion的图像修复方法

news2024/11/16 18:00:26

基于Diffusion的图像修复方法

本文介绍基于 Diffusion 的几个图像修复的工作。图像修复任务有两种应用的场景,一是图片的某部分真的缺失了,需要修复处这部分内容;二是想要修改图片中的某个部分,更换/新增/删除物体,这种情况其实可以看作是一种图像编辑人物。根据是否有条件引导修复的过程,又可分为无条件修复和条件修复,本文主要讨论的是基于 Diffusion 模型的文本条件引导的图像修复。整体上相当于有两个条件:文本提示词、非掩码区域的图像特征。

任务设定:给定一张原图 x x x,一个掩码 m m m 和一个文本描述 d d d。将 x x x m m m 位置出替换为 t t t 中描述的内容。在这个任务中,有两个要求:一是要保证生成出的掩码区域内的内容与文本描述相符,二是要保证掩码外的区域与原图尽可能一致。

Blended Diffusion

Blended Diffusion 的研究主要是结合预训练好的 CLIP 和 DDPM 分别作语义引导和图像生成,通过设计特定的损失函数,引导图像生成的过程满足上述要求。

基线方法:Local CLIP Guided Diffusion

作者首先介绍了一种基线方法:Local CLIP Guided Diffusion,通过类似 Classifier Guidance 的方式来引导 inpainting 的过程。具体来说,作者设计了两项损失分别对采样过程进行引导,来分别满足任务的两个要求。

首先是 D C L I P D_{CLIP} DCLIP,用于引导掩码区域的生成结果与文本描述保持一致。分别计算掩码区域内生成结果的图像 embedding 和文本描述的文本 embedding,然后计算两者的余弦距离:
D C L I P ( x , d , m ) = D c ( C L I P i m g ( x ⊙ m ) , C L I P t x t ( d ) ) \mathcal{D}_{CLIP}(x,d,m)=D_c(CLIP_{img}(x\odot m),CLIP_{txt}(d)) DCLIP(x,d,m)=Dc(CLIPimg(xm),CLIPtxt(d))
注意由于引导过程中的图像是带噪声的,所以原本的 Classifier Guidance 是在噪声数据上重新训练了一个分类器。而 CLIP 重新训练的成本太高,几乎无法实现。因此作者这里用的是按照 DDPM 形式化从噪声图 x t x_t xt 估计的原始图像 x ^ 0 \hat{x}_0 x^0,即:
x ^ 0 = x t α ˉ t − 1 − α ˉ t ϵ θ ( x t , t ) α ˉ t \hat{x}_0=\frac{x_t}{\sqrt{\bar\alpha_t}}-\frac{\sqrt{1-\bar\alpha_t}\epsilon_\theta(x_t,t)}{\sqrt{\bar\alpha_t}} x^0=αˉt xtαˉt 1αˉt ϵθ(xt,t)
第二,我们还要保持掩码外区域与原始图像尽可能一致,这里使用 D b g \mathcal{D}_{bg} Dbg,通过计算掩码外区域的生成结果与原图的 MSE 和 LPIPS 两种距离来引导生成:
D b g ( x 1 , x 2 , m ) = d ( x 1 ⊙ ( 1 − m ) , x 2 ⊙ ( 1 − m ) ) ; d ( x 1 , x 2 ) = 1 2 ( M S E ( x 1 , x 2 ) + L P I P S ( x 1 , x 2 ) ) \mathcal{D}_{bg}(x_1,x_2,m)=d(x_1\odot(1-m),x_2\odot(1-m));\\ d(x_1,x_2)=\frac{1}{2}(MSE(x_1,x_2)+LPIPS(x_1,x_2)) Dbg(x1,x2,m)=d(x1(1m),x2(1m));d(x1,x2)=21(MSE(x1,x2)+LPIPS(x1,x2))
综合以上两项引导损失,基线方法 Local CLIP Guided Diffusion 通过二者的加权和 D C L I P + λ D b g \mathcal{D}_{CLIP}+\lambda\mathcal{D}_{bg} DCLIP+λDbg 来引导图像修复。通过调整两项损失的权重,就可以权衡同时保持该任务的两个要求。

然而,作者发现,无论怎么调整权重,基线方法的效果都不够理想。如下图实验(prompt = “a dog”)结果所示,在 λ \lambda λ 较低时,背景的一致性完全无法保持,当增大 λ \lambda λ 时,掩码区域内又无法生成出 prompt 所描述的内容,并且背景的保持也不是很完美。

在这里插入图片描述

Blended Diffusion

为了提升 inpainting 的效果,更好的兼顾区域语义生成和原图背景保持的两个要求,作者提出了 Blended Diffusion。顾名思义,Blended Diffusion 就是将两种噪声进行 混合

在每个时间步 t t t,对噪声图 x t x_t xt,首先根据 CLIP Guidance 进行一次常规的去噪生成,得到的结果记为 x t − 1 , f g x_{t-1,fg} xt1,fg,另外我们按照 DDPM 的原始公式 x t = α ˉ x 0 + 1 − α ˉ t ϵ x_t=\sqrt{\bar\alpha}x_0+\sqrt{1-\bar\alpha_t}\epsilon xt=αˉ x0+1αˉt ϵ 对输入原图进行加噪,得到结果记为 x t − 1 , b g x_{t-1,bg} xt1,bg。然后根据给定的掩码 m m m 对二者进行混合:
x t − 1 = x t − 1 , f g ⊙ m + x t − 1 , b g ⊙ ( 1 − m ) x_{t-1}=x_{t-1,fg}\odot m+x_{t-1,bg}\odot(1-m) xt1=xt1,fgm+xt1,bg(1m)
在这里插入图片描述

此外,为了避免对抗样本对 CLIP Guidance 的影响,作者采用的是多种数据增强结果的 CLIP 梯度的平均,相当于是一种 TTA。

Blended Latent Diffusion

Blended Latent Diffusion,是 Blend Diffusion 做在 Latent Diffusion 上的版本,混合噪声图修复部分的做法完全一致。区别就是:1. diffusion 过程做在隐层空间;2. 使用 Classifier-free Guidance(而非 Classifier Guidance)。

为了更好地重构背景,作者参考 GAN latent space optimization 系列方法,采用了一种 optimization-based 的方法来找到最优的 z z z

还采用了 progressive mask shrinking,来改善 mask 区域较小时的效果。

在这里插入图片描述

Repaint

掩码区域根据 DDPM 进行正常去噪,非掩码区域对输入图进行加噪,再按掩码位置混合起来得到图片。
x t − 1 known ∼ N ( α ˉ t x 0 , ( 1 − α ˉ t ) I ) x t − 1 unknown ∼ N ( μ θ ( x t , t ) , Σ θ ( x t , t ) ) x t − 1 = m ⊙ x t − 1 known + ( 1 − m ) ⊙ x t − 1 unknown x^\text{known}_{t-1}\sim\mathcal{N}(\sqrt{\bar\alpha_t}x_0,(1-\bar\alpha_t)\mathbf{I})\\ x^\text{unknown}_{t-1}\sim\mathcal{N}(\mu_\theta(x_t,t),\Sigma_\theta(x_t,t))\\ x_{t-1}=m\odot x_{t-1}^\text{known}+(1-m)\odot x_{t-1}^\text{unknown} xt1knownN(αˉt x0,(1αˉt)I)xt1unknownN(μθ(xt,t),Σθ(xt,t))xt1=mxt1known+(1m)xt1unknown
为了使得掩码生成的区域充分考虑到输入的未掩码区域的语义信息,Repaint 提出了一种 Resampling 策略,即在混合得到 x t − 1 x_{t-1} xt1 之后,再加噪 j j j 步,然后再降噪回来,从而可以利用其全图的上下文语义进行 inpainting。

在这里插入图片描述

GLIDE Inpainting

上述方法都是在训练好的扩散模型进行加噪采样,然后与原图的噪声混合起来,执行 inpainting 不需要重新训练。效果尚可,但是 mask 边缘终究是不太协调。以下介绍几种需要训练的 inpainting 方法,效果更进一步。

GLIDE 中介绍 Inpainting 是对整个扩散模型进行微调。具体来说,在微调时,随机选择数据样本中的区域进行擦除,然后将剩余的区域输入模型,而被擦除区域掩码则会通过额外添加一个输入通道作为条件输入给模型,额外添加的通道采用零初始化。

最近的 Kolors Inpainting 也是采用的这种方法。

SmartBrush

现有的 inpainting 训练方法一般都是随机生成 mask 区域,这无疑极大概率会导致 mask 区域内包含多种物体的部分,但是在实际图像编辑/修复中,我们一般是想要在指定的 mask 区域内大致生成一个目标物体。

SmartBrush 中为了保证 mask 区域内大致是一个主体物体,使用了图像分割数据集进行训练。训练时先随机选择图像 x x x 中一个标注的掩码 m m m 以及对应的类别标注 c c c。加噪时仅在掩码区域内加噪:
x ~ t = α ˉ t x 0 + 1 − α ˉ t ϵ x t = x ~ t ⊙ m + x 0 ( 1 − m ) \tilde{x}_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon\\ x_t=\tilde{x}_t\odot m+x_0(1-m) x~t=αˉt x0+1αˉt ϵxt=x~tm+x0(1m)
从而保证生图时能够根据清晰干净的未掩码区域上下文进行去噪。将 x t x_t xt m m m c c c 输入到扩散模型中,按照标准的 DDPM 优化目标进行训练。

在这里插入图片描述

形状精度控制 考虑到在进行 inpainting 时人工给出的 mask 区域一般都是不那么精确的,SmartBrush 在训练时采用了多种形状精度的策略,通过对分割掩码进行不同程度的高斯模糊来控制形状的精度 m s = GaussianBlur ( m , k s , σ s ) m_s=\text{GaussianBlur}(m,k_s,\sigma_s) ms=GaussianBlur(m,ks,σs),最精细的掩码是分割标注本身,最粗略的掩码是矩形框。

背景保持 当我们在掩码区域内生成文本 prompt 所指定的物体时,可能有些区域内是目标物体本身,有些部分是其周遭的背景。但这些生成的背景,很可能跟掩码区域外的背景是不匹配的,这会导致生成结果整体不够协调。为了解决这一问题,作者提出,在训练时同时要求网络预测出掩码区域内生成的目标物体本身的掩码。这需要网络的输出之上添加一个通道,用于表示二进制掩码,并添加一个分割的 DICE loss:
L prediction = H ( ϵ θ ( m s ) , m ) H ( X , Y ) = 1 − 2 ∣ X ∩ Y ∣ ∣ X ∣ + ∣ Y ∣ \mathcal{L}_\text{prediction}=H(\epsilon_\theta(m_s),m)\\ H(X,Y)=1-\frac{2|X\cap Y|}{|X|+|Y|} Lprediction=H(ϵθ(ms),m)H(X,Y)=1X+Y2∣XY

在推理生成时,我们就可以预测出给定掩码区域内实际目标物体的生成区域了,在推理过程中我们会将预测出的掩码代替给定的粗略掩码,将预测掩码外的区域替换为原图。(注意这里 SmartBrush 是需要完整原图的,也就是做图像编辑,而非真正缺掉某个区域的图像修复)。

在这里插入图片描述

BrushNet

除了训练专用的 inpainting 扩散模型(下图 Dedicated Inpainting Models)之外,还有一类通过添加并训练一个额外的网络分支来训练 inpainting 能力,比如 ControlNet Inpainting。将带掩码的图片,提取特征后输入到 ControlNet 中,将 ControlNet 逐层的输出作为条件输入给扩散模型进行条件生图。然而,ControlNet 更多地还是用于提取稀疏的空间结构条件,如人体姿势、Canny 边缘等,而 inpainting 要求的是像素级别的严格控制,因此 ControlNet 提取的信息可能不足,因此其效果跟专用的 inpainting 模型相比效果稍差。

BrushNet,也是提出了添加一个额外的网络分支进行 inpainting 任务,但其更进一步提出了适配 inpainting 任务的几点网络设计:

  1. 为了对齐 UNet 的输入分布,使用 VAE 来提取图像特征,而非随机初始化的卷积网络
  2. 为了实现像素级别的控制,采用了一种层级的方案。提取出每一层的特征给到生图模型
  3. 为了保证 BrushNet 中是纯图像信息,去除了原始 UNet 中的 text cross attention。这进一步使得 BrushNet 成为一个即插即用的网络分支,并使得 inpainting 过程中对非掩码区域的控制更加灵活。

此外,为了实现更好的连贯性和非掩码区域的可控性,BrushNet 还采用了一种模糊混合策略。

在这里插入图片描述

具体来说,BrushNet 的整体结构如下图所示。

在这里插入图片描述

整体来看,还是输入一张图像和掩码图,输出 inpainting 后的完整图像。首先,由于 BrushNet 是基于 LDM 的,因此要先对掩码图进行降采样,以匹配 latent 的尺寸,同时输入图像经过 VAE encoder 提取(与隐空间特征对齐的)latent。然后将噪声 latent,图像 latent 和降采样的 mask 拼接起来作为 BrushNet 的输入。经由 BrushNet 提取并输出的特征会经过一个零卷积之后逐层对应输入到生图 UNet 模型中。在生图结束后,将生成图像和输入图像进行模糊混合,得到最终的结果。

这里的 BrushNet 所采用的模型与生图 UNet 结构一致,只是 BrushNet 是用于处理纯图像信息,因此去除了 text cross attention 模块。此外,由于对 mask 进行了降采样,且 VAE encode-decode 的过程本身就存在一定的损失,因此最终生成的图一般无法保证非掩码区域与原图完全一致。很多工作会在最后直接将原图按照 mask 拼到生图结果上,但这通常会导致结果语义不连贯。BrushNet 中提出先对 mask 进行模糊操作,然后按照模糊后的 mask 进行混合,这样虽然边界处会有一些细节丢失,但几乎看不出来,最终结果的一致性大大改善。

PowerPaint

图像修复有许多各不相同的细分任务,包括文本引导的图像修复、形状引导的图像修复、物体移除、扩图等。现有的图像修复工作一般只专注于上述细分任务的某一种。而 PowerPaint,主打的就是多功能,通过引入了三个可学习的 prompts: P o b j , P c t x t , P s h a p e \mathbf{P_{obj}},\mathbf{P_{ctxt}},\mathbf{P_shape} Pobj,Pctxt,Pshape 来指示不同的任务,PowerPaint 在上述这些细分任务上都达到了领先的性能。

在这里插入图片描述

Context-aware Image Inpainting 仅根据非掩码区域的图像信息补全出掩码区域。输入是 mask 和原图,文本 prompt 是一个可学习的 P c t x t \mathbf{P_{ctxt}} Pctxt

Text-guided Object Inpainting 根据非掩码区域的图像信息和文本提示词在掩码区域生成特定的物体,mask 是矩形框,文本 prompt 是物体提示词在拼接上可学习的 P o b j \mathbf{P_{obj}} Pobj

Object Removal 去除掩码区域内的特定物体,利用了 Classifier Free Guidance 可以设置 negative prompt 的特点。positive prompt 是 P c t x t \mathbf{P_{ctxt}} Pctxt,negative prompt 是 P o b j \mathbf{P_{obj}} Pobj ,即根据掩码外图像信息补全掩码区域,但是不能生成特定物体。

Controllable Shape Guided Object Inpainting 根据形状来生成特定物体。精确的分割 mask,使用 SmartBrush 的方法进行训练,文本 prompt 需要拼接可学习的 P s h a p e \mathbf{P_{shape}} Pshape。但作者发现直接这样做会导致生成的物体过于接近于 mask 的形状,基本把 mask 区域填充满了,而丢失了该物体原本的形状。PowerPaint 提出 task prompt interpolation 来解决该问题。首先使用卷积操作对 mask 进行随机扩张,会得到一系列与物体形状适配度 α \alpha α 不同的 mask, α \alpha α 越大表示与 mask 的适配程度越高。将 P s h a p e \mathbf{P_{shape}} Pshape P c t x t \mathbf{P_{ctxt}} Pctxt 拼接到文本描述后,各自输入到 CLIP text encoder 之后得到两个 embedding e shape , e ctxt e_\text{shape},e_\text{ctxt} eshape,ectxt,然后对二者进行插值 e = ( 1 − α ) e shape + α e ctxt e=(1-\alpha) e_\text{shape}+\alpha e_\text{ctxt} e=(1α)eshape+αectxt。在推理时,用户可以调整参数 α \alpha α 来控制生成物体形状与 mask 的适配度。

在这里插入图片描述

总结

整体来说,基于 Diffusion 的 inpating 方法可以分为无需训练和需要训练两个大类。其中无需训练的方法主要是根据 mask 来调整采样策略,将掩码区域的去噪生成结果与掩码外区域的加噪结果进行混合(blend)。而需要训练的方法又可分为微调模型本身和添加额外的网路分支两类。核心就是更精细的像素级控制。PowerPaint 则通过设置可学习的 prompt,进一步实现了多功能的 inpainting 模型。

  • 无需训练
    • 调整采样策略
      • Blended Diffusion:DDPM + CLIP Classifier Guidance
      • Blended Latent Diffusion:LDM + Classifier-free Guidance
      • Repaint
  • 需要训练
    • 微调
      • GLIDE/Kolors inpainting
      • Smart Brush
      • PowerPaint:多功能
    • 额外的网络分支
      • ControlNet inpainting
      • BrushNet
      • PowerPaint-v2:PowerPaint + BrushNet

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

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

相关文章

godot4.2入门项目 dodge_the_creep学习记录

前言 在学习博客Godot4 你的第一个2d游戏中的项目时,遇到了点小问题,记录一下。 官方项目 传送门 问题 怪兽直接从屏幕中间部分冒出来,以及角色出现时位于屏幕外角色被设置的背景图遮挡 解决方法 1.节点的位置没有对齐,正确示例…

李宏毅机器学习2022-HW8-Anomaly Detection

文章目录 TaskBaselineReportQuestion2 Task 异常检测Anomaly Detection 将data经过Encoder,在经过Decoder,根据输入和输出的差距来判断异常图像。training data是100000张人脸照片,testing data有大约10000张跟training data相同分布的人脸…

9.27每日作业

将之前实现的顺序表、栈、队列都更改成模板类 顺序表&#xff1a; list.hpp #ifndef LIST_HPP #define LIST_HPP#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h> using namespace std;//typedef int T; //类…

nginx常用的性能优化

第一步调整工作进程数&#xff1a; 设置成auto&#xff0c;会自动按照CPU核心数来启动工作进程数&#xff0c;如果设置具体数字&#xff0c;则只会使用指定数量的CPU核心&#xff0c;无法将CPU同一时间都能用得到&#xff0c;所以就不能发挥服务器的最大的性能。 第二步增加进程…

章管家 listUploadIntelligent.htm SQL注入漏洞

漏洞描述&#xff1a; 章管家 listUploadIntelligent.htm 接口处存在SQL注入漏洞&#xff0c;未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息&#xff08;例如&#xff0c;管理员后台密码、站点的用户个人信息&#xff09;之外&#xff0c;甚至在高权限…

基于大数据的高血压人群数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

MMD模型及动作一键完美导入UE5-衣服布料模拟(四)

1、给角色刷布料 1、打开角色,通过Window->Clothing打开模型布料窗口 2、选中裙子右键,创建布料数据 3、选择裙子,右键->应用布料数据 4、激活布料画笔,就可以开始绘制布料了 5、调整画笔大小和布料值进行绘制,布料值为0表示刚体

网络安全:保护数字时代的堡垒

网络安全&#xff1a;保护数字时代的堡垒 引言&#xff1a; 在数字化时代&#xff0c;网络安全的重要性日益凸显。它不仅关系到个人隐私保护&#xff0c;还涉及国家安全和经济发展。随着技术的发展&#xff0c;网络安全的威胁也在不断进化&#xff0c;从个人设备到企业网络&am…

2024图纸加密软件集锦|10款好用不踩雷的图纸加密软件推荐!

小李&#xff1a;“老张&#xff0c;最近咱们公司的设计图纸泄密事件频发&#xff0c;真是让人头疼啊&#xff01;你有没有什么好的图纸加密软件推荐&#xff0c;能帮我们加强设计文件的安全性&#xff1f;” 老张&#xff1a;“小李啊&#xff0c;你算是问对人了。随着数字化…

《pyqt+open3d》open3d可视化界面集成到qt中

《pyqtopen3d》open3d可视化界面集成到qt中 一、效果显示二、代码三、资源下载 一、效果显示 二、代码 参考链接 main.py import sys import open3d as o3d from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QWindow from PyQt5.Qt…

高通Android 12 push framework.jar和service.jar

1、Android framework.jar和service.jar替换注意事项 2、单编 adb push service.jar脚本 如下 adb root adb disable-verity adb remountadb push services.jar system/framework adb push services.jar.prof system/framework adb push oat/arm64/services.art /system/fram…

重磅首发!大语言模型LLM学习路线图来了!

ChatGPT的出现在全球掀起了AI大模型的浪潮&#xff0c;2023年可以被称为AI元年&#xff0c;AI大模型以一种野蛮的方式&#xff0c;闯入你我的生活之中。 从问答对话到辅助编程&#xff0c;从图画解析到自主创作&#xff0c;AI所展现出来的能力&#xff0c;超出了多数人的预料&…

酒店智能门锁SDK接口pro[V10] 对接酒店收银-模块封装C#-SAAS本地化-未来之窗行业应用跨平台架构

一、代码 public class CyberWin_hoteldoor_prousbv10_2024{[DllImport("024.dll", CharSet CharSet.Ansi, CallingConvention CallingConvention.StdCall, EntryPoint "GetDLLVersion")]public static extern int GetDLLVersion(StringBuilder sDllVer…

新手答疑 | 零基础该怎么学习嵌入式?嵌入式Linux学习路线是什么?嵌入式开发板推荐?

很多初学者想要涉足嵌入式Linux开发领域&#xff0c;但往往在刚入门阶段&#xff0c;会因为初次接触到大量复杂的概念术语和深奥的技术文档感到压力重重&#xff0c;面对这些内容不知从何下手&#xff0c;感到十分迷茫&#xff0c;网上的内容也纷繁复杂&#xff0c;没有清晰的学…

【STM32】SPI回顾

一、定义 SPI是Motorola首先提出的全双工四线同步串行外围接口&#xff0c;采用主从模式&#xff08;Master-Slave&#xff09;架构。 二、单机与多机通信 4线SPI器件有四个信号&#xff1a;时钟(SPI CLK, SCLK)、主机输出从机输入(MOSI)、主机输入从机输出(MISO)、片选(CS/N…

怎么备考2024年11月软考高级系统架构师 ?

分享下我的系统架构设计师考证之路&#xff0c;希望能对即将参加考试的小伙伴们带来一些启示和帮助。 先贴出自己软考系统架构设计师成绩&#xff0c;备考一次就通过了考试。 一、架构考试教材 架构考试教材目前使用的是系统架构设计师教程&#xff08;第2版&#xff09;&…

进程(一万字学习笔记)

------------------------本文为学习进程记录的学习笔记&#xff0c;如有问题欢迎指正 -------------------------- 目录 1.定义 2.进程的种类 2.进程的内存布局 3.进程控制块&#xff08;PCB&#xff09; 4.进程源语 fork() 写时复制 exec() execl函数 wait() #进…

GloVe(全局词向量嵌入)

目录 GloVe简介 1.使用预训练的GloVe的词向量(英文文本的用的最多) 2.自己训练Glove词向量 3. 知识点 GloVe简介 GloVe的全称叫Global Vectors for Word Representation&#xff0c;它是一个基于全局词频统计&#xff08;count-based & overall statistics&#xff09;的…

OpenAI为高级语音模式添加五种声音,已正式推出!华为发布业界首个L4自动驾驶网络|AI日报

文章推荐 法国亿万富翁加入字节跳动董事会&#xff01;美国总统候选人哈里斯、特朗普纷纷向人工智能和加密货币产业示好&#xff5c;AI日报 今日热点 华为发布业界首个L4自动驾驶网络——星河AI自动驾驶网络解决方案 在华为全联接大会2024“星河 AI 自动驾驶网络”论坛上&a…

【深度学习】深度学习框架有哪些及其优劣势介绍

本文摘要 在深度学习的开发中&#xff0c;有许多流行的深度学习框架可供使用。本文主要介绍其中一些常见的深度学习框架以及其优劣势。 注&#xff1a;个人观点&#xff0c;仅供学习参考。 原文地址&#xff1a;【深度学习】深度学习框架有哪些及其优劣势介绍 TensorFlow 开发…