国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖

這篇具有很好參考價值的文章主要介紹了使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

在本文中,我們將使用基于 KerasCV 實現(xiàn)的 Stable Diffusion 模型進行圖像生成,這是由 stable.ai 開發(fā)的文本生成圖像的多模態(tài)模型。

Stable Diffusion 是一種功能強大的開源的文本到圖像生成模型。雖然市場上存在多種開源實現(xiàn)可以讓用戶根據(jù)文本提示輕松創(chuàng)建圖像,但 KerasCV 有一些獨特的優(yōu)勢來加速圖片生成,其中包括 XLA 編譯混合精度支持等特性。所以本文除了介紹如何使用 KerasCV 內(nèi)置的 StableDiffusion 模塊來生成圖像,另外我們還通過對比展示了使用 KerasCV 特性所帶來的圖片加速優(yōu)勢。

準(zhǔn)備

  • N 卡,建議 24 G ,在下文使用 KerasCV 實際生成圖像過程中至少需要 20 G
  • 安裝 python 3.10 的 anaconda 虛擬環(huán)境
  • 安裝 tensorflow gpu 2.10
  • 一顆充滿想象力的大腦,主要是用來構(gòu)建自己的文本 prompt

這里有一個工具函數(shù) plot_images ,主要是用來把模型生成的圖像進行展示。

scss
復(fù)制代碼
def plot_images(images):
    plt.figure(figsize=(20, 20))
    for i in range(len(images)):
        plt.subplot(1, len(images), i + 1)
        plt.imshow(images[i])
        plt.axis("off")
    plt.show()

模型工作原理

超分辨率工作可以訓(xùn)練深度學(xué)習(xí)模型來對輸入圖像進行去噪,從而將其轉(zhuǎn)換為更高分辨率的效果。為了實現(xiàn)這一目的,深度學(xué)習(xí)模型并不是通過恢復(fù)低分辨率輸入圖像中丟失的信息做到的,而是模型使用其訓(xùn)練數(shù)據(jù)分布來填充最有可能的給定輸入的視覺細節(jié)。

然后將這個想法推向極限,在純噪聲上運行這樣的模型,然后使用該模型不斷去噪最終產(chǎn)生一個全新的圖像。這就是潛在擴散模型的關(guān)鍵思想,在 2020 年的 High-Resolution Image Synthesis with Latent Diffusion Models 中提出。

現(xiàn)在要從潛在擴散過渡到文本生成圖像的效果,需要添加關(guān)鍵字控制生成圖像的能力,簡單來說就是將一段文本的向量加入到到帶噪圖片中,然后在數(shù)據(jù)集上訓(xùn)練模型即可得到我們想要的文生圖模型 Stable Diffusion 。這就產(chǎn)生了 Stable Diffusion 架構(gòu),主要由三部分組成:

  • text encoder:可將用戶的提示轉(zhuǎn)換為向量。
  • diffusion model:反復(fù)對 64x64 潛在圖像進行去噪。
  • decoder:將最終生成的 64x64 潛在圖像轉(zhuǎn)換為更高分辨率的 512x512 圖像。

基本模型架構(gòu)圖如下:

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

benchmark

我們使用 keras_cv 中的 StableDiffusion 模塊構(gòu)造一個文生圖基準(zhǔn)模型 model ,在對模型進行基準(zhǔn)測試之前,先執(zhí)行一次 text_to_image 函數(shù)來預(yù)熱模型,以確保 TensorFlow graph已被跟蹤,這樣在后續(xù)使用模型進行推理時候的速度測試才是準(zhǔn)確的??梢詮娜罩局锌吹降谝淮芜\行的時間是 22 s ,這個不用去管他,我們只看第二個時間。

我這里的提示詞是“There is a pink BMW Mini at the exhibition where the lights focus” ,生成 3 張圖像,耗時 10.32 s 。

執(zhí)行結(jié)束之后運行 keras.backend.clear_session() 清除剛剛運行的模型,以保證不會影響到后面的試驗。

ini
復(fù)制代碼
model = keras_cv.models.StableDiffusion(img_width=512, img_height=512, jit_compile=False)
model.text_to_image("warming up the model", batch_size=3)
start = time.time()
images = model.text_to_image("There is a pink BMW Mini at the exhibition where the lights focus", batch_size=3)
print(f"Standard model: {(time.time() - start):.2f} seconds")
plot_images(images)
keras.backend.clear_session()

日志打?。?/p>

arduino
復(fù)制代碼
25/25 [==============================] - 22s 399ms/step
25/25 [==============================] - 10s 400ms/step
Standard model: 10.32 seconds

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

benchmark + Mixed precision

正如日志中打印的信息可以看到,我們這里構(gòu)建的模型現(xiàn)在使用混合精度計算,利用 float16 運算的速度進行計算,同時以 float32 精度存儲變量,這是因為 NVIDIA GPU 內(nèi)核處理同樣的操作,使用 float16 比 float32 要快得多。

我們這里和上面一樣先將模型預(yù)熱加載,然后針對我的提示詞“There is a black BMW Mini at the exhibition where the lights focus”生成了 3 張圖像,耗時 5.30s ,可以看到在 benchmark 基礎(chǔ)上使用混合精度生成速度提升將近一倍。

scss
復(fù)制代碼
keras.mixed_precision.set_global_policy("mixed_float16")
model = keras_cv.models.StableDiffusion(jit_compile=False)
print("Compute dtype:", model.diffusion_model.compute_dtype)
print("Variable dtype:",  model.diffusion_model.variable_dtype)
model.text_to_image("warming up the model", batch_size=3)
start = time.time()
images = model.text_to_image( "There is a black BMW Mini at the exhibition where the lights focus", batch_size=3,)
print(f"Mixed precision model: {(time.time() - start):.2f} seconds")
plot_images(images)
keras.backend.clear_session()

日志打?。?/p>

yaml
復(fù)制代碼
Compute dtype: float16
Variable dtype: float32
25/25 [==============================] - 9s 205ms/step
25/25 [==============================] - 5s 202ms/step
Mixed precision model: 5.30 seconds

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

benchmark + XLA Compilation

XLA(加速線性代數(shù))是一種用于機器學(xué)習(xí)的開源編譯器。XLA 編譯器從 PyTorch、TensorFlow 和 JAX 等常用框架中獲取模型,并優(yōu)化模型以在不同的硬件平臺(包括 GPU、CPU 和機器學(xué)習(xí)加速器)上實現(xiàn)高性能執(zhí)行。

TensorFlow 和 JAX 附帶 XLA , keras_cv.models.StableDiffusion 支持開箱即用的 jit_compile 參數(shù)。 將此參數(shù)設(shè)置為 True 可啟用 XLA 編譯,從而顯著提高速度。

從日志中可以看到,在 benchmark 基礎(chǔ)上使用 XLA 生成時間減少了 3.34 s

ini
復(fù)制代碼
keras.mixed_precision.set_global_policy("float32")
model = keras_cv.models.StableDiffusion(jit_compile=True)
model.text_to_image("warming up the model", batch_size=3)
start = time.time()
images = model.text_to_image("There is a black ford mustang at the exhibition where the lights focus", batch_size=3, )
print(f"With XLA: {(time.time() - start):.2f} seconds")
plot_images(images)
keras.backend.clear_session()

日志打印:

vbnet
復(fù)制代碼
25/25 [==============================] - 34s 271ms/step
25/25 [==============================] - 7s 271ms/step
With XLA: 6.98 seconds

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

benchmark + Mixed precision + XLA Compilation

最后我們在 benchmark 基礎(chǔ)上同時使用混合精度計算和 XLA 編譯,最終生成同樣的 3 張圖像,時間僅為 3.96s ,與 benchmark 相比生成時間減少了 6.36 s ,生成時間大幅縮短!

ini
復(fù)制代碼
keras.mixed_precision.set_global_policy("mixed_float16")
model = keras_cv.models.StableDiffusion(jit_compile=True)
model.text_to_image("warming up the model", batch_size=3, )
start = time.time()
images = model.text_to_image( "There is a purple ford mustang at the exhibition where the lights focus", batch_size=3,)
print(f"XLA + mixed precision: {(time.time() - start):.2f} seconds")
plot_images(images)
keras.backend.clear_session()

日志打印:

arduino
復(fù)制代碼
25/25 [==============================] - 28s 144ms/step
25/25 [==============================] - 4s 152ms/step
XLA + mixed precision: 3.96 seconds

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

結(jié)論

四種情況的耗時對比結(jié)果,展示了使用 KerasCV 生成圖片確實在速度方面有特別之處:

  • benchmark : 10.32s
  • benchmark + Mixed precision :5.3 s
  • benchmark + XLA Compilation : 6.98s
  • benchmark + Mixed precision + XLA Compilation : 3.96s

最后

為了幫助大家更好的學(xué)習(xí)人工智能,這里給大家準(zhǔn)備了一份人工智能入門/進階學(xué)習(xí)資料,里面的內(nèi)容都是適合學(xué)習(xí)的筆記和資料,不懂編程也能聽懂、看懂,所有資料朋友們?nèi)绻行枰兹斯ぶ悄苋腴T+進階學(xué)習(xí)資源包,可以在評論區(qū)或掃.碼領(lǐng)取哦)~

在線教程

  • 麻省理工學(xué)院人工智能視頻教程 – 麻省理工人工智能課程
  • 人工智能入門 – 人工智能基礎(chǔ)學(xué)習(xí)。Peter Norvig舉辦的課程
  • EdX 人工智能 – 此課程講授人工智能計算機系統(tǒng)設(shè)計的基本概念和技術(shù)。
  • 人工智能中的計劃 – 計劃是人工智能系統(tǒng)的基礎(chǔ)部分之一。在這個課程中,你將會學(xué)習(xí)到讓機器人執(zhí)行一系列動作所需要的基本算法。
  • 機器人人工智能 – 這個課程將會教授你實現(xiàn)人工智能的基本方法,包括:概率推算,計劃和搜索,本地化,跟蹤和控制,全部都是圍繞有關(guān)機器人設(shè)計。
  • 機器學(xué)習(xí) – 有指導(dǎo)和無指導(dǎo)情況下的基本機器學(xué)習(xí)算法
  • 機器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò) – 智能神經(jīng)網(wǎng)絡(luò)上的算法和實踐經(jīng)驗
  • 斯坦福統(tǒng)計學(xué)習(xí)

??有需要的小伙伴,可以點擊下方鏈接免費領(lǐng)取或者V掃描下方二維碼免費領(lǐng)取??
?使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python
使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

人工智能書籍

  • OpenCV(中文版).(布拉德斯基等)
  • OpenCV+3計算機視覺++Python語言實現(xiàn)+第二版
  • OpenCV3編程入門 毛星云編著
  • 數(shù)字圖像處理_第三版
  • 人工智能:一種現(xiàn)代的方法
  • 深度學(xué)習(xí)面試寶典
  • 深度學(xué)習(xí)之PyTorch物體檢測實戰(zhàn)
  • 吳恩達DeepLearning.ai中文版筆記
  • 計算機視覺中的多視圖幾何
  • PyTorch-官方推薦教程-英文版
  • 《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》(邱錫鵬-20191121)

  • 使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python
    ??有需要的小伙伴,可以點擊下方鏈接免費領(lǐng)取或者V掃描下方二維碼免費領(lǐng)取??
    ?使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

第一階段:零基礎(chǔ)入門(3-6個月)

新手應(yīng)首先通過少而精的學(xué)習(xí),看到全景圖,建立大局觀。 通過完成小實驗,建立信心,才能避免“從入門到放棄”的尷尬。因此,第一階段只推薦4本最必要的書(而且這些書到了第二、三階段也能繼續(xù)用),入門以后,在后續(xù)學(xué)習(xí)中再“哪里不會補哪里”即可。

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

第二階段:基礎(chǔ)進階(3-6個月)

熟讀《機器學(xué)習(xí)算法的數(shù)學(xué)解析與Python實現(xiàn)》并動手實踐后,你已經(jīng)對機器學(xué)習(xí)有了基本的了解,不再是小白了。這時可以開始觸類旁通,學(xué)習(xí)熱門技術(shù),加強實踐水平。在深入學(xué)習(xí)的同時,也可以探索自己感興趣的方向,為求職面試打好基礎(chǔ)。

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

第三階段:工作應(yīng)用

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

這一階段你已經(jīng)不再需要引導(dǎo),只需要一些推薦書目。如果你從入門時就確認了未來的工作方向,可以在第二階段就提前閱讀相關(guān)入門書籍(對應(yīng)“商業(yè)落地五大方向”中的前兩本),然后再“哪里不會補哪里”。

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python

使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python
??有需要的小伙伴,可以點擊下方鏈接免費領(lǐng)取或者V掃描下方二維碼免費領(lǐng)取??
?使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖,keras,stable diffusion,人工智能,深度學(xué)習(xí),pytorch,機器學(xué)習(xí),python文章來源地址http://www.zghlxwxcb.cn/news/detail-841984.html

到了這里,關(guān)于使用 Keras 的 Stable Diffusion 實現(xiàn)高性能文生圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 002. 使用最小堆實現(xiàn)高性能定時器實現(xiàn)

    定時器原理 – 任務(wù)的容器(要求:數(shù)據(jù)結(jié)構(gòu)有序或相對有序;能快速查找最近觸發(fā)的定時任務(wù)) + 觸發(fā)條件(可以通過帶有time_out的系統(tǒng)函數(shù),如epoll_wait的最后一個參數(shù)); 最小堆的特點 – 是一顆完全二叉樹; – 某個節(jié)點的值總是小于等于它子節(jié)點的值(即定位到最小值的時間

    2024年02月07日
    瀏覽(33)
  • 通過Span實現(xiàn)高性能數(shù)組,實例解析

    通過Span實現(xiàn)高性能數(shù)組,實例解析

    SpanT 是 C# 7.2 引入的一個強大的數(shù)據(jù)結(jié)構(gòu),用于表示內(nèi)存中的一塊連續(xù)數(shù)據(jù)。它可以用于實現(xiàn)高性能的數(shù)組操作,而無需額外的內(nèi)存分配。在本文中,我將詳細介紹如何使用 SpanT 來實現(xiàn)高性能數(shù)組操作,并提供一些示例代碼來說明其用法。 SpanT 是 System.Memory 命名空間中的結(jié)構(gòu)

    2024年02月05日
    瀏覽(29)
  • Kafka是如何實現(xiàn)高性能IO

    ? 批量處理是一種非常有效的提升系統(tǒng)吞吐量的方法。在 Kafka 內(nèi)部,消息都是以“批”為單位處理的。一批消息從發(fā)送端到接收端,是如何在 Kafka 中流轉(zhuǎn)的呢? Kafka 的 Producer 只提供了單條發(fā)送的 send() 方法,并沒有提供任何批量發(fā)送的接口。 kafka 根本就沒有提供單條發(fā)送

    2024年02月11日
    瀏覽(27)
  • Docker與Kafka:實現(xiàn)高性能流處理

    Docker 和 Kafka 都是現(xiàn)代技術(shù)中的重要組成部分,它們各自在不同領(lǐng)域發(fā)揮著重要作用。Docker 是一個開源的應(yīng)用容器引擎,用于自動化部署、創(chuàng)建、運行和管理應(yīng)用程序。Kafka 是一個分布式流處理平臺,用于構(gòu)建實時數(shù)據(jù)流管道和流處理應(yīng)用程序。 在大數(shù)據(jù)和實時數(shù)據(jù)處理領(lǐng)域

    2024年02月20日
    瀏覽(32)
  • 【消息隊列】Kafka如何實現(xiàn)高性能IO

    【消息隊列】Kafka如何實現(xiàn)高性能IO

    我們直到Kafka是一個自稱高性能的消息隊列引擎,一般來說對于中間件的設(shè)計需要從計算、存儲、網(wǎng)絡(luò)三方面進行下手,而消息從產(chǎn)生到消費,也會經(jīng)歷多個流程,比如在生產(chǎn)者端采用異步同步方式發(fā)送,采用高效的壓縮算法,高效的序列化方式,以及網(wǎng)絡(luò)IO等。那么Kafka主要

    2023年04月13日
    瀏覽(27)
  • uni-app如何實現(xiàn)高性能

    uni-app如何實現(xiàn)高性能

    這篇文章主要講解uni-app如何實現(xiàn)高性能的問題? 什么是uni-app? 簡單說一下什么是uni-app,uni-app是繼承自vue.js,對vue做了輕度定制,并且實現(xiàn)了完整的組件化開發(fā),并且支持多端發(fā)布的一種架構(gòu),開發(fā)的項目可適配多平臺。 過內(nèi)前端開發(fā)的大致分歧? 國內(nèi)前端開發(fā)生態(tài)現(xiàn)在的

    2024年04月11日
    瀏覽(29)
  • kafka高吞吐、低延時、高性能的實現(xiàn)原理

    kafka高吞吐、低延時、高性能的實現(xiàn)原理

    作者:源碼時代-Raymon老師 Kafka是大數(shù)據(jù)領(lǐng)域無處不在的消息中間件,目前廣泛使用在企業(yè)內(nèi)部的實時數(shù)據(jù)管道,并幫助企業(yè)構(gòu)建自己的流計算應(yīng)用程序。Kafka雖然是基于磁盤做的數(shù)據(jù)存儲,但卻具有高性能、高吞吐、低延時的特點,其吞吐量動輒幾萬、幾十上百萬,這其中的

    2024年02月04日
    瀏覽(21)
  • 移動端高性能Unity播放器實現(xiàn)方案

    移動端高性能Unity播放器實現(xiàn)方案

    前情提要: 視聽體驗再進化——如何在24小時內(nèi)全面升級你的視頻應(yīng)用 如何打造新時代的終端播放產(chǎn)品? 隨著VR、AR、元宇宙等新玩法的出現(xiàn),Unity平臺的視頻播放需求逐漸增加,比如下面兩個動圖就是在百度真實的案例。前者是演唱會場景,后者則是一個演講會場。 通過這

    2024年02月08日
    瀏覽(32)
  • Unity背景模糊圖片高斯模糊高性能的實現(xiàn)方案

    Unity背景模糊圖片高斯模糊高性能的實現(xiàn)方案

    環(huán)境: unity2021.3.x 效果: 模糊前: 模糊后: 模糊前: 模糊后: 實現(xiàn)核心思路(shader): github地址:高斯模糊 Github地址

    2024年04月26日
    瀏覽(24)
  • c++代碼實現(xiàn)一個高性能內(nèi)存池(超詳細版本)

    c++代碼實現(xiàn)一個高性能內(nèi)存池(超詳細版本)

    寫在前面 本文的內(nèi)存池代碼是改編自Nginx的內(nèi)存池源碼,思路幾乎一樣。由于Nginx源碼的變量命名我不喜歡,又沒有注釋,看得我很難受。想自己寫一版容易理解的代碼。這應(yīng)該是全網(wǎng)獨一份的超詳細版本了(笑~). 應(yīng)用場景 寫內(nèi)存池的原理之前,按照慣例先說內(nèi)存池的應(yīng)用

    2024年02月06日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包